Class for computing the matrix exponential. More...
#include <MatrixExponential.h>
Public Member Functions | |
template<typename ResultType > | |
void | compute (ResultType &result) |
Computes the matrix exponential. More... | |
MatrixExponential (const MatrixType &M) | |
Constructor. More... | |
Private Types | |
typedef std::complex< RealScalar > | ComplexScalar |
typedef NumTraits< Scalar >::Real | RealScalar |
typedef internal::traits< MatrixType >::Scalar | Scalar |
Private Member Functions | |
void | computeUV (double) |
Compute Padé approximant to the exponential. More... | |
void | computeUV (float) |
Compute Padé approximant to the exponential. More... | |
void | computeUV (long double) |
Compute Padé approximant to the exponential. More... | |
MatrixExponential (const MatrixExponential &) | |
MatrixExponential & | operator= (const MatrixExponential &) |
void | pade13 (const MatrixType &A) |
Compute the (13,13)-Padé approximant to the exponential. More... | |
void | pade17 (const MatrixType &A) |
Compute the (17,17)-Padé approximant to the exponential. More... | |
void | pade3 (const MatrixType &A) |
Compute the (3,3)-Padé approximant to the exponential. More... | |
void | pade5 (const MatrixType &A) |
Compute the (5,5)-Padé approximant to the exponential. More... | |
void | pade7 (const MatrixType &A) |
Compute the (7,7)-Padé approximant to the exponential. More... | |
void | pade9 (const MatrixType &A) |
Compute the (9,9)-Padé approximant to the exponential. More... | |
Private Attributes | |
MatrixType | m_Id |
Identity matrix of the same size as m_M . More... | |
RealScalar | m_l1norm |
L1 norm of m_M. More... | |
internal::nested< MatrixType >::type | m_M |
Reference to matrix whose exponential is to be computed. More... | |
int | m_squarings |
Number of squarings required in the last step. More... | |
MatrixType | m_tmp1 |
Used for temporary storage. More... | |
MatrixType | m_tmp2 |
Used for temporary storage. More... | |
MatrixType | m_U |
Odd-degree terms in numerator of Padé approximant. More... | |
MatrixType | m_V |
Even-degree terms in numerator of Padé approximant. More... | |
Class for computing the matrix exponential.
MatrixType | type of the argument of the exponential, expected to be an instantiation of the Matrix class template. |
Definition at line 24 of file MatrixExponential.h.
|
private |
Definition at line 135 of file MatrixExponential.h.
|
private |
Definition at line 134 of file MatrixExponential.h.
|
private |
Definition at line 133 of file MatrixExponential.h.
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.
[in] | M | matrix whose exponential is to be computed. |
Definition at line 163 of file MatrixExponential.h.
|
private |
void Eigen::MatrixExponential< MatrixType >::compute | ( | ResultType & | result | ) |
Computes the matrix exponential.
[out] | result | the matrix exponential of M in the constructor. |
Definition at line 178 of file MatrixExponential.h.
|
private |
Compute Padé approximant to the exponential.
Computes m_U
, m_V
and m_squarings
such that is a Padé of around . 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 302 of file MatrixExponential.h.
|
private |
Compute Padé approximant to the exponential.
Definition at line 284 of file MatrixExponential.h.
|
private |
Compute Padé approximant to the exponential.
Definition at line 324 of file MatrixExponential.h.
|
private |
|
private |
Compute the (13,13)-Padé approximant to the exponential.
After exit, is the Padé approximant of around .
[in] | A | Argument of matrix exponential |
Definition at line 242 of file MatrixExponential.h.
|
private |
Compute the (17,17)-Padé approximant to the exponential.
After exit, is the Padé approximant of around .
This function activates only if your long double is double-double or quadruple.
[in] | A | Argument of matrix exponential |
|
private |
Compute the (3,3)-Padé approximant to the exponential.
After exit, is the Padé approximant of around .
[in] | A | Argument of matrix exponential |
Definition at line 195 of file MatrixExponential.h.
|
private |
Compute the (5,5)-Padé approximant to the exponential.
After exit, is the Padé approximant of around .
[in] | A | Argument of matrix exponential |
Definition at line 205 of file MatrixExponential.h.
|
private |
Compute the (7,7)-Padé approximant to the exponential.
After exit, is the Padé approximant of around .
[in] | A | Argument of matrix exponential |
Definition at line 216 of file MatrixExponential.h.
|
private |
Compute the (9,9)-Padé approximant to the exponential.
After exit, is the Padé approximant of around .
[in] | A | Argument of matrix exponential |
Definition at line 228 of file MatrixExponential.h.
|
private |
Identity matrix of the same size as m_M
.
Definition at line 153 of file MatrixExponential.h.
|
private |
L1 norm of m_M.
Definition at line 159 of file MatrixExponential.h.
|
private |
Reference to matrix whose exponential is to be computed.
Definition at line 138 of file MatrixExponential.h.
|
private |
Number of squarings required in the last step.
Definition at line 156 of file MatrixExponential.h.
|
private |
Used for temporary storage.
Definition at line 147 of file MatrixExponential.h.
|
private |
Used for temporary storage.
Definition at line 150 of file MatrixExponential.h.
|
private |
Odd-degree terms in numerator of Padé approximant.
Definition at line 141 of file MatrixExponential.h.
|
private |
Even-degree terms in numerator of Padé approximant.
Definition at line 144 of file MatrixExponential.h.