Main MRPT website > C++ reference
MRPT logo
Public Member Functions | Private Types | Private Member Functions | Private Attributes
Eigen::MatrixExponential< MatrixType > Class Template Reference

Detailed Description

template<typename MatrixType>
class Eigen::MatrixExponential< MatrixType >

Class for computing the matrix exponential.

Template Parameters:
MatrixTypetype of the argument of the exponential, expected to be an instantiation of the Matrix class template.

Definition at line 40 of file MatrixFunctions.

List of all members.

Public Member Functions

 MatrixExponential (const MatrixType &M)
 Constructor.
template<typename ResultType >
void compute (ResultType &result)
 Computes the matrix exponential.

Private Types

typedef internal::traits
< MatrixType >::Scalar 
Scalar
typedef NumTraits< Scalar >::Real RealScalar

Private Member Functions

 MatrixExponential (const MatrixExponential &)
MatrixExponentialoperator= (const MatrixExponential &)
void pade3 (const MatrixType &A)
 Compute the (3,3)-Padé approximant to the exponential.
void pade5 (const MatrixType &A)
 Compute the (5,5)-Padé approximant to the exponential.
void pade7 (const MatrixType &A)
 Compute the (7,7)-Padé approximant to the exponential.
void pade9 (const MatrixType &A)
 Compute the (9,9)-Padé approximant to the exponential.
void pade13 (const MatrixType &A)
 Compute the (13,13)-Padé approximant to the exponential.
void computeUV (double)
 Compute Padé approximant to the exponential.
void computeUV (float)
 Compute Padé approximant to the exponential.

Private Attributes

internal::nested< MatrixType >
::type 
m_M
 Reference to matrix whose exponential is to be computed.
MatrixType m_U
 Even-degree terms in numerator of Padé approximant.
MatrixType m_V
 Odd-degree terms in numerator of Padé approximant.
MatrixType m_tmp1
 Used for temporary storage.
MatrixType m_tmp2
 Used for temporary storage.
MatrixType m_Id
 Identity matrix of the same size as m_M.
int m_squarings
 Number of squarings required in the last step.
float m_l1norm
 L1 norm of m_M.

Member Typedef Documentation

template<typename MatrixType >
typedef NumTraits<Scalar>::Real Eigen::MatrixExponential< MatrixType >::RealScalar [private]

Definition at line 133 of file MatrixFunctions.

template<typename MatrixType >
typedef internal::traits<MatrixType>::Scalar Eigen::MatrixExponential< MatrixType >::Scalar [private]

Definition at line 132 of file MatrixFunctions.


Constructor & Destructor Documentation

template<typename MatrixType >
Eigen::MatrixExponential< MatrixType >::MatrixExponential ( const MatrixType &  M)

Constructor.

The class stores a reference to M, so it should not be changed (or destroyed) before compute() is called.

Parameters:
[in]Mmatrix whose exponential is to be computed.

Definition at line 161 of file MatrixFunctions.

template<typename MatrixType >
Eigen::MatrixExponential< MatrixType >::MatrixExponential ( const MatrixExponential< MatrixType > &  ) [private]

Member Function Documentation

template<typename MatrixType >
template<typename ResultType >
void Eigen::MatrixExponential< MatrixType >::compute ( ResultType &  result)

Computes the matrix exponential.

Parameters:
[out]resultthe matrix exponential of M in the constructor.

Definition at line 176 of file MatrixFunctions.

template<typename MatrixType >
void Eigen::MatrixExponential< MatrixType >::computeUV ( double  ) [private]

Compute Padé approximant to the exponential.

Computes m_U, m_V and m_squarings such that $ (V+U)(V-U)^{-1} $ is a Padé of $ \exp(2^{-\mbox{squarings}}M) $ around $ M = 0 $. The degree of the Padé approximant and the value of squarings are chosen such that the approximation error is no more than the round-off error.

The argument of this function should correspond with the (real part of) the entries of m_M. It is used to select the correct implementation using overloading.

Definition at line 270 of file MatrixFunctions.

template<typename MatrixType >
void Eigen::MatrixExponential< MatrixType >::computeUV ( float  ) [private]

Compute Padé approximant to the exponential.

See also:
computeUV(double);

Definition at line 252 of file MatrixFunctions.

template<typename MatrixType >
MatrixExponential& Eigen::MatrixExponential< MatrixType >::operator= ( const MatrixExponential< MatrixType > &  ) [private]
template<typename MatrixType >
EIGEN_STRONG_INLINE void Eigen::MatrixExponential< MatrixType >::pade13 ( const MatrixType &  A) [private]

Compute the (13,13)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Parameters:
[in]AArgument of matrix exponential

Definition at line 234 of file MatrixFunctions.

template<typename MatrixType >
EIGEN_STRONG_INLINE void Eigen::MatrixExponential< MatrixType >::pade3 ( const MatrixType &  A) [private]

Compute the (3,3)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Parameters:
[in]AArgument of matrix exponential

Definition at line 187 of file MatrixFunctions.

template<typename MatrixType >
EIGEN_STRONG_INLINE void Eigen::MatrixExponential< MatrixType >::pade5 ( const MatrixType &  A) [private]

Compute the (5,5)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Parameters:
[in]AArgument of matrix exponential

Definition at line 197 of file MatrixFunctions.

template<typename MatrixType >
EIGEN_STRONG_INLINE void Eigen::MatrixExponential< MatrixType >::pade7 ( const MatrixType &  A) [private]

Compute the (7,7)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Parameters:
[in]AArgument of matrix exponential

Definition at line 208 of file MatrixFunctions.

template<typename MatrixType >
EIGEN_STRONG_INLINE void Eigen::MatrixExponential< MatrixType >::pade9 ( const MatrixType &  A) [private]

Compute the (9,9)-Padé approximant to the exponential.

After exit, $ (V+U)(V-U)^{-1} $ is the Padé approximant of $ \exp(A) $ around $ A = 0 $.

Parameters:
[in]AArgument of matrix exponential

Definition at line 220 of file MatrixFunctions.


Member Data Documentation

template<typename MatrixType >
MatrixType Eigen::MatrixExponential< MatrixType >::m_Id [private]

Identity matrix of the same size as m_M.

Definition at line 151 of file MatrixFunctions.

template<typename MatrixType >
float Eigen::MatrixExponential< MatrixType >::m_l1norm [private]

L1 norm of m_M.

Definition at line 157 of file MatrixFunctions.

template<typename MatrixType >
internal::nested<MatrixType>::type Eigen::MatrixExponential< MatrixType >::m_M [private]

Reference to matrix whose exponential is to be computed.

Definition at line 136 of file MatrixFunctions.

template<typename MatrixType >
int Eigen::MatrixExponential< MatrixType >::m_squarings [private]

Number of squarings required in the last step.

Definition at line 154 of file MatrixFunctions.

template<typename MatrixType >
MatrixType Eigen::MatrixExponential< MatrixType >::m_tmp1 [private]

Used for temporary storage.

Definition at line 145 of file MatrixFunctions.

template<typename MatrixType >
MatrixType Eigen::MatrixExponential< MatrixType >::m_tmp2 [private]

Used for temporary storage.

Definition at line 148 of file MatrixFunctions.

template<typename MatrixType >
MatrixType Eigen::MatrixExponential< MatrixType >::m_U [private]

Even-degree terms in numerator of Padé approximant.

Definition at line 139 of file MatrixFunctions.

template<typename MatrixType >
MatrixType Eigen::MatrixExponential< MatrixType >::m_V [private]

Odd-degree terms in numerator of Padé approximant.

Definition at line 142 of file MatrixFunctions.




Page generated by Doxygen 1.7.4 for MRPT 0.9.5 SVN:2717 at Sun Oct 16 16:08:03 PDT 2011 Hosted on:
SourceForge.net Logo