CAPD::DynSys Library
6.0.0
|
TimeMap class provides class that serves as Poincare section of the form x_i = c. More...
#include <capd/poincare/NonlinearSection.h>
Public Types | |
typedef MatrixT | MatrixType |
typedef MatrixType::RowVectorType | VectorType |
typedef MatrixType::ScalarType | ScalarType |
typedef VectorType::size_type | size_type |
integral type used to index containers (vectors, matrices, etc) More... | |
typedef capd::dynset::AbstractSet< VectorType > | Set |
type of abstract base class for all sets More... | |
typedef AbstractSection< MatrixT >::JetType | JetType |
typedef capd::map::Function< VectorType > | BaseFunction |
parses expression from given string. Allocates memory for ODE solver of order 'order' More... | |
typedef capd::diffAlgebra::Hessian< ScalarType, VectorType::csDim, VectorType::csDim > | HessianType |
typedef SectionDerivativesEnclosure< MatrixType > | SectionDerivativesEnclosureType |
typedef capd::autodiff::DagIndexer< ScalarType > | DAG |
typedef capd::autodiff::Node | NodeType |
Public Member Functions | |
NonlinearSection (const std::string &s) | |
parses expression from given string. Allocates memory for ODE solver of order 'order' More... | |
NonlinearSection (const char *s) | |
template<typename Functional > | |
NonlinearSection (Functional f, int dimIn, int noParam, size_type degree=1) | |
parses expression from given routine. More... | |
NonlinearSection & | operator= (const std::string &s) |
substitution from string. Parse expression and compute new DAG. More... | |
NonlinearSection & | operator= (const char *s) |
ScalarType | operator() (const VectorType &v) const |
evaluates function at a given vector More... | |
VectorType | gradient (const VectorType &v) const |
returns gradient of the function computed at vector u More... | |
ScalarType | evalAt (const capd::dynset::AbstractSet< VectorType > &s) const |
void | computeDT (const JetType &, const JetType &, JetType &, size_type) const |
virtual ScalarType | gradientByVector (const VectorType &x, const VectorType &u) const |
virtual bool | isSpecialSection () const |
This is very important function. More... | |
virtual ScalarType | evalAt (const Set &set) const =0 |
This function computes value of section function on a given set. More... | |
virtual void | computeDT (const MatrixType &derivativeOfFlow, const VectorType &gradientOnPx, const ScalarType &denominator, VectorType &result) const |
computes gradient of return time More... | |
virtual MatrixType | computeDP (const VectorType &Px, const MatrixType &derivativeOfFlow, const VectorType &fieldOnPx, VectorType &dT) const |
Simultaneous computation of gradient of return time and derivative of Poincare Map dP. More... | |
virtual void | computeDP (const VectorType &Px, const MatrixType &derivativeOfFlow, const HessianType &hessianOfFlow, const VectorType &fieldOnPx, const VectorType &d2Phidt2, const MatrixType &derOfVectorFieldOnPx, MatrixType &DP, HessianType &D2P, VectorType &dT, MatrixType &d2T) const |
Simultaneous computation of first and second Taylor coefficients of return time and Poincare map. More... | |
ScalarType | operator() (const ScalarType &v) const |
evaluates function (for univariate case) More... | |
ScalarType | operator() (const MatrixT::RowVectorType &v) const |
evaluates function at a given vector More... | |
MatrixT::RowVectorType | gradient (MatrixT::RowVectorType u) const |
returns gradient of the function computed at vector u More... | |
void | setParameters (const MatrixT::RowVectorType &values) |
simultaneously sets values of many parameters. It is assumed that given vector contains values of subsequent parameters. More... | |
void | setParameters (const VectorType::ScalarType *values, size_type d) |
simultaneously sets values of many parameters. It is assumed that given vector contains values of subsequent parameters. More... | |
size_type | dimension () const |
returns number of main variables (does not count time and parameters) More... | |
size_type | imageDimension () const |
returns number of functions (dimension of counterdomain) More... | |
void | setOrder (size_type) |
allocates necessary memory for ODE solver of order 'order' More... | |
size_type | getOrder () const |
returns current order of expansion with respect to the time variable More... | |
void | setParameter (size_type d, const VectorType::ScalarType &value) |
sets new value of a parameter of index d. More... | |
void | setParameter (const std::string &name, const ScalarType &value) |
sets new value of a parameter. If parameter not found there is no effect. More... | |
ScalarType | getParameter (size_type d) const |
ScalarType | getParameter (const std::string &name) const |
void | setCurrentTime (const ScalarType &a_time) const |
sets actual value of variable that represents time in an ODE. More... | |
const ScalarType & | getCurrentTime () const |
returns actual value of variable that represents time in an ODE More... | |
void | differentiateTime () const |
sets first derivative of time with respect to time equal to 1 More... | |
void | setMask (Iterator b, Iterator e) |
The iterator range [b,e) should contain a range of Multiinideces the user requires to compute. More... | |
void | addMultiindexToMask (const capd::vectalg::Multiindex &mi) |
Adds new multiindex (along with dependencies) to the existing mask. More... | |
void | resetMask () |
Resets the mask of derivatives. More... | |
const bool * | getMask () const |
bool | getMask (size_type i) const |
bool | getMask (size_type i, size_type j) const |
Protected Member Functions | |
void | check (const std::string &s) |
void | reset (Function f, int dimIn, int dimOut, int noParam) |
parses expression from given routine. More... | |
void | createDefault () |
used to create a default object without expression. Creates a univariate constant function f(x)=0 More... | |
void | createFromText (std::string s) |
parses expression from given string. Allocates memory for ODE solver of order 'order' More... | |
void | copyObject (const BasicFunction &f) |
an auxiliary function used in copying constructor and assignment operator More... | |
void | clean () |
resets all allocated data More... | |
void | realloc (size_type degree) |
reallocates memory for computation of derivatives up to order 'degree' More... | |
void | createEvalPath () |
creates an evaluation path for the expression. Nodes that do not need evaluation (constants, vars) are removed from DAG of expression. Moreover, evaluation is optimized. More... | |
void | setArgument (const V &v) const |
void | applyC1Mask () const |
void | evalHomogenousPolynomial () const |
void | evalHomogenousPolynomial (size_type degree, size_type coeffNo=0) const |
void | eval (size_type coeffNo) const |
void | eval (size_type degree, size_type coeffNo) const |
void | deleteNodes () |
Protected Attributes | |
std::vector< capd::autodiff::AbstractNode< ScalarType > * > | m_nodes |
std::vector< capd::autodiff::Node > | m_fullGraph |
graph representing the expression More... | |
std::vector< capd::autodiff::MyNode > | m_evalPath |
reduced graph - only nodes with nontrivial evaluations are left More... | |
std::vector< int > | m_pos |
indices of roots of expressions for each component More... | |
std::vector< std::string > | m_var |
variables, time and parameters More... | |
DAG | m_dag |
data structure that stores all the coefficients. Provides suitable indexing and evaluation of expression. More... | |
size_type | m_indexOfFirstParam |
if equal to m_var.size() then no parameters specified More... | |
TimeMap class provides class that serves as Poincare section of the form x_i = c.
The section is defined by:
typedef capd::map::Function<VectorType> capd::poincare::NonlinearSection< MatrixT >::BaseFunction |
parses expression from given string. Allocates memory for ODE solver of order 'order'
|
inherited |
|
inherited |
typedef AbstractSection<MatrixT>::JetType capd::poincare::NonlinearSection< MatrixT >::JetType |
typedef MatrixT capd::poincare::NonlinearSection< MatrixT >::MatrixType |
|
inherited |
typedef MatrixType::ScalarType capd::poincare::NonlinearSection< MatrixT >::ScalarType |
|
inherited |
typedef capd::dynset::AbstractSet<VectorType> capd::poincare::NonlinearSection< MatrixT >::Set |
type of abstract base class for all sets
typedef VectorType::size_type capd::poincare::NonlinearSection< MatrixT >::size_type |
integral type used to index containers (vectors, matrices, etc)
typedef MatrixType::RowVectorType capd::poincare::NonlinearSection< MatrixT >::VectorType |
|
inline |
parses expression from given string. Allocates memory for ODE solver of order 'order'
|
inline |
|
inline |
parses expression from given routine.
Allocates memory for jet propagation of degree 'degree'
f | - routine that defines function, its signature is: void (NodeType time, NodeType in[], int dimIn, NodeType out[], int dimOut, NodeType param[], int noParam) |
dimIn | - number of input variables (dimension of domain) |
dimOut | - number of output variables (dimension of codomain) |
noParam | - number of parameters substitution from string. Parse expression and compute new DAG. |
|
inlineinherited |
Adds new multiindex (along with dependencies) to the existing mask.
mi | multiindex to be added to the mask |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
resets all allocated data
|
inline |
|
protectedinherited |
an auxiliary function used in copying constructor and assignment operator
|
protectedinherited |
used to create a default object without expression. Creates a univariate constant function f(x)=0
|
protectedinherited |
creates an evaluation path for the expression. Nodes that do not need evaluation (constants, vars) are removed from DAG of expression. Moreover, evaluation is optimized.
|
protectedinherited |
parses expression from given string. Allocates memory for ODE solver of order 'order'
|
protectedinherited |
|
inherited |
sets first derivative of time with respect to time equal to 1
|
inlineinherited |
returns number of main variables (does not count time and parameters)
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inline |
|
pure virtualinherited |
This function computes value of section function on a given set.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inherited |
returns actual value of variable that represents time in an ODE
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
returns current order of expansion with respect to the time variable
|
inherited |
|
inherited |
|
inlinevirtual |
returns gradient of the function computed at vector u
Implements capd::poincare::AbstractSection< MatrixT >.
|
inherited |
returns gradient of the function computed at vector u
|
inlinevirtualinherited |
Reimplemented in capd::poincare::CoordinateSection< MatrixT >, and capd::poincare::CoordinateSection< MatrixType >.
|
inlineinherited |
returns number of functions (dimension of counterdomain)
|
inlinevirtualinherited |
This is very important function.
If it returns true, class PoincareMap delegates computation of value of section(set) to the section. Otherwise it is assumed that the set has more information to compute value of section(set) in most optimal way. This is quite natural as the set knows its own representation. This function returns true for instance if the PoincareSection is given by x_i=c, where x_i is i-th coordinate and c is constant.
Reimplemented in capd::poincare::CoordinateSection< MatrixT >, and capd::poincare::CoordinateSection< MatrixType >.
|
inherited |
evaluates function at a given vector
|
inherited |
evaluates function (for univariate case)
|
inlinevirtual |
evaluates function at a given vector
Implements capd::poincare::AbstractSection< MatrixT >.
|
inline |
|
inline |
substitution from string. Parse expression and compute new DAG.
|
protectedinherited |
reallocates memory for computation of derivatives up to order 'degree'
|
protectedinherited |
parses expression from given routine.
Assignment of new function parsed from a routine.
Allocates memory for jet propagation of degree 'degree'
f | - routine that defines function, its signature is: void (NodeType time, NodeType in[], int dimIn, NodeType out[], int dimOut, NodeType param[], int noParam) |
dimIn | - number of input variables (dimension of domain) |
dimOut | - number of output variables (dimension of codomain) |
noParam | - number of parameters |
|
inlineinherited |
Resets the mask of derivatives.
In consequence, full jet of derivatives will be computed after call to any method that computes derivative, hessian or jet.
|
protectedinherited |
|
inherited |
sets actual value of variable that represents time in an ODE.
|
inlineinherited |
The iterator range [b,e) should contain a range of Multiinideces the user requires to compute.
The method automatically adds all the depending partial derivatives to this collection and defines a mask for computation of partial derivtives.
[b,e) | iterator range which contains collection of multiindices |
|
inherited |
allocates necessary memory for ODE solver of order 'order'
|
inherited |
sets new value of a parameter. If parameter not found there is no effect.
|
inherited |
sets new value of a parameter of index d.
|
inherited |
simultaneously sets values of many parameters. It is assumed that given vector contains values of subsequent parameters.
|
inherited |
simultaneously sets values of many parameters. It is assumed that given vector contains values of subsequent parameters.
|
mutableprotectedinherited |
data structure that stores all the coefficients. Provides suitable indexing and evaluation of expression.
|
protectedinherited |
reduced graph - only nodes with nontrivial evaluations are left
|
protectedinherited |
graph representing the expression
|
protectedinherited |
if equal to m_var.size() then no parameters specified
|
protectedinherited |
|
protectedinherited |
indices of roots of expressions for each component
|
protectedinherited |
variables, time and parameters