linbox
Public Member Functions
Inverse< Blackbox > Class Template Reference

A Blackbox for the inverse. More...

#include <inverse.h>

Inherits BlackboxInterface.

Public Member Functions

 Inverse (const Blackbox *BB)
 Constructor from field and dense vector of field elements. More...
 
 Inverse (const Inverse &BB)
 Copy constructor, so that we don't have to recompute the minimal polynomial every time this black box is used inside another black box.
 
template<class OutVector , class InVector >
OutVector & apply (OutVector &y, const InVector &x) const
 Application of BlackBox matrix. More...
 
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 Application of BlackBox matrix transpose. More...
 
size_t rowdim (void) const
 Retreive row dimensions of BlackBox matrix. More...
 
size_t coldim (void) const
 Retreive column dimensions of BlackBox matrix. More...
 

Detailed Description

template<class Blackbox>
class LinBox::Inverse< Blackbox >

A Blackbox for the inverse.

Not efficient if many applications are used.

The matrix itself is not stored in memory. Rather, its apply methods use a vector of field elements, which are used to "multiply" the matrix to a vector.

This class has three template parameters. The first is the field in which the arithmetic is to be done. The second is the type of LinBox vector to which to apply the matrix. The third is chosen be default to be the LinBox vector trait of the vector. This class is then specialized for dense and sparse vectors.

Parameters
FieldLinBox field
VectorLinBox dense or sparse vector of field elements
TraitMarker whether to use dense or sparse LinBox vector implementation. This is chosen by a default parameter and partial template specialization.

Constructor & Destructor Documentation

◆ Inverse()

Inverse ( const Blackbox *  BB)
inline

Constructor from field and dense vector of field elements.

Parameters
BBBlack box of which to get the inverse

Member Function Documentation

◆ apply()

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

Application of BlackBox matrix.

y= A*x. Requires one vector conforming to the LinBox vector archetype. Required by abstract base class.

Returns
reference to vector y containing output.
Parameters
yreference to vector into which to store the result
xconstant reference to vector to contain input

◆ applyTranspose()

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

Application of BlackBox matrix transpose.

$ y= A^t \cdot x.$ Requires one vector conforming to the LinBox vector archetype. Required by abstract base class.

Returns
reference to vector y containing output.
Parameters
xconstant reference to vector to contain input
y

◆ rowdim()

size_t rowdim ( void  ) const
inline

Retreive row dimensions of BlackBox matrix.

This may be needed for applying preconditioners. Required by abstract base class.

Returns
integer number of rows of black box matrix.

◆ coldim()

size_t coldim ( void  ) const
inline

Retreive column dimensions of BlackBox matrix.

Required by abstract base class.

Returns
integer number of columns of black box matrix.

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