linbox
TriangularFIBB< Field_ > Struct Template Referenceabstract

#include <triangular-fibb.h>

+ Inheritance diagram for TriangularFIBB< Field_ >:

Data Structures

struct  rebind
 

Public Types

typedef Field_ Field
 
typedef TriangularFIBB< FieldSelf_t
 
typedef Field::Element Element
 
typedef DenseMatrix< FieldMatrix
 
using ResizableMatrix
 

Public Member Functions

Self_tinit (Rep_t &T) const
 
 TriangularFIBB (const Field &F)
 
 TriangularFIBB (Rep_t &T)
 Constructor from a TriangularBlasMatrix.
 
void random ()
 
 TriangularFIBB (const TriangularFIBB &Mat)
 
 ~TriangularFIBB (void)
 
MatrixapplyRight (Matrix &B, const Matrix &A) const
 
MatrixapplyLeft (Matrix &B, const Matrix &A) const
 
MatrixapplyMatrix (Matrix &B, const Matrix &A, const FFLAS::FFLAS_SIDE side) const
 
BBType bbTag () const
 
size_t & rank (size_t &r) const
 
Elementdet (Element &d) const
 
MatrixsolveRight (Matrix &B, const Matrix &A) const
 Y: AY = X, for this A.
 
MatrixsolveLeft (Matrix &B, const Matrix &A) const
 Y: YA = X, for this A.
 
MatrixsolveMatrix (Matrix &B, const Matrix &A, const Tag::Side side) const
 
MatrixnullspaceRandomRight (Matrix &N) const
 N: AN = 0, each col random.
 
MatrixnullspaceRandomLeft (Matrix &N) const
 N: NA = 0, each row random.
 
BlasMatrix< Field > & nullspaceBasisRight (BlasMatrix< Field > &N) const
 
BlasMatrix< Field > & nullspaceBasisLeft (BlasMatrix< Field > &N) const
 
size_t rowdim (void) const
 rowdim
 
size_t coldim (void) const
 coldim
 
const Fieldfield () const
 
const Fieldring () const
 
std::ostream & write (std::ostream &os) const
 
std::ostream & write (std::ostream &os, Tag::FileFormat format) const
 
std::istream & read (std::istream &is)
 
std::istream & read (std::istream &is) const
 
std::istream & read (std::istream &is, Tag::FileFormat format) const
 
virtual Elementdet (Element &d) const=0
 
virtual ResizableMatrixnullspaceBasisRight (ResizableMatrix &B) const=0
 B: columns are a right nullspace basis for this A.
 
virtual ResizableMatrixnullspaceBasisLeft (ResizableMatrix &B) const=0
 BA= 0 and xA = 0 => exists y: x = yB and B full rank.
 
OutVector & apply (OutVector &y, const InVector &x) const
 
OutVector & apply (OutVector &y, const InVector &x) const
 
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 
void map (BB2 &A)
 
void map (BB2 &A)
 

Protected Types

typedef TriangularBlasMatrix< BlasMatrix< Field > > Rep_t
 

Protected Attributes

Rep_trep_
 
const Fieldfield_
 

Member Typedef Documentation

◆ Field

template<class Field_>
typedef Field_ Field

◆ Rep_t

template<class Field_>
typedef TriangularBlasMatrix<BlasMatrix<Field> > Rep_t
protected

◆ Self_t

template<class Field_>
typedef TriangularFIBB<Field> Self_t

◆ Element

template<class Field_>
typedef Field::Element Element

◆ Matrix

template<class Field_>
typedef DenseMatrix<Field> Matrix

◆ ResizableMatrix

using ResizableMatrix
inherited

Constructor & Destructor Documentation

◆ TriangularFIBB() [1/3]

template<class Field_>
TriangularFIBB ( const Field & F)
inline

◆ TriangularFIBB() [2/3]

template<class Field_>
TriangularFIBB ( Rep_t & T)
inline

Constructor from a TriangularBlasMatrix.

◆ TriangularFIBB() [3/3]

template<class Field_>
TriangularFIBB ( const TriangularFIBB< Field_ > & Mat)
inline

◆ ~TriangularFIBB()

template<class Field_>
~TriangularFIBB ( void )
inline

Member Function Documentation

◆ init()

template<class Field_>
Self_t & init ( Rep_t & T) const
inline

◆ random()

template<class Field_>
void random ( )
inline

◆ applyRight()

template<class Field_>
Matrix & applyRight ( Matrix & B,
const Matrix & A ) const
inlinevirtual

Implements BB< Field_ >.

◆ applyLeft()

template<class Field_>
Matrix & applyLeft ( Matrix & B,
const Matrix & A ) const
inlinevirtual

Implements BB< Field_ >.

◆ applyMatrix()

template<class Field_>
Matrix & applyMatrix ( Matrix & B,
const Matrix & A,
const FFLAS::FFLAS_SIDE side ) const
inline

◆ bbTag()

template<class Field_>
BBType bbTag ( ) const
inlinevirtual

Implements BB< Field_ >.

◆ rank()

template<class Field_>
size_t & rank ( size_t & r) const
inlinevirtual

Implements FIBB< Field_ >.

◆ det() [1/2]

template<class Field_>
Element & det ( Element & d) const
inline

◆ solveRight()

template<class Field_>
Matrix & solveRight ( Matrix & Y,
const Matrix & X ) const
inlinevirtual

Y: AY = X, for this A.

Solve nonsingular or consistent singular system. If it is consistent singular, an arbitrary solution is provided. X and Y must have identical shape.

Note that Y+Z is a random sample of the solution space after {solveRight(Y, X); nullspaceRandomRight(Z);}.

Behaviour is unspecified for inconsistent systems (see solveMP).

Implements FIBB< Field_ >.

◆ solveLeft()

template<class Field_>
Matrix & solveLeft ( Matrix & Y,
const Matrix & X ) const
inlinevirtual

Y: YA = X, for this A.

Implements FIBB< Field_ >.

◆ solveMatrix()

template<class Field_>
Matrix & solveMatrix ( Matrix & B,
const Matrix & A,
const Tag::Side side ) const
inline

◆ nullspaceRandomRight()

template<class Field_>
Matrix & nullspaceRandomRight ( Matrix & N) const
inlinevirtual

N: AN = 0, each col random.

Implements FIBB< Field_ >.

◆ nullspaceRandomLeft()

template<class Field_>
Matrix & nullspaceRandomLeft ( Matrix & N) const
inlinevirtual

N: NA = 0, each row random.

Implements FIBB< Field_ >.

◆ nullspaceBasisRight() [1/2]

template<class Field_>
BlasMatrix< Field > & nullspaceBasisRight ( BlasMatrix< Field > & N) const
inline

◆ nullspaceBasisLeft() [1/2]

template<class Field_>
BlasMatrix< Field > & nullspaceBasisLeft ( BlasMatrix< Field > & N) const
inline

◆ rowdim()

template<class Field_>
size_t rowdim ( void ) const
inlinevirtual

rowdim

Implements BB< Field_ >.

◆ coldim()

template<class Field_>
size_t coldim ( void ) const
inlinevirtual

coldim

Implements BB< Field_ >.

◆ field()

template<class Field_>
const Field & field ( ) const
inlinevirtual

Implements BB< Field_ >.

◆ ring()

template<class Field_>
const Field & ring ( ) const
inline

◆ write() [1/2]

template<class Field_>
std::ostream & write ( std::ostream & os) const
inlinevirtual
Bug
needs a MM version

Implements BB< Field_ >.

◆ write() [2/2]

template<class Field_>
std::ostream & write ( std::ostream & os,
Tag::FileFormat format ) const
inline

◆ read() [1/3]

template<class Field_>
std::istream & read ( std::istream & is)
inlinevirtual
Bug
there is no read here. (needed by test-blackbox.h)

Implements BB< Field_ >.

◆ read() [2/3]

template<class Field_>
std::istream & read ( std::istream & is) const
inline

◆ read() [3/3]

template<class Field_>
std::istream & read ( std::istream & is,
Tag::FileFormat format ) const
inline

◆ det() [2/2]

virtual Element & det ( Element & d) const
pure virtualinherited

◆ nullspaceBasisRight() [2/2]

virtual ResizableMatrix & nullspaceBasisRight ( ResizableMatrix & B) const
pure virtualinherited

B: columns are a right nullspace basis for this A.

B is resized and filled so that: (1) AB = 0, (2) Ax = 0 => exists y: x = By, and (3) B has full rank.

◆ nullspaceBasisLeft() [2/2]

virtual ResizableMatrix & nullspaceBasisLeft ( ResizableMatrix & B) const
pure virtualinherited

BA= 0 and xA = 0 => exists y: x = yB and B full rank.

◆ apply() [1/2]

OutVector & apply ( OutVector & y,
const InVector & x ) const
inlineinherited

◆ apply() [2/2]

OutVector & apply ( OutVector & y,
const InVector & x ) const
inlineinherited

◆ applyTranspose() [1/2]

OutVector & applyTranspose ( OutVector & y,
const InVector & x ) const
inlineinherited

◆ applyTranspose() [2/2]

OutVector & applyTranspose ( OutVector & y,
const InVector & x ) const
inlineinherited

◆ map() [1/2]

void map ( BB2 & A)
inlineinherited

◆ map() [2/2]

void map ( BB2 & A)
inlineinherited

Field Documentation

◆ rep_

template<class Field_>
Rep_t* rep_
protected

◆ field_

template<class Field_>
const Field* field_
protected

The documentation for this struct was generated from the following file: