WPILibC++ 2023.4.3-108-ge5452e3
Eigen::internal::matrix_function_compute< MatrixType, IsComplex > Struct Template Reference

Class for computing matrix functions. More...

#include </home/runner/work/allwpilib/allwpilib/wpimath/src/main/native/thirdparty/eigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h>

Static Public Member Functions

template<typename AtomicType , typename ResultType >
static void run (const MatrixType &A, AtomicType &atomic, ResultType &result)
 Compute the matrix function. More...
 

Detailed Description

template<typename MatrixType, int IsComplex = NumTraits<typename internal::traits<MatrixType>::Scalar>::IsComplex>
struct Eigen::internal::matrix_function_compute< MatrixType, IsComplex >

Class for computing matrix functions.

Template Parameters
MatrixTypetype of the argument of the matrix function, expected to be an instantiation of the Matrix class template.
AtomicTypetype for computing matrix function of atomic blocks.
IsComplexused internally to select correct specialization.

This class implements the Schur-Parlett algorithm for computing matrix functions. The spectrum of the matrix is divided in clustered of eigenvalues that lies close together. This class delegates the computation of the matrix function on every block corresponding to these clusters to an object of type AtomicType and uses these results to compute the matrix function of the whole matrix. The class AtomicType should have a compute() member function for computing the matrix function of a block.

See also
class MatrixFunctionAtomic, class MatrixLogarithmAtomic

Member Function Documentation

◆ run()

template<typename MatrixType , int IsComplex = NumTraits<typename internal::traits<MatrixType>::Scalar>::IsComplex>
template<typename AtomicType , typename ResultType >
static void Eigen::internal::matrix_function_compute< MatrixType, IsComplex >::run ( const MatrixType &  A,
AtomicType &  atomic,
ResultType &  result 
)
static

Compute the matrix function.

Parameters
[in]Aargument of matrix function, should be a square matrix.
[in]atomicclass for computing matrix function of atomic blocks.
[out]resultthe function f applied to A, as specified in the constructor.

See MatrixBase::matrixFunction() for details on how this computation is implemented.


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