Eigen::MatrixFunctionReturnValue< Derived > Class Template Reference

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

#include <MatrixFunction.h>

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

Public Types

typedef Derived::Scalar Scalar
 
typedef internal::stem_function< Scalar >::type StemFunction
 
- Public Types inherited from Eigen::ReturnByValue< MatrixFunctionReturnValue< Derived > >
typedef internal::traits< MatrixFunctionReturnValue< Derived > >::ReturnType ReturnType
 
typedef internal::dense_xpr_base< ReturnByValue >::type Base
 

Public Member Functions

 MatrixFunctionReturnValue (const Derived &A, StemFunction f)
 Constructor. More...
 
template<typename ResultType >
void evalTo (ResultType &result) const
 Compute the matrix function. More...
 
Index rows () const
 
Index cols () const
 
- Public Member Functions inherited from Eigen::ReturnByValue< MatrixFunctionReturnValue< 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)
 

Protected Types

typedef internal::ref_selector< Derived >::type DerivedNested
 

Private Attributes

const DerivedNested m_A
 
StemFunctionm_f
 

Detailed Description

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

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

Template Parameters
DerivedType of the argument to the matrix function.

This class holds the argument to the matrix function 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::matrixFunction() and related functions and most of the time this is the only way it is used.

Member Typedef Documentation

◆ DerivedNested

template<typename Derived >
typedef internal::ref_selector<Derived>::type Eigen::MatrixFunctionReturnValue< Derived >::DerivedNested
protected

◆ Scalar

template<typename Derived >
typedef Derived::Scalar Eigen::MatrixFunctionReturnValue< Derived >::Scalar

◆ StemFunction

template<typename Derived >
typedef internal::stem_function<Scalar>::type Eigen::MatrixFunctionReturnValue< Derived >::StemFunction

Constructor & Destructor Documentation

◆ MatrixFunctionReturnValue()

template<typename Derived >
Eigen::MatrixFunctionReturnValue< Derived >::MatrixFunctionReturnValue ( const Derived &  A,
StemFunction  f 
)
inline

Constructor.

Parameters
[in]AMatrix (expression) forming the argument of the matrix function.
[in]fStem function for matrix function under consideration.
468 : m_A(A), m_f(f) {}
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition: bench_gemm.cpp:47
StemFunction * m_f
Definition: MatrixFunction.h:494
const DerivedNested m_A
Definition: MatrixFunction.h:493
static int f(const TensorMap< Tensor< int, 3 > > &tensor)
Definition: cxx11_tensor_map.cpp:237

Member Function Documentation

◆ cols()

◆ evalTo()

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

Compute the matrix function.

Parameters
[out]resultf applied to A, where f and A are as in the constructor.
475  {
476  typedef typename internal::nested_eval<Derived, 10>::type NestedEvalType;
477  typedef internal::remove_all_t<NestedEvalType> NestedEvalTypeClean;
478  typedef internal::traits<NestedEvalTypeClean> Traits;
479  typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
480  typedef Matrix<ComplexScalar, Dynamic, Dynamic, 0, Traits::RowsAtCompileTime, Traits::ColsAtCompileTime>
481  DynMatrixType;
482 
483  typedef internal::MatrixFunctionAtomic<DynMatrixType> AtomicType;
484  AtomicType atomic(m_f);
485 
487  }
boost::multiprecision::number< boost::multiprecision::cpp_dec_float< 100 >, boost::multiprecision::et_on > Real
Definition: boostmultiprec.cpp:77
static void run(const MatrixType &A, AtomicType &atomic, ResultType &result)
Compute the matrix function.
std::conditional_t< Evaluate, PlainObject, typename ref_selector< T >::type > type
Definition: XprHelper.h:549

References Eigen::MatrixFunctionReturnValue< Derived >::m_A, Eigen::MatrixFunctionReturnValue< Derived >::m_f, and Eigen::internal::matrix_function_compute< MatrixType, IsComplex >::run().

◆ rows()

Member Data Documentation

◆ m_A

◆ m_f

template<typename Derived >
StemFunction* Eigen::MatrixFunctionReturnValue< Derived >::m_f
private

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