Eigen-unsupported  3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)
Eigen::MatrixPower< MatrixType > Class Template Reference

## Detailed Description

### template<typename MatrixType> class Eigen::MatrixPower< MatrixType >

Class for computing matrix powers.

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

This class is capable of computing real/complex matrices raised to an arbitrary real power. Meanwhile, it saves the result of Schur decomposition if an non-integral power has even been calculated. Therefore, if you want to compute multiple (>= 2) matrix powers for the same matrix, using the class directly is more efficient than calling MatrixBase::pow().

Example:

#include <unsupported/Eigen/MatrixFunctions>
#include <iostream>
using namespace Eigen;
int main()
{
MatrixPower<Matrix4cd> Apow(A);
std::cout << "The matrix A is:\n" << A << "\n\n"
"A^3.1 is:\n" << Apow(3.1) << "\n\n"
"A^3.3 is:\n" << Apow(3.3) << "\n\n"
"A^3.7 is:\n" << Apow(3.7) << "\n\n"
"A^3.9 is:\n" << Apow(3.9) << std::endl;
return 0;
}
static const RandomReturnType Random()
Matrix< std::complex< double >, 4, 4 > Matrix4cd
Namespace containing all symbols from the Eigen library.

Output:

The matrix A is:
(-0.211234,0.680375)   (0.10794,-0.444451)   (0.434594,0.271423) (-0.198111,-0.686642)
(0.59688,0.566198) (0.257742,-0.0452059)  (0.213938,-0.716795) (-0.782382,-0.740419)
(-0.604897,0.823295) (0.0268018,-0.270431) (-0.514226,-0.967399)  (-0.563486,0.997849)
(0.536459,-0.329554)    (0.83239,0.904459)  (0.608354,-0.725537)  (0.678224,0.0258648)

A^3.1 is:
(2.80575,-0.607662) (-1.16847,-0.00660555)    (-0.760385,1.01461)   (-0.38073,-0.106512)
(1.4041,-3.61891)     (1.00481,0.186263)   (-0.163888,0.449419)   (-0.388981,-1.22629)
(-2.07957,-1.58136)     (0.825866,2.25962)     (5.09383,0.155736)    (0.394308,-1.63034)
(-0.818997,0.671026)  (2.11069,-0.00768024)    (-1.37876,0.140165)    (2.50512,-0.854429)

A^3.3 is:
(2.83571,-0.238717) (-1.48174,-0.0615217)  (-0.0544396,1.68092) (-0.292699,-0.621726)
(2.0521,-3.58316)    (0.87894,0.400548)  (0.738072,-0.121242)   (-1.07957,-1.63492)
(-3.00106,-1.10558)     (1.52205,1.92407)    (5.29759,-1.83562)  (-0.532038,-1.50253)
(-0.491353,-0.4145)     (2.5761,0.481286)  (-1.21994,0.0367069)    (2.67112,-1.06331)

A^3.7 is:
(1.42126,0.33362)   (-1.39486,-0.560486)      (1.44968,2.47066)   (-0.324079,-1.75879)
(2.65301,-1.82427)   (0.357333,-0.192429)      (2.01017,-1.4791)    (-2.71518,-2.35892)
(-3.98544,0.964861)     (2.26033,0.554254)     (3.18211,-5.94352)    (-2.22888,0.128951)
(0.944969,-2.14683)      (3.31345,1.66075) (-0.0623743,-0.848324)        (2.3897,-1.863)

A^3.9 is:
(0.0720766,0.378685) (-0.931961,-0.978624)      (1.9855,2.34105)  (-0.530547,-2.17664)
(2.40934,-0.265286)  (0.0299975,-1.08827)    (1.98974,-2.05886)   (-3.45767,-2.50235)
(-3.71666,2.3874)        (2.054,-0.303)   (0.844348,-7.29588)    (-2.59136,1.57689)
(1.87645,-2.38798)     (3.52111,2.10508)    (0.799055,-1.6122)    (1.93452,-2.44408)


Inherits internal::noncopyable.

## Public Member Functions

template<typename ResultType >
void compute (ResultType &res, RealScalar p)
Compute the matrix power. More...

MatrixPower (const MatrixType &A)
Constructor. More...

const MatrixPowerParenthesesReturnValue< MatrixType > operator() (RealScalar p)
Returns the matrix power. More...

## ◆ MatrixPower()

template<typename MatrixType >
 Eigen::MatrixPower< MatrixType >::MatrixPower ( const MatrixType & A )
inlineexplicit

Constructor.

Parameters
 [in] A the base of the matrix power.

The class stores a reference to A, so it should not be changed (or destroyed) before evaluation.

## ◆ compute()

template<typename MatrixType >
template<typename ResultType >
 void Eigen::MatrixPower< MatrixType >::compute ( ResultType & res, RealScalar p )

Compute the matrix power.

Parameters
 [in] p exponent, a real scalar. [out] res $$A^p$$ where A is specified in the constructor.

## ◆ operator()()

template<typename MatrixType >
 const MatrixPowerParenthesesReturnValue Eigen::MatrixPower< MatrixType >::operator() ( RealScalar p )
inline

Returns the matrix power.

Parameters
 [in] p exponent, a real scalar.
Returns
The expression $$A^p$$, where A is specified in the constructor.

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