|
STK++ 0.9.13
|
{ More...
#include <STK_lapack_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 (ArrayBase< Derived > const &data) | |
| Constructor. | |
| SymEigen (SymEigen const &eigen) | |
| copy constructor | |
| virtual | ~SymEigen () |
| Destructor. | |
| void | setJobz (char jobz) |
| void | setRange (char range) |
| void | setUplo (char uplo) |
| void | setVlAndVu (Real const &vl, Real const &vu) |
| void | setIlAndIu (int il, int iu) |
| virtual SymEigen * | clone () const |
| clone pattern | |
| bool | runImpl () |
| Run eigenvalues decomposition Launch SYEVR LAPACK routine to perform the eigenvalues decomposition. | |
| SymEigen (CSquareX const &data, bool ref) | |
Public Member Functions inherited from STK::ISymEigen< SymEigen< SquareArray > > | |
| ~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. | |
Public Member Functions inherited from STK::IRunnerBase | |
| String const & | error () const |
| get the last error message. | |
Public Member Functions inherited from STK::IRecursiveTemplate< Derived > | |
| 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 Attributes | |
| char | jobz_ |
| Lapack pptions. | |
| char | RANGE_ |
| char | UPLO_ |
| Real | VL_ |
| Real | VU_ |
| int | IL_ |
| int | IU_ |
Additional Inherited Members | |
Protected Types inherited from STK::ISymEigen< SymEigen< SquareArray > > | |
| enum | |
| typedef IRunnerBase | Base |
| typedef hidden::AlgebraTraits< SymEigen< SquareArray > >::SquareArray | SquareArray |
| typedef hidden::Traits< SquareArray >::Type | Type |
Protected Member Functions inherited from STK::ISymEigen< SymEigen< SquareArray > > | |
| 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. | |
Protected Member Functions inherited from STK::IRunnerBase | |
| IRunnerBase () | |
| default constructor | |
| IRunnerBase (IRunnerBase const &runner) | |
| copy constructor | |
| virtual | ~IRunnerBase () |
| destructor | |
| virtual void | update () |
| update the runner. | |
Protected Member Functions inherited from STK::IRecursiveTemplate< Derived > | |
| IRecursiveTemplate () | |
| constructor. | |
| ~IRecursiveTemplate () | |
| destructor. | |
Protected Attributes inherited from STK::ISymEigen< SymEigen< SquareArray > > | |
| 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. | |
Protected Attributes inherited from STK::IRunnerBase | |
| String | msg_error_ |
| String with the last error message. | |
| bool | hasRun_ |
true if run has been used, false otherwise | |
{
SymEigen computes the eigenvalues and optionally the eigenvectors of a symmetric real matrix using the syevr Lapack routine.
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 97 of file STK_lapack_SymEigen.h.
| typedef ISymEigen< SymEigen<SquareArray> > STK::lapack::SymEigen< SquareArray >::Base |
Definition at line 100 of file STK_lapack_SymEigen.h.
| STK::lapack::SymEigen< SquareArray >::SymEigen | ( | ) |
Default Constructor.
Definition at line 182 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::clone().
| STK::lapack::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 191 of file STK_lapack_SymEigen.h.
| STK::lapack::SymEigen< SquareArray >::SymEigen | ( | ArrayBase< Derived > const & | data | ) |
| STK::lapack::SymEigen< SquareArray >::SymEigen | ( | SymEigen< SquareArray > const & | eigen | ) |
|
inlinevirtual |
|
inline |
|
inlinevirtual |
clone pattern
Definition at line 163 of file STK_lapack_SymEigen.h.
References STK::lapack::SymEigen< SquareArray >::SymEigen().
| bool STK::lapack::SymEigen< SquareArray >::runImpl | ( | ) |
Run eigenvalues decomposition Launch SYEVR LAPACK routine to perform the eigenvalues decomposition.
true if no error occur, false otherwise Definition at line 229 of file STK_lapack_SymEigen.h.
References _T, STK::ICArray< Derived >::p_data(), STK::IRunnerBase::run(), STK::ICArray< Derived >::shift(), stk_cout, STKERROR_1ARG, STKERROR_NO_ARG, and STK::lapack::syevr().
|
inline |
| il,iu | If RANGE_='I', the indices (in ascending order) of the smallest and largest eigenvalues to be returned. 1 <= IL_ <= IU_ <= NL, if NL > 0; IL_ = 1 and IU_ = 0 if NL = 0. Not referenced if RANGE_ = 'A' or 'V'. |
Definition at line 160 of file STK_lapack_SymEigen.h.
References STK::lapack::SymEigen< SquareArray >::IL_, and STK::lapack::SymEigen< SquareArray >::IU_.
|
inline |
| jobz | If jobz ='N': Compute eigenvalues only; If jobz = 'V': Compute eigenvalues and eigenvectors. |
Definition at line 137 of file STK_lapack_SymEigen.h.
References STK::lapack::SymEigen< SquareArray >::jobz_.
|
inline |
| range | range of the eigenvalues to be found. If range = 'A': all eigenvalues will be found. If range = 'V': all eigenvalues in the half-open interval (VL_,VU_] will be found. If range = 'I': the IL_-th through IU_-th eigenvalues will be found. |
Definition at line 143 of file STK_lapack_SymEigen.h.
References STK::ISymEigen< SymEigen< SquareArray > >::range(), and STK::lapack::SymEigen< SquareArray >::RANGE_.
|
inline |
| uplo | values to used in A. If uplo = 'U': Upper triangle of A is stored; If uplo = 'L': Lower triangle of A is stored. |
Definition at line 148 of file STK_lapack_SymEigen.h.
References STK::lapack::SymEigen< SquareArray >::UPLO_.
Referenced by STK::hidden::InvertLowerSymMatrixImpl< Matrix, Size_ >::invertLowerSymMatrixXX().
|
inline |
| [in] | vl,vu | lower and upper bounds of the interval to be searched for eigenvalues. Not referenced if RANGE_ = 'A' or 'I'. |
Definition at line 153 of file STK_lapack_SymEigen.h.
References STK::lapack::SymEigen< SquareArray >::VL_, and STK::lapack::SymEigen< SquareArray >::VU_.
|
private |
Definition at line 174 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setIlAndIu().
|
private |
Definition at line 174 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setIlAndIu().
|
private |
Lapack pptions.
Definition at line 172 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setJobz().
|
private |
Definition at line 172 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setRange().
|
private |
Definition at line 172 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setUplo().
|
private |
Definition at line 173 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setVlAndVu().
|
private |
Definition at line 173 of file STK_lapack_SymEigen.h.
Referenced by STK::lapack::SymEigen< SquareArray >::setVlAndVu().