#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 |
