#include <llinearpiecewisefunction.h>
Classes | |
class | OneDimension |
Public Types | |
typedef AScalarToN< T, N >::DT | DT |
typedef AScalarToN< T, N >::SUBFUN | SUBFUN |
typedef adoreMatrix< T, N, 1 > | CT |
Public Types inherited from adore::mad::AScalarToN< T, N > | |
typedef T | DT |
typedef adoreMatrix< T, N, 1 > | CT |
typedef ALFunction< DT, T > | SUBFUN |
Public Member Functions | |
virtual CT | f (DT x) const override |
virtual T | fi (DT x, int dim) const override |
virtual DT | limitHi () const override |
virtual DT | limitLo () const override |
virtual void | setLimits (DT lo, DT hi) override |
virtual ALFunction< DT, CT > * | create_derivative () override |
virtual void | bound (const DT &xmin, const DT &xmax, CT &ymin, CT &ymax) override |
virtual SUBFUN * | dimension (int i) override |
LLinearPiecewiseFunctionA (T *data, T x0, T x1) | |
virtual | ~LLinearPiecewiseFunctionA () |
virtual ALFunction< DT, CT > * | clone () override |
virtual void | multiply (adoreMatrix< T, 0, 0 > A, int row_start, int row_end) override |
virtual void | add (adoreMatrix< T, 0, 1 > b, int row_start, int row_end) override |
Public Member Functions inherited from adore::mad::AScalarToN< T, N > | |
void | toArray (DT *xvec, T *yvec, unsigned int count) |
void | toArray (DT *xvec, T *yvec, unsigned int count, unsigned int row) |
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 | f (T *xvec, adoreMatrix< T, N, 1 > *yvec, unsigned int count) const |
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 () |
Private Member Functions | |
void | idx (DT x, int dim, int &i, int &j) const |
DT | xval (int i) |
Private Attributes | |
T | m_data [N *k] |
DT | m_x0 |
DT | m_x1 |
DT | m_dx |
OneDimension | single_dimensions [N] |
LLinearPiecewiseFunctionA - an array based linear piecewise function the array T* m_data is assumed to contain data for an N by k matrix, where an entry is located at m_data[col*N+row] the x data is assumed to be spaced equidistantly with m_dx between m_x0 and m_x1, leading to k points.
typedef adoreMatrix<T, N, 1> adore::mad::LLinearPiecewiseFunctionA< T, N, k >::CT |
typedef AScalarToN<T,N>::DT adore::mad::LLinearPiecewiseFunctionA< T, N, k >::DT |
typedef AScalarToN<T,N>::SUBFUN adore::mad::LLinearPiecewiseFunctionA< T, N, k >::SUBFUN |
|
inline |
|
inlinevirtual |
|
inlineoverridevirtual |
apply operation to function subdimensions: add a vector to rowi to rowj
Implements adore::mad::AScalarToN< T, N >.
|
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, 1 > >.
|
inlineoverridevirtual |
create a copy of child class object - is used for function operations
Implements adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > >.
|
inlineoverridevirtual |
create a new function object, which is the derivative function
Implements adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > >.
|
inlineoverridevirtual |
gives access to a scalar sub-function. does not create a new object, so use clone() to get your own instance of the subfunction.
Implements adore::mad::AScalarToN< T, N >.
|
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, 1 > >.
|
inlineoverridevirtual |
scalar evaluation of function: for y-component dim
Implements adore::mad::AScalarToN< T, N >.
|
inlineprivate |
|
inlineoverridevirtual |
query upper limit of the domain
Implements adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > >.
|
inlineoverridevirtual |
lower limit of the domain
Implements adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > >.
|
inlineoverridevirtual |
apply operation to function: multiply with matrix
Implements adore::mad::AScalarToN< T, N >.
|
inlineoverridevirtual |
reduce or increase the limit of the function, without changing y
Implements adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > >.
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |
|
private |