#include <lspiralfunction.h>
Classes | |
class | diffspiral |
Public Member Functions | |
LSpiralFunction () | |
LSpiralFunction (LLinearPiecewiseFunctionM< T, 3+M+1 > *linear_data) | |
virtual | ~LSpiralFunction () |
LSpiralFunction (T S, T X0, T Y0, T ds, const adoreMatrix< T, 1, M+2 > &p0) | |
LSpiralFunction (T S, T X0, T Y0, T kappa_max, T emax, const adoreMatrix< T, 1, M+2 > &p0) | |
LSpiralFunction (T S, T X0, T Y0, T PSI0, T kappa0, T kappa1, T emax) | |
virtual ALFunction< T, T > * | create_heading () |
virtual adoreMatrix< T, 2, 1 > | f (T x) const override |
virtual T | limitHi () const override |
virtual T | limitLo () const override |
virtual void | setLimits (T lo, T hi) override |
virtual ALFunction< T, adoreMatrix< T, 2, 1 > > * | clone () override |
virtual ALFunction< T, adoreMatrix< T, 2, 1 > > * | create_derivative () override |
virtual void | bound (const T &xmin, const T &xmax, adoreMatrix< T, 2, 1 > &ymin, adoreMatrix< T, 2, 1 > &ymax) override |
virtual ALFunction< T, T > * | dimension (int i) override |
virtual T | fi (T x, int dim) const override |
virtual void | multiply (adoreMatrix< T, 0, 0 > A, int rowi, int rowj) |
virtual void | add (adoreMatrix< T, 0, 1 > b, int rowi, int rowj) |
Public Member Functions inherited from adore::mad::AScalarToN< T, 2 > | |
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 |
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 () |
Public Attributes | |
LLinearPiecewiseFunctionM< T, 3+M+1 > * | m_linear_data |
Additional Inherited Members | |
Public Types inherited from adore::mad::AScalarToN< T, 2 > | |
typedef T | DT |
typedef adoreMatrix< T, N, 1 > | CT |
typedef ALFunction< DT, T > | SUBFUN |
A two-dimensional spiral function of degree M. Spiral's curvature has M derivatives
|
inline |
|
inline |
|
inlinevirtual |
|
inline |
instantiate spiral using initial parameter vector p0=[psi0,kappa0,dkappa0,ddkappa0,....] sample the spiral at fixed distance ds
|
inline |
instantiate spiral using initial parameter vector p0=[psi0,kappa0,dkappa0,ddkappa0,....] compute step size based on kappa_max and max admissible error
|
inline |
instantiate spiral of order 1
|
inlinevirtual |
apply operation to function subdimensions: add a vector to rowi to rowj
Implements adore::mad::AScalarToN< T, 2 >.
|
inlineoverridevirtual |
|
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 > >.
|
inlinevirtual |
returns pointer to heading function, which is M+1 times differentiable instead of maintaining one instance of heading, the heading function is created each time anew, as the heading may change according to rotate operations on spiral
|
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, 2 >.
|
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, 2 >.
|
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 > >.
|
inlinevirtual |
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
Implements adore::mad::AScalarToN< T, 2 >.
|
inlineoverridevirtual |
reduce or increase the limit of the function, without changing y
Implements adore::mad::ALFunction< T, adoreMatrix< T, N, 1 > >.
LLinearPiecewiseFunctionM<T, 3 + M + 1>* adore::mad::LSpiralFunction< T, M >::m_linear_data |