ADORe
ADORe is a modular open source software library and toolkit for decision making, planning, control and simulation of automated vehicles
adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K > Class Template Reference

#include <alfunction.h>

Inheritance diagram for adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >:
Inheritance graph
Collaboration diagram for adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >:
Collaboration graph

Public Types

typedef T DT
 
typedef adoreMatrix< T, N, M > CTa
 
typedef adoreMatrix< T, M, K > CTb
 
typedef adoreMatrix< T, N, K > CT
 

Public Member Functions

 FunctionCombination_Multiplication_Matrix (ALFunction< DT, CTa > *a, ALFunction< DT, CTb > *b)
 
virtual ~FunctionCombination_Multiplication_Matrix ()
 
virtual CT f (DT x) const override
 
virtual DT limitHi () const override
 
virtual DT limitLo () const override
 
virtual void setLimits (DT lo, DT hi) override
 
virtual ALFunction< DT, CT > * clone () override
 
virtual ALFunction< DT, CT > * create_derivative () override
 
virtual void bound (const DT &xmin, const DT &xmax, CT &ymin, CT &ymax) override
 
- Public Member Functions inherited from adore::mad::ALFunction< T, adoreMatrix< T, N, K > >
virtual void f (T *xvec, adoreMatrix< T, N, K > *yvec, unsigned int count) const
 
void bound (adoreMatrix< T, N, K > &ymin, adoreMatrix< T, N, K > &ymax)
 
virtual ~ALFunction ()
 
 ALFunction ()
 
const adoreMatrix< T, N, K > operator() (T x) const
 
bool isInDomain (T x)
 
adoreMatrix< T, N, K > f_bounded (T x)
 
void invalidateCachedBounds ()
 

Public Attributes

ALFunction< DT, CTa > * a
 
ALFunction< DT, CTb > * b
 

Detailed Description

template<typename T, int N, int M, int K>
class adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >

a helper class for combining two functions by matrix multiplication

Member Typedef Documentation

◆ CT

template<typename T , int N, int M, int K>
typedef adoreMatrix<T,N,K> adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::CT

◆ CTa

template<typename T , int N, int M, int K>
typedef adoreMatrix<T,N,M> adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::CTa

◆ CTb

template<typename T , int N, int M, int K>
typedef adoreMatrix<T,M,K> adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::CTb

◆ DT

template<typename T , int N, int M, int K>
typedef T adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::DT

Constructor & Destructor Documentation

◆ FunctionCombination_Multiplication_Matrix()

template<typename T , int N, int M, int K>
adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::FunctionCombination_Multiplication_Matrix ( ALFunction< DT, CTa > *  a,
ALFunction< DT, CTb > *  b 
)
inline

◆ ~FunctionCombination_Multiplication_Matrix()

template<typename T , int N, int M, int K>
virtual adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::~FunctionCombination_Multiplication_Matrix ( )
inlinevirtual

Member Function Documentation

◆ bound()

template<typename T , int N, int M, int K>
virtual void adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::bound ( const DT xmin,
const DT xmax,
CT ymin,
CT ymax 
)
inlineoverridevirtual

bound function values in the x-range defined by the hypercube between corner points lower left xmin and upper right xmax

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

◆ clone()

template<typename T , int N, int M, int K>
virtual ALFunction<DT, CT>* adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::clone ( )
inlineoverridevirtual

create a copy of child class object - is used for function operations

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

◆ create_derivative()

template<typename T , int N, int M, int K>
virtual ALFunction<DT, CT>* adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::create_derivative ( )
inlineoverridevirtual

create a new function object, which is the derivative function

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

◆ f()

template<typename T , int N, int M, int K>
virtual CT adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::f ( DT  x) const
inlineoverridevirtual

function evaluation returns y of codomain type CT for a value x of domain type DT

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

◆ limitHi()

template<typename T , int N, int M, int K>
virtual DT adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::limitHi ( ) const
inlineoverridevirtual

query upper limit of the domain

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

◆ limitLo()

template<typename T , int N, int M, int K>
virtual DT adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::limitLo ( ) const
inlineoverridevirtual

lower limit of the domain

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

◆ setLimits()

template<typename T , int N, int M, int K>
virtual void adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::setLimits ( DT  lo,
DT  hi 
)
inlineoverridevirtual

reduce or increase the limit of the function, without changing y

Implements adore::mad::ALFunction< T, adoreMatrix< T, N, K > >.

Here is the call graph for this function:

Member Data Documentation

◆ a

template<typename T , int N, int M, int K>
ALFunction<DT, CTa>* adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::a

◆ b

template<typename T , int N, int M, int K>
ALFunction<DT, CTb>* adore::mad::FunctionCombination_Multiplication_Matrix< T, N, M, K >::b

The documentation for this class was generated from the following file: