CAPD DynSys Library  5.2.0
capd::diffAlgebra::BaseSolutionCurve< CurveT > Class Template Referenceabstract

This file defines class that represents parametric curve in $R^n$. More...

#include <capd/diffAlgebra/SolutionCurve.h>

Public Types

typedef CurveT BaseCurve
 
typedef BaseCurve::MatrixType MatrixType
 
typedef MatrixType::RowVectorType VectorType
 
typedef MatrixType::ScalarType ScalarType
 
typedef TypeTraits< ScalarType >::Real Real
 
typedef Hessian< ScalarType, VectorType::csDim, VectorType::csDim > HessianType
 
typedef Jet< MatrixType, 0 > JetType
 
typedef std::vector< BaseCurve * > CurveContainer
 
typedef std::vector< ScalarTypeDomain
 

Public Member Functions

 BaseSolutionCurve (ScalarType leftDomain)
 
 ~BaseSolutionCurve ()
 
Real getLeftDomain () const
 
Real getRightDomain () const
 
virtual void add (const BaseCurve &c)
 
CurveContainer::size_type getNumberOfPieces () const
 
virtual VectorType operator() (const ScalarType &h) const=0
 
virtual MatrixType derivative (const ScalarType &h) const=0
 
virtual MatrixType operator[] (const ScalarType &h) const=0
 
virtual HessianType hessian (const ScalarType &) const
 
virtual JetType jet (const ScalarType &) const
 
virtual void eval (ScalarType, JetType &) const
 
virtual void setDomain (Real left, Real right)
 
virtual Real getLeftDomain () const
 
virtual Real getRightDomain () const
 

Protected Attributes

Domain domain
 
CurveContainer pieces
 
Real m_left
 
Real m_right
 domain More...
 

Detailed Description

template<class CurveT>
class capd::diffAlgebra::BaseSolutionCurve< CurveT >

This file defines class that represents parametric curve in $R^n$.

Internally it is represented by piecewise polynomial approximation.

In can also store higher order partial derivatives with respect to space variables, i.e.

c(t,x) can be a polynomial both with respect to main parameterization variable 't' and space variable 'x'.

The curve can be evaluated at given time 't' as well as differentiated with respect to 't'.

The curve can store rigorous enclosures of curves. They are represented using mean value form to reduce some wrapping effect.

The main template parameter is an abstract class that represent a piece of curve as one polynomial.

Member Typedef Documentation

◆ BaseCurve

template<class CurveT >
typedef CurveT capd::diffAlgebra::BaseSolutionCurve< CurveT >::BaseCurve

◆ CurveContainer

template<class CurveT >
typedef std::vector<BaseCurve*> capd::diffAlgebra::BaseSolutionCurve< CurveT >::CurveContainer

◆ Domain

template<class CurveT >
typedef std::vector<ScalarType> capd::diffAlgebra::BaseSolutionCurve< CurveT >::Domain

◆ HessianType

template<class CurveT >
typedef Hessian<ScalarType,VectorType::csDim,VectorType::csDim> capd::diffAlgebra::BaseSolutionCurve< CurveT >::HessianType

◆ JetType

template<class CurveT >
typedef Jet<MatrixType,0> capd::diffAlgebra::BaseSolutionCurve< CurveT >::JetType

◆ MatrixType

template<class CurveT >
typedef BaseCurve::MatrixType capd::diffAlgebra::BaseSolutionCurve< CurveT >::MatrixType

◆ Real

template<class CurveT >
typedef TypeTraits<ScalarType>::Real capd::diffAlgebra::BaseSolutionCurve< CurveT >::Real

◆ ScalarType

template<class CurveT >
typedef MatrixType::ScalarType capd::diffAlgebra::BaseSolutionCurve< CurveT >::ScalarType

◆ VectorType

template<class CurveT >
typedef MatrixType::RowVectorType capd::diffAlgebra::BaseSolutionCurve< CurveT >::VectorType

Constructor & Destructor Documentation

◆ BaseSolutionCurve()

template<class CurveT >
capd::diffAlgebra::BaseSolutionCurve< CurveT >::BaseSolutionCurve ( ScalarType  leftDomain)
inline

◆ ~BaseSolutionCurve()

template<class CurveT >
capd::diffAlgebra::BaseSolutionCurve< CurveT >::~BaseSolutionCurve ( )
inline

Member Function Documentation

◆ add()

template<class CurveT >
virtual void capd::diffAlgebra::BaseSolutionCurve< CurveT >::add ( const BaseCurve c)
inlinevirtual

◆ derivative()

virtual MatrixType capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::derivative ( const ScalarType h) const
pure virtualinherited

◆ eval()

virtual void capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::eval ( ScalarType  ,
JetType  
) const
inlinevirtualinherited

◆ getLeftDomain() [1/2]

ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::Real capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::getLeftDomain
inlinevirtualinherited

◆ getLeftDomain() [2/2]

template<class CurveT >
Real capd::diffAlgebra::BaseSolutionCurve< CurveT >::getLeftDomain ( ) const
inline

◆ getNumberOfPieces()

template<class CurveT >
CurveContainer::size_type capd::diffAlgebra::BaseSolutionCurve< CurveT >::getNumberOfPieces ( ) const
inline

◆ getRightDomain() [1/2]

ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::Real capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::getRightDomain
inlinevirtualinherited

◆ getRightDomain() [2/2]

template<class CurveT >
Real capd::diffAlgebra::BaseSolutionCurve< CurveT >::getRightDomain ( ) const
inline

◆ hessian()

virtual HessianType capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::hessian ( const ScalarType ) const
inlinevirtualinherited

◆ jet()

virtual JetType capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::jet ( const ScalarType ) const
inlinevirtualinherited

◆ operator()()

virtual VectorType capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::operator() ( const ScalarType h) const
pure virtualinherited

◆ operator[]()

virtual MatrixType capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::operator[] ( const ScalarType h) const
pure virtualinherited

◆ setDomain()

void capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::setDomain ( Real  left,
Real  right 
)
inlinevirtualinherited

Member Data Documentation

◆ domain

template<class CurveT >
Domain capd::diffAlgebra::BaseSolutionCurve< CurveT >::domain
protected

◆ m_left

Real capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::m_left
protectedinherited

◆ m_right

Real capd::diffAlgebra::ParametricCurve< CurveT::MatrixType , typename CurveT::MatrixType ::RowVectorType >::m_right
protectedinherited

domain

◆ pieces

template<class CurveT >
CurveContainer capd::diffAlgebra::BaseSolutionCurve< CurveT >::pieces
protected