STK++ 0.9.13
|
The class SymEigen compute the eigenvalue Decomposition of a symmetric ArrayXX. More...
#include <STK_SymEigen.h>
Public Types | |
typedef ISymEigen< SymEigen< SquareArray > > | Base |
Public Member Functions | |
SymEigen () | |
Default Constructor. | |
SymEigen (SquareArray const &data, bool ref=false) | |
Constructor. | |
template<class Derived > | |
SymEigen (ExprBase< Derived > const &data) | |
constructor. | |
SymEigen (SymEigen const &S) | |
Copy constructor. | |
virtual | ~SymEigen () |
virtual destructor | |
bool | runImpl () |
Diagonalization of eigenVectors_. | |
SymEigen & | operator= (const SymEigen &S) |
Operator = : overwrite the SymEigen with S. | |
SymEigen (CSquareX const &data, bool ref) | |
![]() | |
~ISymEigen () | |
virtual destructor | |
ISymEigen & | operator= (ISymEigen const &eigen) |
Operator = : overwrite the ISymEigen with eigen. | |
Range const & | range () const |
Type const & | norm () const |
int const & | rank () const |
Type const & | det () const |
Type const & | trace () const |
CArraySquare< Type, size_ > const & | rotation () const |
CArraySquare< Type, size_ > const & | eigenVectors () const |
CArrayVector< Type, size_ > const & | eigenValues () const |
void | setData (ExprBase< OtherDerived > const &data) |
overloading of setData. | |
ArraySquare & | ginv (ArraySquare &res) const |
Compute the generalized inverse of the symmetric matrix and put the result in res. | |
ArraySquare & | ginvsqrt (ArraySquare &res) const |
Compute the generalized square root inverse of the symmetric matrix and put the result in res. | |
ArraySquare & | gsqrt (ArraySquare &res) const |
Compute the square root of the symmetric matrix and put the result in res. | |
virtual bool | run () |
Find the eigenvalues and eigenvectors of the matrix. | |
![]() | |
String const & | error () const |
get the last error message. | |
![]() | |
Derived & | asDerived () |
static cast : return a reference of this with a cast to the derived class. | |
Derived const & | asDerived () const |
static cast : return a const reference of this with a cast to the derived class. | |
Derived * | asPtrDerived () |
static cast : return a ptr on a Derived of this with a cast to the derived class. | |
Derived const * | asPtrDerived () const |
static cast : return a ptr on a constant Derived of this with a cast to the derived class. | |
Derived * | clone () const |
create a leaf using the copy constructor of the Derived class. | |
Derived * | clone (bool isRef) const |
create a leaf using the copy constructor of the Derived class and a flag determining if the clone is a reference or not. | |
Private Member Functions | |
void | tridiagonalize () |
compute the tri-diagonalization of eigenVectors_ | |
void | compHouse () |
compute the Householder matrix and P | |
void | diagonalize () |
computing the diagonalization of eigenValues_ and F_ | |
Private Attributes | |
VectorX | F_ |
Temporary vector. | |
Additional Inherited Members | |
![]() | |
enum | |
typedef IRunnerBase | Base |
typedef hidden::AlgebraTraits< SymEigen< SquareArray > >::SquareArray | SquareArray |
typedef hidden::Traits< SquareArray >::Type | Type |
![]() | |
ISymEigen () | |
Default constructor. | |
ISymEigen (SquareArray const &data, bool ref=false) | |
Constructor The original data set can be overwritten by the eigenvectors if it is stored in a CSquareXd. | |
ISymEigen (ExprBase< OtherDerived > const &data) | |
template constructor | |
ISymEigen (ISymEigen const &eigen) | |
Copy constructor. | |
void | finalizeStep () |
finalize the computation by computing the trace, rank, trace norm and determinant of the matrix. | |
![]() | |
IRunnerBase () | |
default constructor | |
IRunnerBase (IRunnerBase const &runner) | |
copy constructor | |
virtual | ~IRunnerBase () |
destructor | |
virtual void | update () |
update the runner. | |
![]() | |
IRecursiveTemplate () | |
constructor. | |
~IRecursiveTemplate () | |
destructor. | |
![]() | |
Range | range_ |
range of the original data set. | |
Type | trace_ |
trace norm | |
Type | norm_ |
trace norm | |
int | rank_ |
rank | |
Type | det_ |
determinant | |
CArraySquare< Type, size_ > | eigenVectors_ |
Square matrix or the eigenvectors. | |
CArrayVector< Type, size_ > | eigenValues_ |
Array of the eigenvalues. | |
CVectorXi | SupportEigenVectors_ |
Array for the support of the eigenvectors. | |
![]() | |
String | msg_error_ |
String with the last error message. | |
bool | hasRun_ |
true if run has been used, false otherwise | |
The class SymEigen compute the eigenvalue Decomposition of a symmetric ArrayXX.
The decomposition of a symmetric matrix require
The 2-norm (operator norm) of the matrix is given. if the 2-norm is less than the arithmetic precision of the type Real
, the rank is not full. Thus the user can be faced with a deficient rank matrix and with a norm and a determinant very small (but not exactly 0.0).
Definition at line 85 of file STK_SymEigen.h.
typedef ISymEigen<SymEigen<SquareArray> > STK::SymEigen< SquareArray >::Base |
Definition at line 88 of file STK_SymEigen.h.
STK::SymEigen< SquareArray >::SymEigen | ( | ) |
STK::SymEigen< SquareArray >::SymEigen | ( | SquareArray const & | data, |
bool | ref = false |
||
) |
Constructor.
data | reference on a symmetric square matrix |
ref | true if we overwrite the data set, false otherwise |
Definition at line 150 of file STK_SymEigen.h.
STK::SymEigen< SquareArray >::SymEigen | ( | ExprBase< Derived > const & | data | ) |
constructor.
data | A reference on a symmetric expression matrix to decompose. |
Definition at line 167 of file STK_SymEigen.h.
STK::SymEigen< SquareArray >::SymEigen | ( | SymEigen< SquareArray > const & | S | ) |
Copy constructor.
S | the EigenValue to copy |
Definition at line 172 of file STK_SymEigen.h.
|
inlinevirtual |
|
inline |
Definition at line 158 of file STK_SymEigen.h.
|
private |
compute the Householder matrix and P
Definition at line 292 of file STK_SymEigen.h.
|
private |
computing the diagonalization of eigenValues_ and F_
Definition at line 341 of file STK_SymEigen.h.
References _T, MAXITER, STK::IRunnerBase::msg_error_, STK::norm(), STK::rightGivens(), STK::sign(), and STK::sum().
|
inline |
Operator = : overwrite the SymEigen with S.
S | SymEigen to copy |
Definition at line 124 of file STK_SymEigen.h.
References STK::ISymEigen< SymEigen< SquareArray > >::operator=().
bool STK::SymEigen< SquareArray >::runImpl | ( | ) |
Diagonalization of eigenVectors_.
true
if no error occur, false
otherwise Definition at line 177 of file STK_SymEigen.h.
References _T, STK::Exception::error(), STK::IRegression< Array, Array, Weight >::finalizeStep(), STK::IRunnerBase::msg_error_, and stk_cout.
|
private |
compute the tri-diagonalization of eigenVectors_
Definition at line 223 of file STK_SymEigen.h.
References STK::house().
|
private |