CAPD DynSys Library  5.2.0
Vectalg

Files

file  matrixAlgorithmsLib.h
 
file  Z2.h
 
file  Zp.h
 
file  algebraicOperations.h
 
file  algebraicOperations.hpp
 
file  ColumnVector.h
 
file  ColumnVector.hpp
 
file  Container.h
 
file  Container.hpp
 
file  Dimension.h
 
file  iobject.hpp
 
file  Matrix.h
 
file  Matrix.hpp
 
file  Matrix_inline.h
 
file  Matrix_Interval.hpp
 
file  MatrixContainer.h
 
file  MatrixIterator.h
 
file  MatrixSlice.h
 
file  Multiindex.h
 
file  Norm.h
 
file  Norm.hpp
 
file  RowVector.h
 
file  RowVector.hpp
 
file  SubVector.h
 
file  SubVector.hpp
 
file  InvariantManifold.h
 

Namespaces

 capd
 

Classes

class  Z2
 
class  Zp
 
class  EmptyIntersectionException
 
class  MatrixIterator< Matrix >
 
class  const_MatrixIterator< Matrix >
 
class  MatrixSlice< matrix >
 This class represents a matrix without own container and data it is used for operations on submatrices. More...
 
class  capd::vectalg::Vector< Scalar, dim >
 

Macros

#define CAPD_DEFAULT_DIMENSION   0
 

Functions

double nonnegativePart (double x)
 
double nonnegativePart (long double x)
 
double nonnegativePart (int x)
 
template<typename SourceIterator , typename Iterator1 , typename Iterator2 >
void capd::vectalg::split (SourceIterator sourceBegin, SourceIterator sourceEnd, Iterator1 center, Iterator2 diameter)
 splits source object given by [sourceBegin, sourceEnd] into form center + diameter where diameter = [-radius,radius] on each coordinatedimension More...
 
template<typename IntervalObject1 , typename IntervalObject2 >
void capd::vectalg::split (IntervalObject1 &v, IntervalObject2 &rv)
 splits IntervalObject v into form center + [-radius, radius] form More...
 
template<typename IntervalObject , typename CenterType >
void capd::vectalg::split (const IntervalObject &v, CenterType &center, IntervalObject &diameter)
 splits IntervalObject v into form center + diameter where diameter = [-radius,radius] on each coordinate More...
 
template<typename IObject >
IObject::ScalarType capd::vectalg::maxDiam (const IObject &v)
 returns the upper bound for the biggest diameter of IntervalObject (vector or matrix) coordinates More...
 
template<typename IObject >
capd::TypeTraits< typename IObject::ScalarType >::Real capd::vectalg::maxWidth (const IObject &v)
 returns the biggest diameter of the interval object (vector or matrix) coordinates (non-rigorous) More...
 
template<typename IntervalObject >
bool capd::vectalg::containsZero (const IntervalObject &v)
 checks if IntervalObject v contains zero on all coordinates More...
 
template<typename IntervalObject >
bool capd::vectalg::subset (const IntervalObject &v1, const IntervalObject &v2)
 checks if IntervalObject v1 is contained in IntervalObject v2 More...
 
template<typename IntervalObject >
bool capd::vectalg::subsetInterior (const IntervalObject &v1, const IntervalObject &v2)
 checks if IntervalObject v1 is contained in interior of IntervalObject v2 More...
 
template<typename Iterator1 , typename Iterator2 , typename ResultIterator >
bool capd::vectalg::intersection (Iterator1 b1, Iterator2 b2, ResultIterator b, ResultIterator e)
 intersection of two interval objects (vectors, matrices) More...
 
template<typename IntervalObject1 , typename IntervalObject2 , typename IntervalObject3 >
bool capd::vectalg::intersection (const IntervalObject1 &v1, const IntervalObject2 &v2, IntervalObject3 &result)
 intersection of two interval objects (vectors, matrices) More...
 
template<typename Iterator1 , typename Iterator2 >
bool capd::vectalg::intersectionIsEmpty (Iterator1 b, Iterator1 e, Iterator2 b1)
 checks if intersection of two interval vectors is empty More...
 
template<typename IntervalObject1 , typename IntervalObject2 >
bool capd::vectalg::intersectionIsEmpty (const IntervalObject1 &v, const IntervalObject2 &w)
 checks if intersection of two interval vectors is empty More...
 
template<typename IntervalObject >
void capd::vectalg::intervalHull (const IntervalObject &v1, const IntervalObject &v2, IntervalObject &result)
 
template<typename IntervalObject , typename ResultContainer >
void capd::vectalg::diameter (const IntervalObject &v, ResultContainer &result)
 
template<typename IntervalObject , typename ResultType >
void capd::vectalg::mid (const IntervalObject &v, ResultType &result)
 
template<typename ResultType , typename IntervalObject >
ResultType capd::vectalg::midObject (const IntervalObject &v)
 
template<typename ResultType , typename IntervalObject >
void capd::vectalg::leftObject (const IntervalObject &v, ResultType &result)
 
template<typename ResultType , typename IntervalObject >
ResultType capd::vectalg::leftObject (const IntervalObject &v)
 
template<typename ResultType , typename IntervalObject >
void capd::vectalg::rightObject (const IntervalObject &v, ResultType &result)
 
template<typename ResultType , typename IntervalObject >
ResultType capd::vectalg::rightObject (const IntervalObject &v)
 
template<typename ResultType , typename ScalarType >
ResultType capd::vectalg::convertScalar (const ScalarType &v)
 
template<typename ResultType , typename ContainerType >
ResultType capd::vectalg::convertObject (const ContainerType &v)
 
template<typename VectorType >
VectorType capd::vectalg::conjVector (const VectorType &v)
 
template<typename VectorType >
VectorType::ScalarType power (const VectorType &v, const capd::vectalg::Multiindex &m)
 It computes v^m where v is a vector and m is a multiindex. More...
 
template<typename VectorType >
VectorType::ScalarType power (const VectorType &v, const capd::vectalg::Multipointer &m)
 
template<typename Scalar , __size_type dim>
std::ostream & capd::vectalg::operator<< (std::ostream &out, const Vector< Scalar, dim > &v)
 
template<typename Scalar , __size_type dim>
std::istream & capd::vectalg::operator>> (std::istream &inp, Vector< Scalar, dim > &v)
 
template<typename Vector >
std::string capd::vectalg::vectorToString (const Vector &v, int firstIndex=0, int lastIndex=-1, int precision=-1)
 
template<typename Vector >
std::ostream & capd::vectalg::printVector (std::ostream &str, const Vector &v, int firstIndex=0, int lastIndex=-1)
 
template<typename Scalar , __size_type dim>
std::ostream & capd::vectalg::print (std::ostream &str, const Vector< Scalar, dim > &v, int firstIndex=0, int lastIndex=-1)
 
template<typename Scalar , __size_type dim>
std::string capd::vectalg::cppReprezentation (const Vector< Scalar, dim > &A, const std::string &varName, const std::string &typeName)
 It serializes a matrix - gives text reprezentation which can be compiled. More...
 
 MatrixSlice< matrix >::MatrixSlice (matrix &m, int A_mFirstRow, int A_nLastRow, int A_nFirstCol, int A_nLastCol)
 
ScalarTypeMatrixSlice< matrix >::at (size_type i, size_type j)
 
const ScalarTypeMatrixSlice< matrix >::at (size_type i, size_type j) const
 
size_type MatrixSlice< matrix >::numberOfRows () const
 
size_type MatrixSlice< matrix >::numberOfColumns () const
 
size_type MatrixSlice< matrix >::rowStride () const
 
size_type MatrixSlice< matrix >::columnStride () const
 
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginMatrix ()
 
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endMatrix ()
 
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfRow (size_type i)
 
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfColumn (size_type j)
 
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfRow (size_type i)
 
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfColumn (size_type j)
 
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfRow (size_type i) const
 
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfColumn (size_type j) const
 
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfRow (size_type i) const
 
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfColumn (size_type j) const
 

Detailed Description

Macro Definition Documentation

◆ CAPD_DEFAULT_DIMENSION

#define CAPD_DEFAULT_DIMENSION   0

Function Documentation

◆ at() [1/2]

template<typename matrix >
matrix::ScalarType * MatrixSlice< matrix >::at ( size_type  i,
size_type  j 
)
inline

◆ at() [2/2]

template<typename matrix >
const matrix::ScalarType * MatrixSlice< matrix >::at ( size_type  i,
size_type  j 
) const
inline

◆ beginMatrix()

template<typename matrix >
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginMatrix
inline

◆ beginOfColumn() [1/2]

template<typename matrix >
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfColumn ( size_type  j)
inline

◆ beginOfColumn() [2/2]

template<typename matrix >
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfColumn ( size_type  j) const
inline

◆ beginOfRow() [1/2]

template<typename matrix >
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfRow ( size_type  i)
inline

◆ beginOfRow() [2/2]

template<typename matrix >
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::beginOfRow ( size_type  i) const
inline

◆ columnStride()

template<typename matrix >
MatrixSlice< matrix >::size_type MatrixSlice< matrix >::columnStride
inline

◆ conjVector()

template<typename VectorType >
VectorType capd::vectalg::conjVector ( const VectorType &  v)

◆ containsZero()

template<typename IntervalObject >
bool capd::vectalg::containsZero ( const IntervalObject &  v)

checks if IntervalObject v contains zero on all coordinates

◆ convertObject()

template<typename ResultType , typename ContainerType >
ResultType capd::vectalg::convertObject ( const ContainerType &  v)

◆ convertScalar()

template<typename ResultType , typename ScalarType >
ResultType capd::vectalg::convertScalar ( const ScalarType &  v)

◆ cppReprezentation()

template<typename Scalar , __size_type dim>
std::string capd::vectalg::cppReprezentation ( const Vector< Scalar, dim > &  A,
const std::string &  varName,
const std::string &  typeName 
)

It serializes a matrix - gives text reprezentation which can be compiled.

◆ diameter()

template<typename IntervalObject , typename ResultContainer >
void capd::vectalg::diameter ( const IntervalObject &  v,
ResultContainer &  result 
)

◆ endMatrix()

template<typename matrix >
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endMatrix
inline

◆ endOfColumn() [1/2]

template<typename matrix >
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfColumn ( size_type  j)
inline

◆ endOfColumn() [2/2]

template<typename matrix >
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfColumn ( size_type  j) const
inline

◆ endOfRow() [1/2]

template<typename matrix >
MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfRow ( size_type  i)
inline

◆ endOfRow() [2/2]

template<typename matrix >
const_MatrixIterator< MatrixSlice< matrix > > MatrixSlice< matrix >::endOfRow ( size_type  i) const
inline

◆ intersection() [1/2]

template<typename IntervalObject1 , typename IntervalObject2 , typename IntervalObject3 >
bool capd::vectalg::intersection ( const IntervalObject1 &  v1,
const IntervalObject2 &  v2,
IntervalObject3 &  result 
)
inline

intersection of two interval objects (vectors, matrices)

Returns
true and intersection in result if intersection is not empty false if intersection is empty (value of result is meaningless)

◆ intersection() [2/2]

template<typename Iterator1 , typename Iterator2 , typename ResultIterator >
bool capd::vectalg::intersection ( Iterator1  b1,
Iterator2  b2,
ResultIterator  b,
ResultIterator  e 
)

intersection of two interval objects (vectors, matrices)

Returns
true and intersection in result if intersection is not empty false if intersection is empty (value of result is meaningless)

◆ intersectionIsEmpty() [1/2]

template<typename IntervalObject1 , typename IntervalObject2 >
bool capd::vectalg::intersectionIsEmpty ( const IntervalObject1 &  v,
const IntervalObject2 &  w 
)
inline

checks if intersection of two interval vectors is empty

Returns
true if intersection is empty false if intersection is not empty

◆ intersectionIsEmpty() [2/2]

template<typename Iterator1 , typename Iterator2 >
bool capd::vectalg::intersectionIsEmpty ( Iterator1  b,
Iterator1  e,
Iterator2  b1 
)

checks if intersection of two interval vectors is empty

Returns
true if intersection is empty false if intersection is not empty

◆ intervalHull()

template<typename IntervalObject >
void capd::vectalg::intervalHull ( const IntervalObject &  v1,
const IntervalObject &  v2,
IntervalObject &  result 
)

◆ leftObject() [1/2]

template<typename ResultType , typename IntervalObject >
ResultType capd::vectalg::leftObject ( const IntervalObject &  v)
inline

◆ leftObject() [2/2]

template<typename ResultType , typename IntervalObject >
void capd::vectalg::leftObject ( const IntervalObject &  v,
ResultType &  result 
)

◆ MatrixSlice()

template<typename matrix >
MatrixSlice< matrix >::MatrixSlice ( matrix &  m,
int  A_mFirstRow,
int  A_nLastRow,
int  A_nFirstCol,
int  A_nLastCol 
)

◆ maxDiam()

template<typename IObject >
IObject::ScalarType capd::vectalg::maxDiam ( const IObject &  v)

returns the upper bound for the biggest diameter of IntervalObject (vector or matrix) coordinates

◆ maxWidth()

template<typename IObject >
capd::TypeTraits< typename IObject::ScalarType >::Real capd::vectalg::maxWidth ( const IObject &  v)

returns the biggest diameter of the interval object (vector or matrix) coordinates (non-rigorous)

◆ mid()

template<typename IntervalObject , typename ResultType >
void capd::vectalg::mid ( const IntervalObject &  v,
ResultType &  result 
)

◆ midObject()

template<typename ResultType , typename IntervalObject >
ResultType capd::vectalg::midObject ( const IntervalObject &  v)

◆ nonnegativePart() [1/3]

double nonnegativePart ( double  x)
inline

◆ nonnegativePart() [2/3]

double nonnegativePart ( int  x)
inline

◆ nonnegativePart() [3/3]

double nonnegativePart ( long double  x)
inline

◆ numberOfColumns()

template<typename matrix >
MatrixSlice< matrix >::size_type MatrixSlice< matrix >::numberOfColumns
inline

◆ numberOfRows()

template<typename matrix >
MatrixSlice< matrix >::size_type MatrixSlice< matrix >::numberOfRows
inline

◆ operator<<()

template<typename Scalar , __size_type dim>
std::ostream & capd::vectalg::operator<< ( std::ostream &  out,
const Vector< Scalar, dim > &  v 
)

◆ operator>>()

template<typename Scalar , __size_type dim>
std::istream & capd::vectalg::operator>> ( std::istream &  inp,
Vector< Scalar, dim > &  v 
)

◆ power() [1/2]

template<typename VectorType >
VectorType::ScalarType power ( const VectorType &  v,
const capd::vectalg::Multiindex m 
)

It computes v^m where v is a vector and m is a multiindex.

◆ power() [2/2]

template<typename VectorType >
VectorType::ScalarType power ( const VectorType &  v,
const capd::vectalg::Multipointer m 
)

◆ print()

template<typename Scalar , __size_type dim>
std::ostream& capd::vectalg::print ( std::ostream &  str,
const Vector< Scalar, dim > &  v,
int  firstIndex = 0,
int  lastIndex = -1 
)
inline

◆ printVector()

template<typename Vector >
std::ostream & capd::vectalg::printVector ( std::ostream &  str,
const Vector v,
int  firstIndex = 0,
int  lastIndex = -1 
)

◆ rightObject() [1/2]

template<typename ResultType , typename IntervalObject >
ResultType capd::vectalg::rightObject ( const IntervalObject &  v)
inline

◆ rightObject() [2/2]

template<typename ResultType , typename IntervalObject >
void capd::vectalg::rightObject ( const IntervalObject &  v,
ResultType &  result 
)

◆ rowStride()

template<typename matrix >
MatrixSlice< matrix >::size_type MatrixSlice< matrix >::rowStride
inline

◆ split() [1/3]

template<typename IntervalObject , typename CenterType >
void capd::vectalg::split ( const IntervalObject &  v,
CenterType &  center,
IntervalObject &  diameter 
)
inline

splits IntervalObject v into form center + diameter where diameter = [-radius,radius] on each coordinate

Parameters
[in]vobject to be splitted,
[out]centerreturns center of the object.
[out]diameterreturns zero centered set [-radius,radius].

◆ split() [2/3]

template<typename IntervalObject1 , typename IntervalObject2 >
void capd::vectalg::split ( IntervalObject1 &  v,
IntervalObject2 &  rv 
)
inline

splits IntervalObject v into form center + [-radius, radius] form

Parameters
[in,out]vobject to be splitted, returns center of the object.
[out]rvreturns zero centered set [-radius, radius].

◆ split() [3/3]

template<typename SourceIterator , typename Iterator1 , typename Iterator2 >
void capd::vectalg::split ( SourceIterator  sourceBegin,
SourceIterator  sourceEnd,
Iterator1  center,
Iterator2  diameter 
)

splits source object given by [sourceBegin, sourceEnd] into form center + diameter where diameter = [-radius,radius] on each coordinatedimension

Parameters
[in]sourceBegin,sourceEndobject to be splitted,
[out]centerreturns center of the object (it should be iterator on first element)
[out]diameterreturns zero centered set [-radius,radius] (it should be iterator on first element)

◆ subset()

template<typename IntervalObject >
bool capd::vectalg::subset ( const IntervalObject &  v1,
const IntervalObject &  v2 
)

checks if IntervalObject v1 is contained in IntervalObject v2

◆ subsetInterior()

template<typename IntervalObject >
bool capd::vectalg::subsetInterior ( const IntervalObject &  v1,
const IntervalObject &  v2 
)

checks if IntervalObject v1 is contained in interior of IntervalObject v2

◆ vectorToString()

template<typename Vector >
std::string capd::vectalg::vectorToString ( const Vector v,
int  firstIndex = 0,
int  lastIndex = -1,
int  precision = -1 
)