Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
Eigen::MatrixPowerAtomic< MatrixType > Class Template Reference

Class for computing matrix powers. More...

#include <MatrixPower.h>

Inheritance diagram for Eigen::MatrixPowerAtomic< MatrixType >:
Inheritance graph
[legend]

Public Member Functions

void compute (ResultType &res) const
 Compute the matrix power. More...
 
 MatrixPowerAtomic (const MatrixType &T, RealScalar p)
 Constructor. More...
 

Private Types

enum  { RowsAtCompileTime = MatrixType::RowsAtCompileTime, MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime }
 
typedef std::complex< RealScalarComplexScalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef Block< MatrixType, Dynamic, DynamicResultType
 
typedef MatrixType::Scalar Scalar
 

Private Member Functions

void compute2x2 (ResultType &res, RealScalar p) const
 
void computeBig (ResultType &res) const
 
void computePade (int degree, const MatrixType &IminusT, ResultType &res) const
 
- Private Member Functions inherited from Eigen::internal::noncopyable
EIGEN_DEVICE_FUNC noncopyable ()
 
EIGEN_DEVICE_FUNC ~noncopyable ()
 

Static Private Member Functions

static ComplexScalar computeSuperDiag (const ComplexScalar &, const ComplexScalar &, RealScalar p)
 
static RealScalar computeSuperDiag (RealScalar, RealScalar, RealScalar p)
 
static int getPadeDegree (float normIminusT)
 
static int getPadeDegree (double normIminusT)
 
static int getPadeDegree (long double normIminusT)
 

Private Attributes

const MatrixTypem_A
 
RealScalar m_p
 

Detailed Description

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

Class for computing matrix powers.

Template Parameters
MatrixTypetype of the base, expected to be an instantiation of the Matrix class template.

This class is capable of computing triangular real/complex matrices raised to a power in the interval $ (-1, 1) $.

Note
Currently this class is only used by MatrixPower. One may insist that this be nested into MatrixPower. This class is here to facilitate future development of triangular matrix functions.

Definition at line 86 of file MatrixPower.h.

Member Typedef Documentation

◆ ComplexScalar

template<typename MatrixType>
typedef std::complex<RealScalar> Eigen::MatrixPowerAtomic< MatrixType >::ComplexScalar
private

Definition at line 95 of file MatrixPower.h.

◆ RealScalar

template<typename MatrixType>
typedef MatrixType::RealScalar Eigen::MatrixPowerAtomic< MatrixType >::RealScalar
private

Definition at line 94 of file MatrixPower.h.

◆ ResultType

template<typename MatrixType>
typedef Block<MatrixType,Dynamic,Dynamic> Eigen::MatrixPowerAtomic< MatrixType >::ResultType
private

Definition at line 96 of file MatrixPower.h.

◆ Scalar

template<typename MatrixType>
typedef MatrixType::Scalar Eigen::MatrixPowerAtomic< MatrixType >::Scalar
private

Definition at line 93 of file MatrixPower.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename MatrixType>
anonymous enum
private
Enumerator
RowsAtCompileTime 
MaxRowsAtCompileTime 

Definition at line 89 of file MatrixPower.h.

Constructor & Destructor Documentation

◆ MatrixPowerAtomic()

template<typename MatrixType >
Eigen::MatrixPowerAtomic< MatrixType >::MatrixPowerAtomic ( const MatrixType T,
RealScalar  p 
)

Constructor.

Parameters
[in]Tthe base of the matrix power.
[in]pthe exponent of the matrix power, should be in $ (-1, 1) $.

The class stores a reference to T, so it should not be changed (or destroyed) before evaluation. Only the upper triangular part of T is read.

Definition at line 134 of file MatrixPower.h.

Member Function Documentation

◆ compute()

template<typename MatrixType >
void Eigen::MatrixPowerAtomic< MatrixType >::compute ( ResultType res) const

Compute the matrix power.

Parameters
[out]res$ A^p $ where A and p are specified in the constructor.

Definition at line 142 of file MatrixPower.h.

◆ compute2x2()

template<typename MatrixType >
void Eigen::MatrixPowerAtomic< MatrixType >::compute2x2 ( ResultType res,
RealScalar  p 
) const
private

Definition at line 174 of file MatrixPower.h.

◆ computeBig()

template<typename MatrixType >
void Eigen::MatrixPowerAtomic< MatrixType >::computeBig ( ResultType res) const
private

Definition at line 193 of file MatrixPower.h.

◆ computePade()

template<typename MatrixType >
void Eigen::MatrixPowerAtomic< MatrixType >::computePade ( int  degree,
const MatrixType IminusT,
ResultType res 
) const
private

Definition at line 160 of file MatrixPower.h.

◆ computeSuperDiag() [1/2]

template<typename MatrixType >
MatrixPowerAtomic< MatrixType >::ComplexScalar Eigen::MatrixPowerAtomic< MatrixType >::computeSuperDiag ( const ComplexScalar curr,
const ComplexScalar prev,
RealScalar  p 
)
inlinestaticprivate

Definition at line 291 of file MatrixPower.h.

◆ computeSuperDiag() [2/2]

template<typename MatrixType >
MatrixPowerAtomic< MatrixType >::RealScalar Eigen::MatrixPowerAtomic< MatrixType >::computeSuperDiag ( RealScalar  curr,
RealScalar  prev,
RealScalar  p 
)
inlinestaticprivate

Definition at line 307 of file MatrixPower.h.

◆ getPadeDegree() [1/3]

template<typename MatrixType >
int Eigen::MatrixPowerAtomic< MatrixType >::getPadeDegree ( float  normIminusT)
inlinestaticprivate

Definition at line 235 of file MatrixPower.h.

◆ getPadeDegree() [2/3]

template<typename MatrixType >
int Eigen::MatrixPowerAtomic< MatrixType >::getPadeDegree ( double  normIminusT)
inlinestaticprivate

Definition at line 246 of file MatrixPower.h.

◆ getPadeDegree() [3/3]

template<typename MatrixType >
int Eigen::MatrixPowerAtomic< MatrixType >::getPadeDegree ( long double  normIminusT)
inlinestaticprivate

Definition at line 258 of file MatrixPower.h.

Member Data Documentation

◆ m_A

template<typename MatrixType>
const MatrixType& Eigen::MatrixPowerAtomic< MatrixType >::m_A
private

Definition at line 98 of file MatrixPower.h.

◆ m_p

template<typename MatrixType>
RealScalar Eigen::MatrixPowerAtomic< MatrixType >::m_p
private

Definition at line 99 of file MatrixPower.h.


The documentation for this class was generated from the following file:


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:42:12