#include <alfunction.h>
Public Types | |
typedef T | DT |
typedef adoreMatrix< T, N, 1 > | CT |
typedef ALFunction< DT, T > | SUBFUN |
Public Member Functions | |
void | toArray (DT *xvec, T *yvec, unsigned int count) |
void | toArray (DT *xvec, T *yvec, unsigned int count, unsigned int row) |
virtual SUBFUN * | dimension (int i)=0 |
virtual T | fi (DT x, int dim) const =0 |
virtual void | multiply (adoreMatrix< T, 0, 0 > A, int rowi, int rowj)=0 |
virtual void | add (adoreMatrix< T, 0, 1 > b, int rowi, int rowj)=0 |
virtual void | operator*= (adoreMatrix< T, N, N > A) |
virtual void | operator+= (adoreMatrix< T, N, 1 > b) |
virtual void | operator-= (adoreMatrix< T, N, 1 > b) |
Public Member Functions inherited from adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > > | |
virtual void | setLimits (T lo, T hi)=0 |
virtual T | limitHi () const=0 |
virtual T | limitLo () const=0 |
virtual adoreMatrix< T, N, 1 > | f (T x) const=0 |
virtual void | f (T *xvec, adoreMatrix< T, N, 1 > *yvec, unsigned int count) const |
virtual ALFunction< T, adoreMatrix< T, N, 1 > > * | clone ()=0 |
virtual ALFunction< T, adoreMatrix< T, N, 1 > > * | create_derivative ()=0 |
virtual void | bound (const T &xmin, const T &xmax, adoreMatrix< T, N, 1 > &ymin, adoreMatrix< T, N, 1 > &ymax)=0 |
void | bound (adoreMatrix< T, N, 1 > &ymin, adoreMatrix< T, N, 1 > &ymax) |
virtual | ~ALFunction () |
ALFunction () | |
const adoreMatrix< T, N, 1 > | operator() (T x) const |
bool | isInDomain (T x) |
adoreMatrix< T, N, 1 > | f_bounded (T x) |
void | invalidateCachedBounds () |
An abstract function mapping from a scalar domain to a vector codomain, f:T->T^N
typedef adoreMatrix<T, N, 1> adore::mad::AScalarToN< T, N >::CT |
typedef T adore::mad::AScalarToN< T, N >::DT |
typedef ALFunction<DT, T> adore::mad::AScalarToN< T, N >::SUBFUN |
|
pure virtual |
apply operation to function subdimensions: add a vector to rowi to rowj
Implemented in adore::mad::FunctionCombination_StackScalar< T >, adore::mad::LPolynomialM< T, N, M >, adore::mad::LLinearPiecewiseFunctionM< T, n >, adore::mad::LLinearPiecewiseFunctionM< T, 3+M+1 >, adore::mad::LSpiralFunction< T, M >, adore::mad::LLinearPiecewiseFunctionA< T, N, k >, adore::mad::LLinearPiecewiseFunctionM< double, 1 >, adore::mad::LLinearPiecewiseFunctionM< double, N+R >, adore::mad::LLinearPiecewiseFunctionM< double, 4 >, adore::mad::LLinearPiecewiseFunctionM< double, 3 >, and adore::mad::LLinearPiecewiseFunctionM< double, 2 >.
|
pure virtual |
gives access to a scalar sub-function. does not create a new object, so use clone() to get your own instance of the subfunction.
Implemented in adore::mad::LSpiralFunction< T, M >, adore::mad::LPolynomialM< T, N, M >, adore::mad::LLinearPiecewiseFunctionA< T, N, k >, adore::mad::LLinearPiecewiseFunctionM< T, n >, adore::mad::LLinearPiecewiseFunctionM< T, 3+M+1 >, adore::mad::LLinearPiecewiseFunctionM< double, 1 >, adore::mad::LLinearPiecewiseFunctionM< double, N+R >, adore::mad::LLinearPiecewiseFunctionM< double, 4 >, adore::mad::LLinearPiecewiseFunctionM< double, 3 >, adore::mad::LLinearPiecewiseFunctionM< double, 2 >, and adore::mad::FunctionCombination_StackScalar< T >.
|
pure virtual |
scalar evaluation of function: for y-component dim
Implemented in adore::mad::LPolynomialM< T, N, M >, adore::mad::FunctionCombination_StackScalar< T >, adore::mad::LSpiralFunction< T, M >, adore::mad::LLinearPiecewiseFunctionM< T, 3+M+1 >, adore::mad::LLinearPiecewiseFunctionM< double, 1 >, adore::mad::LLinearPiecewiseFunctionM< double, N+R >, adore::mad::LLinearPiecewiseFunctionM< double, 4 >, adore::mad::LLinearPiecewiseFunctionM< double, 3 >, adore::mad::LLinearPiecewiseFunctionM< double, 2 >, and adore::mad::LLinearPiecewiseFunctionA< T, N, k >.
|
pure virtual |
apply operation to function sub-dimensions: multiply with matrix of lower dimension in range rowi to rowj, with A.nc==A.nr==rowj-rowi+1
Implemented in adore::mad::LPolynomialM< T, N, M >, adore::mad::LLinearPiecewiseFunctionM< T, n >, adore::mad::LLinearPiecewiseFunctionM< T, 3+M+1 >, adore::mad::LSpiralFunction< T, M >, adore::mad::FunctionCombination_StackScalar< T >, adore::mad::LLinearPiecewiseFunctionA< T, N, k >, adore::mad::LLinearPiecewiseFunctionM< double, 1 >, adore::mad::LLinearPiecewiseFunctionM< double, N+R >, adore::mad::LLinearPiecewiseFunctionM< double, 4 >, adore::mad::LLinearPiecewiseFunctionM< double, 3 >, and adore::mad::LLinearPiecewiseFunctionM< double, 2 >.
|
inlinevirtual |
short notations
|
inlinevirtual |
|
inlinevirtual |
|
inline |
evaluate multi, yvec must have at least size sizeof(T[N*count]) ordering is y0(x[0]),y1(x[0]),y2(x[0]),...,yN(x[0]),y0(x[1]),...yN(x[1]),...,y0(x[count-1]),...,yN(x[count-1])
|
inline |