#include <factorized-matrix.h>
Public Types | |
| typedef Field::Element | Element |
Public Methods | |
| LQUPMatrix (const Field &F, const BlasMatrix< Element > &A) | |
| LQUPMatrix (const Field &F, BlasMatrix< Element > &A) | |
| ~LQUPMatrix () | |
| Field & | field () |
| size_t | rowdim () const |
| size_t | coldim () const |
| size_t | getrank () const |
| const BlasPermutation & | getP () const |
| const BlasPermutation & | getQ () const |
| TriangularBlasMatrix< Element > & | getL (TriangularBlasMatrix< Element > &L) const |
| TriangularBlasMatrix< Element > & | getU (TriangularBlasMatrix< Element > &U) const |
| BlasMatrix< Element > & | getS (BlasMatrix< Element > &S) const |
| Element * | getPointer () const |
| const size_t | getStride () const |
| template<class Operand> Operand & | left_solve (Operand &X, const Operand &B) const |
| template<class Operand> Operand & | left_solve (Operand &B) const |
| template<class Operand> Operand & | right_solve (Operand &X, const Operand &B) const |
| template<class Operand> Operand & | right_solve (Operand &B) const |
| template<class Operand> Operand & | left_Lsolve (Operand &X, const Operand &B) const |
| template<class Operand> Operand & | left_Lsolve (Operand &B) const |
| template<class Operand> Operand & | right_Lsolve (Operand &X, const Operand &B) const |
| template<class Operand> Operand & | right_Lsolve (Operand &B) const |
| template<class Operand> Operand & | left_Usolve (Operand &X, const Operand &B) const |
| template<class Operand> Operand & | rleft_Usolve (Operand &B) const |
| template<class Operand> Operand & | right_Usolve (Operand &X, const Operand &B) const |
| template<class Operand> Operand & | right_Usolve (Operand &B) const |
Protected Attributes | |
| Field | _F |
| BlasMatrix< Element > & | _LU |
| BlasPermutation | _P |
| BlasPermutation | _Q |
| size_t | _m |
| size_t | _n |
| size_t | _rank |
| bool | _alloc |
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
get the _transpose_ of the permutation Q NOTE: this does not return Q itself! (because it is more difficult to compute) If needed, Q can be obtained as a TransposedBlasMatrix from the return value One reason this confusion exists is that left-multiplying by a permuation matrix corresponds to a row permuation \pi \in S_n, while right-multiplying by the same matrix corresponds to the inverse column permutation \pi^(-1)! Usually this is handled intelligently (eg by applyP) but you must be careful with getQ(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.2.18