Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

LQUPMatrix Class Template Reference

#include <factorized-matrix.h>

List of all members.

template<class Field>
class LinBox::LQUPMatrix< Field >


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

Member Typedef Documentation

typedef Field::Element Element
 


Constructor & Destructor Documentation

LQUPMatrix (  const Field &    F,
const BlasMatrix< Element > &    A
)  [inline]
 

LQUPMatrix (  const Field &    F,
BlasMatrix< Element > &    A
)  [inline]
 

~LQUPMatrix (    )  [inline]
 


Member Function Documentation

size_t coldim (    )  const [inline]
 

Field& field (    )  [inline]
 

TriangularBlasMatrix< typename Field::Element > & getL (  TriangularBlasMatrix< Element > &    L )  const [inline]
 

const BlasPermutation& getP (    )  const [inline]
 

Element* getPointer (    )  const [inline]
 

const BlasPermutation& getQ (    )  const [inline]
 

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

size_t getrank (    )  const [inline]
 

BlasMatrix<Element>& getS (  BlasMatrix< Element > &    S )  const
 

const size_t getStride (    )  const [inline]
 

TriangularBlasMatrix<Element>& getU (  TriangularBlasMatrix< Element > &    U )  const
 

Operand& left_Lsolve (  Operand &    B )  const [inline]
 

Operand& left_Lsolve (  Operand &    X,
const Operand &    B
)  const [inline]
 

Operand& left_solve (  Operand &    B )  const [inline]
 

Operand& left_solve (  Operand &    X,
const Operand &    B
)  const [inline]
 

Operand& left_Usolve (  Operand &    X,
const Operand &    B
)  const [inline]
 

Operand& right_Lsolve (  Operand &    B )  const [inline]
 

Operand& right_Lsolve (  Operand &    X,
const Operand &    B
)  const [inline]
 

Operand& right_solve (  Operand &    B )  const [inline]
 

Operand& right_solve (  Operand &    X,
const Operand &    B
)  const [inline]
 

Operand& right_Usolve (  Operand &    B )  const [inline]
 

Operand& right_Usolve (  Operand &    X,
const Operand &    B
)  const [inline]
 

Operand& rleft_Usolve (  Operand &    B )  const [inline]
 

size_t rowdim (    )  const [inline]
 


Member Data Documentation

bool _alloc [protected]
 

Field _F [protected]
 

BlasMatrix<Element>& _LU [protected]
 

size_t _m [protected]
 

size_t _n [protected]
 

BlasPermutation _P [protected]
 

BlasPermutation _Q [protected]
 

size_t _rank [protected]
 


Generated on Mon Jun 20 09:16:54 2005 for linbox by doxygen1.2.18