#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(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|