linbox
Public Member Functions
Inverse< Blackbox > Class Template Reference

A Blackbox for the inverse. More...

#include <inverse.h>

Inheritance diagram for Inverse< Blackbox >:

Public Member Functions

 Inverse (const Blackbox *BB)
 Constructor from field and dense vector of field elements.
 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.
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 Application of BlackBox matrix transpose.
size_t rowdim (void) const
 Retreive row dimensions of BlackBox matrix.
size_t coldim (void) const
 Retreive column dimensions of BlackBox matrix.

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

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
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
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.
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: