CAPD DynSys Library  5.2.0
capd::diffAlgebra::Hessian< Scalar, M, D > Class Template Reference

This class is used to store second order partial derivatives of a function $ R^D\to R^M $. More...

#include <capd/diffAlgebra/Hessian.h>

Public Types

typedef Scalar ScalarType
 
typedef capd::vectalg::Container< ScalarType, M *D *(1+D)/2 > ContainerType
 
typedef ContainerType::iterator iterator
 
typedef ContainerType::const_iterator const_iterator
 
typedef __size_type size_type
 
typedef __difference_type difference_type
 
typedef capd::vectalg::ColumnVector< Scalar, M > RefColumnVectorType
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 

Public Member Functions

 Hessian ()
 
 Hessian (size_type dim)
 
 Hessian (size_type image, size_type domain)
 
 Hessian (size_type image, size_type domain, const ScalarType *data)
 
ScalarTypeoperator() (size_type i, size_type j, size_type k)
 value of $ \partial^2f_i/{\partial j\partial k}$ More...
 
const ScalarTypeoperator() (size_type i, size_type j, size_type k) const
 value of $\partial^2f_i/{\partial j\partial k}$ More...
 
RefColumnVectorType operator() (size_type j, size_type k)
 returns vector of derivatives $\partial^2f/{\partial j\partial k}$ More...
 
Hessianoperator+= (const Hessian &s)
 component-wise addition More...
 
Hessianoperator*= (const ScalarType &s)
 multiplication of each coefficient by a scalar More...
 
size_type dimension () const
 dimension of the phase space More...
 
size_type imageDimension () const
 dimension of codomain More...
 
void resize (size_type _M, size_type _D)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
void resize (size_type newCapacity)
 
ScalarTypeoperator[] (size_type)
 
const ScalarTypeoperator[] (size_type) const
 
ScalarTypeoperator() (size_type)
 
const ScalarTypeoperator() (size_type) const
 
void clear ()
 

Static Public Member Functions

static HessianmakeArray (size_type N, size_type _M, size_type _D)
 
static size_type size ()
 

Protected Attributes

size_type m_domainDimension
 
size_type m_imageDimension
 
ScalarType data [capacity]
 

Detailed Description

template<typename Scalar, __size_type M, __size_type D>
class capd::diffAlgebra::Hessian< Scalar, M, D >

This class is used to store second order partial derivatives of a function $ R^D\to R^M $.

It provides indexing, iterators and some algorithms for hessians.

Member Typedef Documentation

◆ const_iterator

template<typename Scalar , __size_type M, __size_type D>
typedef ContainerType::const_iterator capd::diffAlgebra::Hessian< Scalar, M, D >::const_iterator

◆ const_reverse_iterator

typedef std::reverse_iterator<const_iterator> capd::vectalg::Container< Scalar, capacity >::const_reverse_iterator
inherited

◆ ContainerType

template<typename Scalar , __size_type M, __size_type D>
typedef capd::vectalg::Container<ScalarType,M*D*(1+D)/2> capd::diffAlgebra::Hessian< Scalar, M, D >::ContainerType

◆ difference_type

template<typename Scalar , __size_type M, __size_type D>
typedef __difference_type capd::diffAlgebra::Hessian< Scalar, M, D >::difference_type

◆ iterator

template<typename Scalar , __size_type M, __size_type D>
typedef ContainerType::iterator capd::diffAlgebra::Hessian< Scalar, M, D >::iterator

◆ RefColumnVectorType

template<typename Scalar , __size_type M, __size_type D>
typedef capd::vectalg::ColumnVector<Scalar,M> capd::diffAlgebra::Hessian< Scalar, M, D >::RefColumnVectorType

◆ reverse_iterator

typedef std::reverse_iterator<iterator> capd::vectalg::Container< Scalar, capacity >::reverse_iterator
inherited

◆ ScalarType

template<typename Scalar , __size_type M, __size_type D>
typedef Scalar capd::diffAlgebra::Hessian< Scalar, M, D >::ScalarType

◆ size_type

template<typename Scalar , __size_type M, __size_type D>
typedef __size_type capd::diffAlgebra::Hessian< Scalar, M, D >::size_type

Constructor & Destructor Documentation

◆ Hessian() [1/4]

template<typename ScalarType , __size_type M, __size_type D>
capd::diffAlgebra::Hessian< ScalarType, M, D >::Hessian
inline

◆ Hessian() [2/4]

template<typename ScalarType , __size_type M, __size_type D>
capd::diffAlgebra::Hessian< ScalarType, M, D >::Hessian ( size_type  dim)
inlineexplicit

◆ Hessian() [3/4]

template<typename ScalarType , __size_type M, __size_type D>
capd::diffAlgebra::Hessian< ScalarType, M, D >::Hessian ( size_type  image,
size_type  domain 
)
inline

◆ Hessian() [4/4]

template<typename ScalarType , __size_type M, __size_type D>
capd::diffAlgebra::Hessian< ScalarType, M, D >::Hessian ( size_type  image,
size_type  domain,
const ScalarType data 
)
inline

Member Function Documentation

◆ begin() [1/2]

Container< Scalar, capacity >::const_iterator capd::vectalg::Container< Scalar, capacity >::begin
inlineinherited

◆ begin() [2/2]

const_iterator capd::vectalg::Container< Scalar, capacity >::begin
inherited

◆ clear()

void capd::vectalg::Container< Scalar, capacity >::clear
inherited

◆ dimension()

template<typename ScalarType , __size_type M, __size_type D>
Hessian< ScalarType, M, D >::size_type capd::diffAlgebra::Hessian< ScalarType, M, D >::dimension
inline

dimension of the phase space

◆ end() [1/2]

Container< Scalar, capacity >::const_iterator capd::vectalg::Container< Scalar, capacity >::end
inlineinherited

◆ end() [2/2]

const_iterator capd::vectalg::Container< Scalar, capacity >::end
inherited

◆ imageDimension()

template<typename ScalarType , __size_type M, __size_type D>
Hessian< ScalarType, M, D >::size_type capd::diffAlgebra::Hessian< ScalarType, M, D >::imageDimension
inline

dimension of codomain

◆ makeArray()

template<typename Scalar , __size_type M, __size_type D>
Hessian< Scalar, M, D > * capd::diffAlgebra::Hessian< Scalar, M, D >::makeArray ( size_type  N,
size_type  _M,
size_type  _D 
)
static

◆ operator()() [1/5]

template<typename ScalarType , __size_type M, __size_type D>
ScalarType & capd::diffAlgebra::Hessian< ScalarType, M, D >::operator() ( size_type  i,
size_type  j,
size_type  k 
)
inline

value of $ \partial^2f_i/{\partial j\partial k}$

◆ operator()() [2/5]

template<typename ScalarType , __size_type M, __size_type D>
const ScalarType & capd::diffAlgebra::Hessian< ScalarType, M, D >::operator() ( size_type  i,
size_type  j,
size_type  k 
) const
inline

value of $\partial^2f_i/{\partial j\partial k}$

◆ operator()() [3/5]

template<typename ScalarType , __size_type M, __size_type D>
Hessian< ScalarType, M, D >::RefColumnVectorType capd::diffAlgebra::Hessian< ScalarType, M, D >::operator() ( size_type  j,
size_type  k 
)
inline

returns vector of derivatives $\partial^2f/{\partial j\partial k}$

◆ operator()() [4/5]

Scalar & capd::vectalg::Container< Scalar, capacity >::operator() ( size_type  i)
inlineinherited

◆ operator()() [5/5]

const Scalar & capd::vectalg::Container< Scalar, capacity >::operator() ( size_type  i) const
inlineinherited

◆ operator*=()

template<typename ScalarType , __size_type M, __size_type D>
Hessian< ScalarType, M, D > & capd::diffAlgebra::Hessian< ScalarType, M, D >::operator*= ( const ScalarType s)

multiplication of each coefficient by a scalar

◆ operator+=()

template<typename ScalarType , __size_type M, __size_type D>
Hessian< ScalarType, M, D > & capd::diffAlgebra::Hessian< ScalarType, M, D >::operator+= ( const Hessian< Scalar, M, D > &  s)

component-wise addition

◆ operator[]() [1/2]

Scalar & capd::vectalg::Container< Scalar, capacity >::operator[] ( size_type  i)
inlineinherited

◆ operator[]() [2/2]

const Scalar & capd::vectalg::Container< Scalar, capacity >::operator[] ( size_type  i) const
inlineinherited

◆ rbegin() [1/2]

Container< Scalar, capacity >::const_reverse_iterator capd::vectalg::Container< Scalar, capacity >::rbegin
inlineinherited

◆ rbegin() [2/2]

const_reverse_iterator capd::vectalg::Container< Scalar, capacity >::rbegin
inherited

◆ rend() [1/2]

Container< Scalar, capacity >::const_reverse_iterator capd::vectalg::Container< Scalar, capacity >::rend
inlineinherited

◆ rend() [2/2]

◆ resize() [1/2]

template<typename Scalar , __size_type M, __size_type D>
void capd::diffAlgebra::Hessian< Scalar, M, D >::resize ( size_type  _M,
size_type  _D 
)
inline

◆ resize() [2/2]

void capd::vectalg::Container< Scalar, capacity >::resize ( size_type  newCapacity)
inherited

◆ size()

static size_type capd::vectalg::Container< Scalar, capacity >::size
inlinestaticinherited

Member Data Documentation

◆ data

ScalarType capd::vectalg::Container< Scalar, capacity >::data[capacity]
protectedinherited

◆ m_domainDimension

template<typename Scalar , __size_type M, __size_type D>
size_type capd::diffAlgebra::Hessian< Scalar, M, D >::m_domainDimension
protected

◆ m_imageDimension

template<typename Scalar , __size_type M, __size_type D>
size_type capd::diffAlgebra::Hessian< Scalar, M, D >::m_imageDimension
protected