CAPD DynSys Library  5.2.0
capd::dynset::C0HODoubletonSet< MatrixT, Policies > Class Template Referenceabstract

Class C0HODoubletonSet represents a subset of R^n as doubleton, i.e. More...

#include <capd/dynset/C0HODoubletonSet.h>

Public Types

typedef C0DoubletonSet< MatrixT, Policies > BaseSet
 
typedef BaseSet::MatrixType MatrixType
 
typedef BaseSet::VectorType VectorType
 
typedef MatrixType::ScalarType ScalarType
 
typedef MatrixType::size_type size_type
 
typedef BaseSet::DynSysType DynSysType
 
typedef capd::vectalg::Norm< VectorType, MatrixTypeNormType
 
typedef C0Set< MatrixT >::SetType SetType
 
typedef DoubletonData< MatrixT > Data
 
typedef Policies Policy
 
typedef BaseSet::ColumnVectorType ColumnVectorType
 
typedef MatrixType::template rebind< typename ScalarType::BoundType >::other RealMatrix
 
typedef VectorType::template rebind< typename ScalarType::BoundType >::other RealVector
 

Public Member Functions

template<class Functional >
ScalarType evalAt (const Functional &f) const
 This method computes value of functor f at interval vector represented by this set. It computes the value as an intersection of evalAt for two representations of this set: predictor and corrector. More...
 
VectorType affineTransformation (const MatrixType &M, const VectorType &c) const
 This method computes value of an affine map f at interval vector represented by this set. This set is represented as tripleton X=x+C*r0+intersection(B*r,Q*q). Then f(X) = M*(X-x0) can be computed as M*(x-x0) + (M*C)*r0 + intersection( M*B)*r, (M*Q)*q ) More...
 
virtual ScalarType evalAffineFunctional (const VectorType &gradient, const VectorType &u) const
 This method computes value of an affine functional f at the vector represented by this set. This set is represented as doubleton X=x+C*r0+B*r. Then f(X) = grad*(X-x0) can be computed as grad*(x-x0) + (grad*C)*r0 + (grad*B)*r. More...
 
template<class Solver >
void move (Solver &solver)
 
std::string name () const
 returns set's name More...
 
void move (DynSysType &dynsys)
 computes image of the set after one step/iterate of the dynamical system More...
 
void move (DynSysType &dynsys, C0DoubletonSet &result) const
 computes image of the set after one step/iterate of the dynamical system and stores it in result More...
 
std::string show () const
 
virtual std::string show () const=0
 returns a set detailed information More...
 
const ScalarType getCurrentTime () const
 
ScalarTyperefCurrentTime ()
 
void setCurrentTime (const ScalarType &t)
 
const MatrixT::RowVectorType & getLastEnclosure () const
 
virtual operator MatrixT::RowVectorType () const
 returns an enclosure of the set in the canonical coordinates More...
 
void setCurrentSet (const MatrixT::RowVectorType &x)
 
virtual operator VectorType () const=0
 
 operator VectorType () const
 
std::string toString () const
 returns set detailed information More...
 
size_type dimension () const
 returns dimension of a set More...
 
const VectorTypeget_x () const
 
const ScalarTypegetElement_x (int i) const
 
void set_x (const VectorType &x)
 
void setElement_x (size_type i, const ScalarType &s)
 
const VectorTypeget_r () const
 
const ScalarTypegetElement_r (size_type i) const
 
void set_r (const VectorType &r)
 
void setElement_r (size_type i, const ScalarType &s)
 
const MatrixTypeget_B () const
 
const MatrixTypeget_invB () const
 
void setToIdentity ()
 
const ScalarTypegetElement_B (size_type i, size_type j) const
 
VectorType getRow_B (size_type i) const
 
ColumnVectorType getColumn_B (size_type j) const
 
void set_B (const MatrixType &B)
 
void set_invB (const MatrixType &B)
 
void setElement_B (size_type i, size_type j, const ScalarType &s)
 
template<typename VectorT >
void setRow_B (size_type i, const VectorT &v)
 
template<typename VectorT >
void setColumn_B (size_type j, const VectorT &v)
 
 C0HODoubletonSet (BaseSet &set)
 
 C0HODoubletonSet (const VectorType &x, ScalarType t=TypeTraits< ScalarType >::zero())
 
 C0HODoubletonSet (const VectorType &x, const VectorType &r0, ScalarType t=TypeTraits< ScalarType >::zero())
 
 C0HODoubletonSet (const VectorType &x, const MatrixType &C, const VectorType &r0, ScalarType t=TypeTraits< ScalarType >::zero())
 
 C0HODoubletonSet (const VectorType &x, const MatrixType &C, const VectorType &r0, const VectorType &r, ScalarType t=TypeTraits< ScalarType >::zero())
 
 C0HODoubletonSet (const VectorType &x, const MatrixType &C, const VectorType &r0, const MatrixType &B, const VectorType &r, ScalarType t=TypeTraits< ScalarType >::zero())
 
template<class Solver >
void move (Solver &solver, C0HODoubletonSet &result)
 

Static Public Member Functions

static void move (const BaseSet &set, BaseSet &result, VectorType &bound, Data &data)
 this computes next representation of the set given computed one-step enclosure of the form y + jacPhi*deltaX + rem More...
 
const static size_type degree ()
 

Public Attributes

BaseSet predictor
 
MatrixType m_C
 C is a coordinate system of the 'Lipschitz' part. More...
 
VectorType m_r0
 r0 is a interval set in given coordinate system that represents 'Lipschitz' part More...
 
VectorType m_x
 x is a center of the set More...
 
MatrixType m_B
 B is a coordinate system. More...
 
MatrixType m_invB
 
VectorType m_r
 r is a interval set in given coordinate system More...
 
VectorType x
 
VectorType deltaX
 
VectorType y
 
VectorType deltaY
 
VectorType rem
 
VectorType enc
 
MatrixType jacPhi
 
MatrixType deltaC
 
MatrixType B
 

Protected Member Functions

void setLastEnclosure (const MatrixT::RowVectorType &enc)
 

Protected Attributes

ScalarType m_currentTime
 
MatrixT::RowVectorType m_currentSet
 
MatrixT::RowVectorType m_lastEnclosure
 

Detailed Description

template<class MatrixT, class Policies>
class capd::dynset::C0HODoubletonSet< MatrixT, Policies >

Class C0HODoubletonSet represents a subset of R^n as doubleton, i.e.

x + C*r0 + B*r

where x is a (point) interval vector C,B are (point) interval matrices r0,r are interval vectors centered at zero.

The evaluation of the set by an ODE is realized by intersection of two methods: the Taylor method and the Hermite-Obreshkov method.

IMPORTANT: present implementation is valid only for orders of the Taylor method less or equal 32. This is due to capacity of integer type used to store binomial coefficients.

Member Typedef Documentation

◆ BaseSet

template<class MatrixT , class Policies >
typedef C0DoubletonSet<MatrixT,Policies> capd::dynset::C0HODoubletonSet< MatrixT, Policies >::BaseSet

◆ ColumnVectorType

template<typename MatrixT >
typedef BaseSet::ColumnVectorType capd::geomset::CenteredDoubletonSet< MatrixT >::ColumnVectorType
inherited

◆ Data

template<typename MatrixT , typename Policies >
typedef DoubletonData<MatrixT> capd::dynset::C0DoubletonSet< MatrixT, Policies >::Data
inherited

◆ DynSysType

template<class MatrixT , class Policies >
typedef BaseSet::DynSysType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::DynSysType

◆ MatrixType

template<class MatrixT , class Policies >
typedef BaseSet::MatrixType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::MatrixType

◆ NormType

template<typename MatrixT , typename Policies >
typedef capd::vectalg::Norm<VectorType,MatrixType> capd::dynset::C0DoubletonSet< MatrixT, Policies >::NormType
inherited

◆ Policy

template<typename MatrixT , typename Policies >
typedef Policies capd::dynset::C0DoubletonSet< MatrixT, Policies >::Policy
inherited

◆ RealMatrix

template<typename MatrixT >
typedef MatrixType::template rebind<typename ScalarType::BoundType>::other capd::geomset::AffineSet< MatrixT >::RealMatrix
inherited

◆ RealVector

template<typename MatrixT >
typedef VectorType::template rebind<typename ScalarType::BoundType>::other capd::geomset::AffineSet< MatrixT >::RealVector
inherited

◆ ScalarType

template<class MatrixT , class Policies >
typedef MatrixType::ScalarType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::ScalarType

◆ SetType

template<typename MatrixT , typename Policies >
typedef C0Set<MatrixT>::SetType capd::dynset::C0DoubletonSet< MatrixT, Policies >::SetType
inherited

◆ size_type

template<class MatrixT , class Policies >
typedef MatrixType::size_type capd::dynset::C0HODoubletonSet< MatrixT, Policies >::size_type

◆ VectorType

template<class MatrixT , class Policies >
typedef BaseSet::VectorType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::VectorType

Constructor & Destructor Documentation

◆ C0HODoubletonSet() [1/6]

template<class MatrixT , class Policies >
capd::dynset::C0HODoubletonSet< MatrixT, Policies >::C0HODoubletonSet ( BaseSet set)

◆ C0HODoubletonSet() [2/6]

template<class MatrixT , class Policies >
capd::dynset::C0HODoubletonSet< MatrixT, Policies >::C0HODoubletonSet ( const VectorType x,
ScalarType  t = TypeTraits<ScalarType>::zero() 
)
explicit

◆ C0HODoubletonSet() [3/6]

template<class MatrixT , class Policies >
capd::dynset::C0HODoubletonSet< MatrixT, Policies >::C0HODoubletonSet ( const VectorType x,
const VectorType r0,
ScalarType  t = TypeTraits<ScalarType>::zero() 
)

◆ C0HODoubletonSet() [4/6]

template<class MatrixT , class Policies >
capd::dynset::C0HODoubletonSet< MatrixT, Policies >::C0HODoubletonSet ( const VectorType x,
const MatrixType C,
const VectorType r0,
ScalarType  t = TypeTraits<ScalarType>::zero() 
)

◆ C0HODoubletonSet() [5/6]

template<class MatrixT , class Policies >
capd::dynset::C0HODoubletonSet< MatrixT, Policies >::C0HODoubletonSet ( const VectorType x,
const MatrixType C,
const VectorType r0,
const VectorType r,
ScalarType  t = TypeTraits<ScalarType>::zero() 
)

◆ C0HODoubletonSet() [6/6]

template<class MatrixT , class Policies >
capd::dynset::C0HODoubletonSet< MatrixT, Policies >::C0HODoubletonSet ( const VectorType x,
const MatrixType C,
const VectorType r0,
const MatrixType B,
const VectorType r,
ScalarType  t = TypeTraits<ScalarType>::zero() 
)

Member Function Documentation

◆ affineTransformation()

template<class MatrixT , class Policies >
VectorType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::affineTransformation ( const MatrixType M,
const VectorType x0 
) const
inlinevirtual

This method computes value of an affine map f at interval vector represented by this set. This set is represented as tripleton X=x+C*r0+intersection(B*r,Q*q). Then f(X) = M*(X-x0) can be computed as M*(x-x0) + (M*C)*r0 + intersection( M*B)*r, (M*Q)*q )

Reimplemented from capd::geomset::DoubletonSet< MatrixT >.

◆ degree()

template<typename MatrixT >
const static size_type capd::dynset::C0Set< MatrixT >::degree ( )
inlinestaticinherited

◆ dimension()

template<typename MatrixT >
size_type capd::geomset::AffineSet< MatrixT >::dimension ( ) const
inlineinherited

returns dimension of a set

◆ evalAffineFunctional()

template<class MatrixT , class Policies >
virtual ScalarType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::evalAffineFunctional ( const VectorType gradient,
const VectorType x0 
) const
inlinevirtual

This method computes value of an affine functional f at the vector represented by this set. This set is represented as doubleton X=x+C*r0+B*r. Then f(X) = grad*(X-x0) can be computed as grad*(x-x0) + (grad*C)*r0 + (grad*B)*r.

Reimplemented from capd::geomset::DoubletonSet< MatrixT >.

◆ evalAt()

template<class MatrixT , class Policies >
template<class Functional >
ScalarType capd::dynset::C0HODoubletonSet< MatrixT, Policies >::evalAt ( const Functional &  f) const
inline

This method computes value of functor f at interval vector represented by this set. It computes the value as an intersection of evalAt for two representations of this set: predictor and corrector.

◆ get_B()

template<typename MatrixT >
const MatrixType& capd::geomset::AffineSet< MatrixT >::get_B ( ) const
inlineinherited

◆ get_invB()

template<typename MatrixT >
const MatrixType& capd::geomset::AffineSet< MatrixT >::get_invB ( ) const
inlineinherited

◆ get_r()

template<typename MatrixT >
const VectorType& capd::geomset::AffineSet< MatrixT >::get_r ( ) const
inlineinherited

◆ get_x()

template<typename MatrixT >
const VectorType& capd::geomset::AffineSet< MatrixT >::get_x ( ) const
inlineinherited

◆ getColumn_B()

template<typename MatrixT >
ColumnVectorType capd::geomset::AffineSet< MatrixT >::getColumn_B ( size_type  j) const
inlineinherited

◆ getCurrentTime()

const ScalarType capd::diffAlgebra::TimeRange< MatrixT::ScalarType >::getCurrentTime ( ) const
inlineinherited

◆ getElement_B()

template<typename MatrixT >
const ScalarType& capd::geomset::AffineSet< MatrixT >::getElement_B ( size_type  i,
size_type  j 
) const
inlineinherited

◆ getElement_r()

template<typename MatrixT >
const ScalarType& capd::geomset::AffineSet< MatrixT >::getElement_r ( size_type  i) const
inlineinherited

◆ getElement_x()

template<typename MatrixT >
const ScalarType& capd::geomset::AffineSet< MatrixT >::getElement_x ( int  i) const
inlineinherited

◆ getLastEnclosure()

const MatrixT::RowVectorType & capd::dynset::C0EnclosureHolder< MatrixT::RowVectorType >::getLastEnclosure ( ) const
inlineinherited

◆ getRow_B()

template<typename MatrixT >
VectorType capd::geomset::AffineSet< MatrixT >::getRow_B ( size_type  i) const
inlineinherited

◆ move() [1/5]

template<typename MatrixType , typename Policies >
void capd::dynset::C0DoubletonSet< MatrixType, Policies >::move ( const BaseSet set,
BaseSet result,
VectorType bound,
Data data 
)
staticinherited

this computes next representation of the set given computed one-step enclosure of the form y + jacPhi*deltaX + rem

◆ move() [2/5]

template<typename MatrixType , typename Policies >
void capd::dynset::C0DoubletonSet< MatrixType, Policies >::move ( DynSysType dynsys)
virtualinherited

computes image of the set after one step/iterate of the dynamical system

Implements capd::dynset::C0Set< MatrixT >.

◆ move() [3/5]

template<typename MatrixType , typename Policies >
void capd::dynset::C0DoubletonSet< MatrixType, Policies >::move ( DynSysType dynsys,
C0DoubletonSet< MatrixT, Policies > &  result 
) const
inherited

computes image of the set after one step/iterate of the dynamical system and stores it in result

◆ move() [4/5]

template<class MatrixT , class Policies >
template<class Solver >
void capd::dynset::C0HODoubletonSet< MatrixT, Policies >::move ( Solver solver)
inline

◆ move() [5/5]

template<class MatrixT , class Policies >
template<class Solver >
void capd::dynset::C0HODoubletonSet< MatrixT, Policies >::move ( Solver solver,
C0HODoubletonSet< MatrixT, Policies > &  result 
)

◆ name()

template<class MatrixT , class Policies >
std::string capd::dynset::C0HODoubletonSet< MatrixT, Policies >::name ( ) const
inlinevirtual

returns set's name

Reimplemented from capd::dynset::C0DoubletonSet< MatrixT, Policies >.

◆ operator MatrixT::RowVectorType()

virtual capd::dynset::C0EnclosureHolder< MatrixT::RowVectorType >::operator MatrixT::RowVectorType ( ) const
inlinevirtualinherited

returns an enclosure of the set in the canonical coordinates

◆ operator VectorType() [1/2]

template<typename MatrixT >
capd::geomset::DoubletonSet< MatrixT >::operator VectorType ( ) const
inherited

◆ operator VectorType() [2/2]

virtual capd::dynset::AbstractSet< MatrixT::RowVectorType >::operator VectorType ( ) const
pure virtualinherited

◆ refCurrentTime()

ScalarType& capd::diffAlgebra::TimeRange< MatrixT::ScalarType >::refCurrentTime ( )
inlineinherited

◆ set_B()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::set_B ( const MatrixType B)
inlineinherited

◆ set_invB()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::set_invB ( const MatrixType B)
inlineinherited

◆ set_r()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::set_r ( const VectorType r)
inlineinherited

◆ set_x()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::set_x ( const VectorType x)
inlineinherited

◆ setColumn_B()

template<typename MatrixT >
template<typename VectorT >
void capd::geomset::AffineSet< MatrixT >::setColumn_B ( size_type  j,
const VectorT &  v 
)
inlineinherited

◆ setCurrentSet()

void capd::dynset::C0EnclosureHolder< MatrixT::RowVectorType >::setCurrentSet ( const VectorT &  x)
inlineinherited

◆ setCurrentTime()

void capd::diffAlgebra::TimeRange< MatrixT::ScalarType >::setCurrentTime ( const ScalarType t)
inlineinherited

◆ setElement_B()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::setElement_B ( size_type  i,
size_type  j,
const ScalarType s 
)
inlineinherited

◆ setElement_r()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::setElement_r ( size_type  i,
const ScalarType s 
)
inlineinherited

◆ setElement_x()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::setElement_x ( size_type  i,
const ScalarType s 
)
inlineinherited

◆ setLastEnclosure()

void capd::dynset::C0EnclosureHolder< MatrixT::RowVectorType >::setLastEnclosure ( const VectorT &  enc)
inlineprotectedinherited

◆ setRow_B()

template<typename MatrixT >
template<typename VectorT >
void capd::geomset::AffineSet< MatrixT >::setRow_B ( size_type  i,
const VectorT &  v 
)
inlineinherited

◆ setToIdentity()

template<typename MatrixT >
void capd::geomset::AffineSet< MatrixT >::setToIdentity ( )
inlineinherited

◆ show() [1/2]

template<typename MatrixType , typename Policies >
std::string capd::dynset::C0DoubletonSet< MatrixType, Policies >::show
inherited

◆ show() [2/2]

Member Data Documentation

◆ m_B

template<typename MatrixT >
MatrixType capd::geomset::AffineSet< MatrixT >::m_B
inherited

B is a coordinate system.

◆ m_C

template<typename MatrixT >
MatrixType capd::geomset::DoubletonSet< MatrixT >::m_C
inherited

C is a coordinate system of the 'Lipschitz' part.

◆ m_currentSet

MatrixT::RowVectorType capd::dynset::C0EnclosureHolder< MatrixT::RowVectorType >::m_currentSet
protectedinherited

◆ m_currentTime

ScalarType capd::diffAlgebra::TimeRange< MatrixT::ScalarType >::m_currentTime
protectedinherited

◆ m_invB

template<typename MatrixT >
MatrixType capd::geomset::AffineSet< MatrixT >::m_invB
inherited

◆ m_lastEnclosure

MatrixT::RowVectorType capd::dynset::C0EnclosureHolder< MatrixT::RowVectorType >::m_lastEnclosure
protectedinherited

◆ m_r

template<typename MatrixT >
VectorType capd::geomset::AffineSet< MatrixT >::m_r
inherited

r is a interval set in given coordinate system

◆ m_r0

template<typename MatrixT >
VectorType capd::geomset::DoubletonSet< MatrixT >::m_r0
inherited

r0 is a interval set in given coordinate system that represents 'Lipschitz' part

◆ m_x

template<typename MatrixT >
VectorType capd::geomset::AffineSet< MatrixT >::m_x
inherited

x is a center of the set

◆ predictor

template<class MatrixT , class Policies >
BaseSet capd::dynset::C0HODoubletonSet< MatrixT, Policies >::predictor