CAPD DynSys Library  5.2.0
Dynset

Module dynset provides various set representations along with algorithms to propagate them using discrete or continuous dynamical systems. Read detailed description of DynSets for more details. More...

Classes

class  capd::dynset::AbstractSet< VectorT >
 
class  capd::dynset::AffineCoordinateChange< MatrixT >
 Affine Coordinate system Change y = y0 + B*(x-x0) More...
 
class  capd::dynset::C0AffineSet< MatrixT, Policies >
 The set is represented as: x + B*r; and is moved by the following method. More...
 
class  capd::dynset::C0BallSet< MatrixT >
 the set is represented as: x + Ball(r). More...
 
class  capd::dynset::C0DoubletonSet< MatrixT, Policies >
 The set is represented as doubleton: x + C*r0 + B*r; and is moved by the following method. More...
 
class  capd::dynset::C0GraphicalSet< BaseSetT, OutputT >
 C0GraphicalSet is an envelope class for any class derived from C0Set. It adds a possibility of an additional Output after each 'move' of the original set. More...
 
class  capd::dynset::C0Set< MatrixT >
 Common interface of all sets that stores only C0 information (set position). More...
 
struct  capd::dynset::SetTraits< C0Set< MatrixT > >
 Specialization of Traits class. More...
 
class  capd::dynset::C0TripletonSet< MatrixT, Policies >
 Class C0TripletonSet represents a subset of R^n in the following form. More...
 
class  capd::dynset::C11Rect2< MatrixT, QRPolicy >
 $C^1$ doubleton set with reorganization moved by QR decomposition (3rd method). More...
 
class  capd::dynset::C1AffineSet< MatrixT, Policies >
 The C1 set is represented as doubleton: x + B*r;. More...
 
class  capd::dynset::C1DoubletonSet< MatrixT, Policies >
 The C1 set is represented as doubleton: x + C*r0 + B*r;. More...
 
class  capd::dynset::C1GraphicalSet< MatrixT, OutputClass >
 C1GraphicalSet is an envelope class for any class derived from C1Set. It adds a possibility of an additional Output after each 'move' of the original set. More...
 
class  capd::dynset::C1Set< MatrixT >
 Common interface of all sets that store C1 informations (set position and first derivatives) More...
 
struct  capd::dynset::SetTraits< C1Set< MatrixT > >
 
class  capd::dynset::C2DoubletonSet< MatrixT, Policies >
 C2 set in doubleton form. More...
 
class  capd::dynset::C2Set< MatrixT >
 Common interface of all sets that store C2 information (set position and first and second derivatives) More...
 
struct  capd::dynset::SetTraits< C2Set< MatrixT > >
 
class  capd::dynset::CnDoubletonSet< MatrixT, Policies, DEGREE >
 This set stores vector of derivatives with respect to a multiindex alpha as a doubleton. More...
 
class  capd::dynset::CnRect2Set< MatrixT, Policies, DEGREE >
 Set that stores all derivatives to given order in doubleton form with reorganization moved by QR decomposition method. More...
 
class  capd::dynset::CnSet< MatrixT, DEGREE >
 Common interface of all sets that store Cn information (set position and derivatives to order n) More...
 
struct  capd::dynset::SetTraits< CnSet< MatrixT, DEGREE > >
 
class  capd::dynset::CoordinateSystem< MatrixT >
 Defines coordinate system. More...
 
class  capd::dynset::IdQRPolicy
 
class  capd::dynset::DefaultPolicy
 
struct  capd::dynset::DoubletonData< MatrixT >
 This class is a data structure used in implementation of all types of Doubleton and Tripleton sets. More...
 
struct  capd::dynset::TripletonData< MatrixT >
 
struct  capd::dynset::C1DoubletonData< MatrixT >
 
class  capd::dynset::C0EnclosureHolder< VectorT >
 These classes are used as base classes for all types of C^0-C^n sets. More...
 
class  capd::dynset::C1EnclosureHolder< MatrixT >
 
class  capd::dynset::C2EnclosureHolder< MatrixT >
 
struct  capd::dynset::HOData< BaseData >
 This class is a data structure used in implementation of all types of HO sets. More...
 
class  capd::dynset::InverseQRPolicy< BasePolicy >
 
class  capd::dynset::FullQRWithPivoting< BasePolicy >
 
class  capd::dynset::PartialQRWithPivoting< N, BasePolicy >
 
class  capd::dynset::SelectiveQRWithPivoting< BasePolicy >
 Vectors are orthogonalized only if they are close to be parallel. More...
 
class  capd::dynset::CanonicalReorganization< DoubletonT, FactorPolicyT >
 During reorganization we set C and B to Identity and put everything into r0. More...
 
class  capd::dynset::CoordWiseReorganization< BasePolicy >
 In this reorganization policy column vector B_i corresponding to the biggest coordinate in r (r_i) replaces vector in C_j the 'closest' to B_i and the r_i is moved to r0. More...
 
class  capd::dynset::InvBByCFactorReorganization< BasePolicy >
 Factor based reorganization for C1 sets. More...
 
class  capd::dynset::SwapReorganization< BasePolicy >
 Reorganization is performed if r is bigger than r0 but in coordinate system of r. More...
 
struct  capd::dynset::SetTraits< SetT >
 This class provides a trait of being set of a given type, i.e. More...
 

Typedefs

typedef MatrixT capd::dynset::DoubletonData< MatrixT >::MatrixType
 
typedef MatrixType::RowVectorType capd::dynset::DoubletonData< MatrixT >::VectorType
 
typedef MatrixType::ScalarType capd::dynset::DoubletonData< MatrixT >::ScalarType
 
typedef MatrixType::size_type capd::dynset::DoubletonData< MatrixT >::size_type
 
typedef MatrixT capd::dynset::TripletonData< MatrixT >::MatrixType
 
typedef MatrixType::RowVectorType capd::dynset::TripletonData< MatrixT >::VectorType
 
typedef MatrixType::ScalarType capd::dynset::TripletonData< MatrixT >::ScalarType
 
typedef MatrixType::size_type capd::dynset::TripletonData< MatrixT >::size_type
 
typedef MatrixT capd::dynset::C1DoubletonData< MatrixT >::MatrixType
 
typedef MatrixType::RowVectorType capd::dynset::C1DoubletonData< MatrixT >::VectorType
 
typedef MatrixType::ScalarType capd::dynset::C1DoubletonData< MatrixT >::ScalarType
 
typedef MatrixType::size_type capd::dynset::C1DoubletonData< MatrixT >::size_type
 
typedef BaseData::MatrixType capd::dynset::HOData< BaseData >::MatrixType
 
typedef MatrixType::RowVectorType capd::dynset::HOData< BaseData >::VectorType
 
typedef MatrixType::ScalarType capd::dynset::HOData< BaseData >::ScalarType
 
typedef MatrixType::size_type capd::dynset::HOData< BaseData >::size_type
 

Functions

template<class DS , class V , class M >
void capd::dynset::computePsi (DS &ds, int p, int q, const typename DS::ScalarType &h, V &psi, M &Dpsi)
 This is an algorithm for computation of polynomial part of Hermite-Obreshkov interpolation Used in all HO-sets. More...
 
template<typename MatrixT , typename Policies >
C0TripletonSet< MatrixT, Policies > capd::dynset::operator* (const MatrixT &A, const C0TripletonSet< MatrixT, Policies > &s)
 
template<class VectorT , class MatrixT >
void capd::dynset::IdQRPolicy::computeBinvB (MatrixT &B, MatrixT &invB, const VectorT &) const
 
std::string capd::dynset::IdQRPolicy::toString () const
 
std::string capd::dynset::DefaultPolicy::toString () const
 
 capd::dynset::DoubletonData< MatrixT >::DoubletonData (size_type dimension)
 
 capd::dynset::TripletonData< MatrixT >::TripletonData (size_type dimension)
 
 capd::dynset::C1DoubletonData< MatrixT >::C1DoubletonData (size_type dimension)
 
 capd::dynset::HOData< BaseData >::HOData (size_type dimension)
 
void capd::dynset::HOData< BaseData >::computeC0HORemainder (size_type p, size_type q)
 
void capd::dynset::HOData< BaseData >::computeC1HORemainder (size_type p, size_type q, MatrixType &jacRem)
 
void capd::dynset::HOData< BaseData >::computeC0HOCoefficients ()
 
template<class Matrix , class Vector >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isReorganizationNeeded (const Matrix &invB, const Matrix &C, const Vector &r, const Vector &r0) const
 
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isReorganizationNeeded (const SetType &result) const
 
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeIfNeeded (SetType &result) const
 makes reorganization if needed. More...
 
template<class Matrix , class Vector >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeIfNeeded (Matrix &B, Matrix &invB, Vector &r, Matrix &C, Vector &r0) const
 
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isC1ReorganizationNeeded (const SetType &result) const
 
template<class Matrix >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isC1ReorganizationNeeded (const Matrix &invB, const Matrix &C, const Matrix &R, const Matrix &R0) const
 
template<class Matrix >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeC1IfNeeded (Matrix &B, Matrix &invB, Matrix &R, Matrix &C, Matrix &R0) const
 
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeC1IfNeeded (SetType &result) const
 makes reorganization if needed. return true if reorganization was performed More...
 
std::string capd::dynset::InvBByCFactorReorganization< BasePolicy >::name () const
 
template<class DynSysT >
void capd::dynset::CnDoubletonSet< MatrixT, Policies, DEGREE >::move (DynSysT &cndynsys, CnDoubletonSet &result) const
 
template<class DynSysT >
void capd::dynset::CnRect2Set< MatrixT, Policies, DEGREE >::move (DynSysT &cndynsys, CnRect2Set &result) const
 

Variables

VectorType capd::dynset::DoubletonData< MatrixT >::x
 
VectorType capd::dynset::DoubletonData< MatrixT >::deltaX
 
VectorType capd::dynset::DoubletonData< MatrixT >::y
 
VectorType capd::dynset::DoubletonData< MatrixT >::deltaY
 
VectorType capd::dynset::DoubletonData< MatrixT >::rem
 
VectorType capd::dynset::DoubletonData< MatrixT >::enc
 
MatrixType capd::dynset::DoubletonData< MatrixT >::jacPhi
 
MatrixType capd::dynset::DoubletonData< MatrixT >::deltaC
 
MatrixType capd::dynset::DoubletonData< MatrixT >::B
 
VectorType capd::dynset::TripletonData< MatrixT >::qr
 
MatrixType capd::dynset::TripletonData< MatrixT >::Q
 
MatrixType capd::dynset::C1DoubletonData< MatrixT >::jacRem
 
MatrixType capd::dynset::C1DoubletonData< MatrixT >::jacEnc
 
VectorType capd::dynset::HOData< BaseData >::psiPlus
 
VectorType capd::dynset::HOData< BaseData >::psiMinus
 
VectorType capd::dynset::HOData< BaseData >::pBound
 
VectorType capd::dynset::HOData< BaseData >::cBound
 
MatrixType capd::dynset::HOData< BaseData >::JPlus
 
MatrixType capd::dynset::HOData< BaseData >::JMinus
 
MatrixType capd::dynset::HOData< BaseData >::midJMinusInverse
 
MatrixType capd::dynset::HOData< BaseData >::T
 

Detailed Description

Module dynset provides various set representations along with algorithms to propagate them using discrete or continuous dynamical systems. Read detailed description of DynSets for more details.

Typedef Documentation

◆ MatrixType [1/4]

template<class MatrixT >
typedef MatrixT capd::dynset::DoubletonData< MatrixT >::MatrixType

◆ MatrixType [2/4]

template<class BaseData >
typedef BaseData::MatrixType capd::dynset::HOData< BaseData >::MatrixType

◆ MatrixType [3/4]

template<class MatrixT >
typedef MatrixT capd::dynset::TripletonData< MatrixT >::MatrixType

◆ MatrixType [4/4]

template<class MatrixT >
typedef MatrixT capd::dynset::C1DoubletonData< MatrixT >::MatrixType

◆ ScalarType [1/4]

template<class MatrixT >
typedef MatrixType::ScalarType capd::dynset::DoubletonData< MatrixT >::ScalarType

◆ ScalarType [2/4]

template<class BaseData >
typedef MatrixType::ScalarType capd::dynset::HOData< BaseData >::ScalarType

◆ ScalarType [3/4]

template<class MatrixT >
typedef MatrixType::ScalarType capd::dynset::TripletonData< MatrixT >::ScalarType

◆ ScalarType [4/4]

template<class MatrixT >
typedef MatrixType::ScalarType capd::dynset::C1DoubletonData< MatrixT >::ScalarType

◆ size_type [1/4]

template<class MatrixT >
typedef MatrixType::size_type capd::dynset::DoubletonData< MatrixT >::size_type

◆ size_type [2/4]

template<class BaseData >
typedef MatrixType::size_type capd::dynset::HOData< BaseData >::size_type

◆ size_type [3/4]

template<class MatrixT >
typedef MatrixType::size_type capd::dynset::TripletonData< MatrixT >::size_type

◆ size_type [4/4]

template<class MatrixT >
typedef MatrixType::size_type capd::dynset::C1DoubletonData< MatrixT >::size_type

◆ VectorType [1/4]

template<class MatrixT >
typedef MatrixType::RowVectorType capd::dynset::DoubletonData< MatrixT >::VectorType

◆ VectorType [2/4]

template<class BaseData >
typedef MatrixType::RowVectorType capd::dynset::HOData< BaseData >::VectorType

◆ VectorType [3/4]

template<class MatrixT >
typedef MatrixType::RowVectorType capd::dynset::TripletonData< MatrixT >::VectorType

◆ VectorType [4/4]

template<class MatrixT >
typedef MatrixType::RowVectorType capd::dynset::C1DoubletonData< MatrixT >::VectorType

Function Documentation

◆ C1DoubletonData()

template<class MatrixT >
capd::dynset::C1DoubletonData< MatrixT >::C1DoubletonData ( size_type  dimension)
inlineexplicit

◆ computeBinvB()

template<class VectorT , class MatrixT >
void capd::dynset::IdQRPolicy::computeBinvB ( MatrixT &  B,
MatrixT &  invB,
const VectorT &   
) const
inline

◆ computeC0HOCoefficients()

template<class BaseData >
void capd::dynset::HOData< BaseData >::computeC0HOCoefficients ( )
inline

◆ computeC0HORemainder()

template<class BaseData >
void capd::dynset::HOData< BaseData >::computeC0HORemainder ( size_type  p,
size_type  q 
)
inline

◆ computeC1HORemainder()

template<class BaseData >
void capd::dynset::HOData< BaseData >::computeC1HORemainder ( size_type  p,
size_type  q,
MatrixType jacRem 
)
inline

◆ computePsi()

template<class DS , class V , class M >
void capd::dynset::computePsi ( DS &  ds,
int  p,
int  q,
const typename DS::ScalarType &  h,
V &  psi,
M &  Dpsi 
)

This is an algorithm for computation of polynomial part of Hermite-Obreshkov interpolation Used in all HO-sets.

Assumptions:

Parameters
dsdynamical system. We assume that it has computed coefficients for the main part and variational equations
p,qtwo numners such that p+q=order
[out]psicomputed polynomial interpolation
[out]Dpsiderivative of psi wrt

NOTE: In the present implementation order cannot be bigger than 33. This is due to the capacity of long type when compute binomial.

◆ DoubletonData()

template<class MatrixT >
capd::dynset::DoubletonData< MatrixT >::DoubletonData ( size_type  dimension)
inlineexplicit

◆ HOData()

template<class BaseData >
capd::dynset::HOData< BaseData >::HOData ( size_type  dimension)
inlineexplicit

◆ isC1ReorganizationNeeded() [1/2]

template<typename BasePolicy = DefaultPolicy>
template<class Matrix >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isC1ReorganizationNeeded ( const Matrix &  invB,
const Matrix &  C,
const Matrix &  R,
const Matrix &  R0 
) const
inline

◆ isC1ReorganizationNeeded() [2/2]

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isC1ReorganizationNeeded ( const SetType &  result) const
inline

◆ isReorganizationNeeded() [1/2]

template<typename BasePolicy = DefaultPolicy>
template<class Matrix , class Vector >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isReorganizationNeeded ( const Matrix &  invB,
const Matrix &  C,
const Vector &  r,
const Vector &  r0 
) const
inline

◆ isReorganizationNeeded() [2/2]

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::isReorganizationNeeded ( const SetType &  result) const
inline

◆ move() [1/2]

template<typename MatrixT , typename Policies , __size_type DEGREE>
template<typename DynSysT >
void capd::dynset::CnDoubletonSet< MatrixT, Policies, DEGREE >::move ( DynSysT &  cndynsys,
CnDoubletonSet< MatrixT, Policies, DEGREE > &  result 
) const

◆ move() [2/2]

template<typename MatrixType , typename Policies , __size_type DEGREE>
template<class DynSysT >
void capd::dynset::CnRect2Set< MatrixType, Policies, DEGREE >::move ( DynSysT &  cndynsys,
CnRect2Set< MatrixT, Policies, DEGREE > &  result 
) const

◆ name()

template<typename BasePolicy = DefaultPolicy>
std::string capd::dynset::InvBByCFactorReorganization< BasePolicy >::name ( ) const
inline

◆ operator*()

template<typename MatrixT , typename Policies >
C0TripletonSet< MatrixT, Policies > capd::dynset::operator* ( const MatrixT &  A,
const C0TripletonSet< MatrixT, Policies > &  s 
)

◆ reorganizeC1IfNeeded() [1/2]

template<typename BasePolicy = DefaultPolicy>
template<class Matrix >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeC1IfNeeded ( Matrix &  B,
Matrix &  invB,
Matrix &  R,
Matrix &  C,
Matrix &  R0 
) const
inline

◆ reorganizeC1IfNeeded() [2/2]

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeC1IfNeeded ( SetType &  result) const
inline

makes reorganization if needed. return true if reorganization was performed

◆ reorganizeIfNeeded() [1/2]

template<typename BasePolicy = DefaultPolicy>
template<class Matrix , class Vector >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeIfNeeded ( Matrix &  B,
Matrix &  invB,
Vector &  r,
Matrix &  C,
Vector &  r0 
) const
inline

◆ reorganizeIfNeeded() [2/2]

template<typename BasePolicy = DefaultPolicy>
template<class SetType >
bool capd::dynset::InvBByCFactorReorganization< BasePolicy >::reorganizeIfNeeded ( SetType &  result) const
inline

makes reorganization if needed.

◆ toString() [1/2]

std::string capd::dynset::IdQRPolicy::toString ( ) const
inline

◆ toString() [2/2]

std::string capd::dynset::DefaultPolicy::toString ( ) const
inline

◆ TripletonData()

template<class MatrixT >
capd::dynset::TripletonData< MatrixT >::TripletonData ( size_type  dimension)
inlineexplicit

Variable Documentation

◆ B

template<class MatrixT >
MatrixType capd::dynset::DoubletonData< MatrixT >::B

◆ cBound

template<class BaseData >
VectorType capd::dynset::HOData< BaseData >::cBound

◆ deltaC

template<class MatrixT >
MatrixType capd::dynset::DoubletonData< MatrixT >::deltaC

◆ deltaX

template<class MatrixT >
VectorType capd::dynset::DoubletonData< MatrixT >::deltaX

◆ deltaY

template<class MatrixT >
VectorType capd::dynset::DoubletonData< MatrixT >::deltaY

◆ enc

template<class MatrixT >
VectorType capd::dynset::DoubletonData< MatrixT >::enc

◆ jacEnc

template<class MatrixT >
MatrixType capd::dynset::C1DoubletonData< MatrixT >::jacEnc

◆ jacPhi

template<class MatrixT >
MatrixType capd::dynset::DoubletonData< MatrixT >::jacPhi

◆ jacRem

template<class MatrixT >
MatrixType capd::dynset::C1DoubletonData< MatrixT >::jacRem

◆ JMinus

template<class BaseData >
MatrixType capd::dynset::HOData< BaseData >::JMinus

◆ JPlus

template<class BaseData >
MatrixType capd::dynset::HOData< BaseData >::JPlus

◆ midJMinusInverse

template<class BaseData >
MatrixType capd::dynset::HOData< BaseData >::midJMinusInverse

◆ pBound

template<class BaseData >
VectorType capd::dynset::HOData< BaseData >::pBound

◆ psiMinus

template<class BaseData >
VectorType capd::dynset::HOData< BaseData >::psiMinus

◆ psiPlus

template<class BaseData >
VectorType capd::dynset::HOData< BaseData >::psiPlus

◆ Q

template<class MatrixT >
MatrixType capd::dynset::TripletonData< MatrixT >::Q

◆ qr

template<class MatrixT >
VectorType capd::dynset::TripletonData< MatrixT >::qr

◆ rem

template<class MatrixT >
VectorType capd::dynset::DoubletonData< MatrixT >::rem

◆ T

template<class BaseData >
MatrixType capd::dynset::HOData< BaseData >::T

◆ x

template<class MatrixT >
VectorType capd::dynset::DoubletonData< MatrixT >::x

◆ y

template<class MatrixT >
VectorType capd::dynset::DoubletonData< MatrixT >::y