Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

LQUPMatrix Class Template Reference

#include <factorized-matrix.h>

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


Public Types

typedef Field::Element Element

Public Member Functions

 LQUPMatrix (const Field &F, const BlasMatrix< Element > &A)
 LQUPMatrix (const Field &F, BlasMatrix< Element > &A)
 LQUPMatrix (const BlasBlackbox< Field > &A)
 LQUPMatrix (BlasBlackbox< Field > &A)
 ~LQUPMatrix ()
Fieldfield ()
size_t rowdim () const
size_t coldim () const
size_t getrank () const
const BlasPermutationgetP () const
const BlasPermutationgetQ () const
TriangularBlasMatrix< Element > & getL (TriangularBlasMatrix< Element > &L) const
TriangularBlasMatrix< Element > & getU (TriangularBlasMatrix< Element > &U) const
BlasMatrix< Element > & getS (BlasMatrix< Element > &S) const
ElementgetPointer () 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 const BlasBlackbox< Field > &  A  )  [inline]
 

LQUPMatrix BlasBlackbox< Field > &  A  )  [inline]
 

~LQUPMatrix  )  [inline]
 


Member Function Documentation

Field& field  )  [inline]
 

size_t rowdim  )  const [inline]
 

size_t coldim  )  const [inline]
 

size_t getrank  )  const [inline]
 

const BlasPermutation& getP  )  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 S_n, while right-multiplying by the same matrix corresponds to the inverse column permutation ^(-1)! Usually this is handled intelligently (eg by applyP) but you must be careful with getQ().

TriangularBlasMatrix<Element>& getL TriangularBlasMatrix< Element > &  L  )  const
 

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

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

Element* getPointer  )  const [inline]
 

const size_t getStride  )  const [inline]
 

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

Operand& left_solve Operand &  B  )  const [inline]
 

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

Operand& right_solve Operand &  B  )  const [inline]
 

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

Operand& left_Lsolve Operand &  B  )  const [inline]
 

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

Operand& right_Lsolve Operand &  B  )  const [inline]
 

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

Operand& rleft_Usolve Operand &  B  )  const [inline]
 

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

Operand& right_Usolve Operand &  B  )  const [inline]
 


Field Documentation

Field _F [protected]
 

BlasMatrix<Element>& _LU [protected]
 

BlasPermutation _P [protected]
 

BlasPermutation _Q [protected]
 

size_t _m [protected]
 

size_t _n [protected]
 

size_t _rank [protected]
 

bool _alloc [protected]
 


Generated on Fri Jul 8 10:29:54 2005 for linbox by doxygen 1.3.7