Eigen::MatrixComplexPowerReturnValue< Derived > Class Template Reference

Proxy for the matrix power of some matrix (expression). More...

#include <MatrixPower.h>

+ Inheritance diagram for Eigen::MatrixComplexPowerReturnValue< Derived >:

Public Types

typedef Derived::PlainObject PlainObject
 
typedef std::complex< typename Derived::RealScalarComplexScalar
 
- Public Types inherited from Eigen::ReturnByValue< MatrixComplexPowerReturnValue< Derived > >
typedef internal::traits< MatrixComplexPowerReturnValue< Derived > >::ReturnType ReturnType
 
typedef internal::dense_xpr_base< ReturnByValue >::type Base
 

Public Member Functions

 MatrixComplexPowerReturnValue (const Derived &A, const ComplexScalar &p)
 Constructor. More...
 
template<typename ResultType >
void evalTo (ResultType &result) const
 Compute the matrix power. More...
 
Index rows () const
 
Index cols () const
 
- Public Member Functions inherited from Eigen::ReturnByValue< MatrixComplexPowerReturnValue< Derived > >
EIGEN_DEVICE_FUNC void evalTo (Dest &dst) const
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
const Unusablecoeff (Index) const
 
const Unusablecoeff (Index, Index) const
 
UnusablecoeffRef (Index)
 
UnusablecoeffRef (Index, Index)
 

Private Attributes

const Derived & m_A
 
const ComplexScalar m_p
 

Detailed Description

template<typename Derived>
class Eigen::MatrixComplexPowerReturnValue< Derived >

Proxy for the matrix power of some matrix (expression).

Template Parameters
Derivedtype of the base, a matrix (expression).

This class holds the arguments to the matrix power until it is assigned or evaluated for some other reason (so the argument should not be changed in the meantime). It is the return type of MatrixBase::pow() and related functions and most of the time this is the only way it is used.

Member Typedef Documentation

◆ ComplexScalar

template<typename Derived >
typedef std::complex<typename Derived::RealScalar> Eigen::MatrixComplexPowerReturnValue< Derived >::ComplexScalar

◆ PlainObject

template<typename Derived >
typedef Derived::PlainObject Eigen::MatrixComplexPowerReturnValue< Derived >::PlainObject

Constructor & Destructor Documentation

◆ MatrixComplexPowerReturnValue()

template<typename Derived >
Eigen::MatrixComplexPowerReturnValue< Derived >::MatrixComplexPowerReturnValue ( const Derived &  A,
const ComplexScalar p 
)
inline

Constructor.

Parameters
[in]AMatrix (expression), the base of the matrix power.
[in]pcomplex scalar, the exponent of the matrix power.
639 : m_A(A), m_p(p) {}
float * p
Definition: Tutorial_Map_using.cpp:9
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition: bench_gemm.cpp:47
const Derived & m_A
Definition: MatrixPower.h:659
const ComplexScalar m_p
Definition: MatrixPower.h:660

Member Function Documentation

◆ cols()

◆ evalTo()

template<typename Derived >
template<typename ResultType >
void Eigen::MatrixComplexPowerReturnValue< Derived >::evalTo ( ResultType &  result) const
inline

Compute the matrix power.

Because p is complex, \( A^p \) is simply evaluated as \( \exp(p \log(A)) \).

Parameters
[out]result\( A^p \) where A and p are as in the constructor.
651  {
652  result = (m_p * m_A.log()).exp();
653  }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 exp(const bfloat16 &a)
Definition: BFloat16.h:615

References Eigen::bfloat16_impl::exp(), Eigen::MatrixComplexPowerReturnValue< Derived >::m_A, and Eigen::MatrixComplexPowerReturnValue< Derived >::m_p.

◆ rows()

Member Data Documentation

◆ m_A

◆ m_p

template<typename Derived >
const ComplexScalar Eigen::MatrixComplexPowerReturnValue< Derived >::m_p
private

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