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

Inverse Class Template Reference
[linbox/blackbox]

#include <inverse.h>

Inheritance diagram for Inverse:

BlackboxInterface List of all members.

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 \Ref{LinBox} vector to which to apply the matrix. The third is chosen be default to be the \Ref{LinBox} vector trait of the vector. This class is then specialized for dense and sparse vectors.

Parameters:
Field  \Ref{LinBox} field
Vector  \Ref{LinBox} dense or sparse vector of field elements
Trait  Marker whether to use dense or sparse LinBox vector implementation. This is chosen by a default parameter and partial template specialization.


Public Types

typedef Blackbox::Field Field
typedef Field::Element Element
typedef std::vector< ElementPolynomial

Public Methods

 Inverse (const Blackbox *BB)
 Inverse (const Inverse &BB)
template<class OutVector, class InVector> OutVector & apply (OutVector &y, const InVector &x) const
template<class OutVector, class InVector> OutVector & applyTranspose (OutVector &y, const InVector &x) const
size_t rowdim (void) const
size_t coldim (void) const
const Fieldfield () const


Member Typedef Documentation

typedef Field::Element Element
 

typedef Blackbox::Field Field
 

typedef std::vector<Element> Polynomial
 


Constructor & Destructor Documentation

Inverse const Blackbox   BB [inline]
 

Constructor from field and dense vector of field elements.

Parameters:
__BB  Black box of which to get the inverse

Inverse const Inverse< Blackbox > &    BB [inline]
 

Copy constructor, so that we don't have to recompute the minimal polynomial every time this black box is used inside another black box


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 \Ref{LinBox} vector archetype. Required by abstract base class.

Returns:
reference to vector y containing output.
Parameters:
y  reference to vector into which to store the result
x  constant reference to vector to contain input

OutVector& applyTranspose OutVector &    y,
const InVector &    x
const [inline]
 

Application of BlackBox matrix transpose. y= transpose(A)*x. Requires one vector conforming to the \Ref{LinBox} vector archetype. Required by abstract base class.

Returns:
reference to vector y containing output.
Parameters:
x  constant reference to vector to contain input

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.

const Field& field   const [inline]
 

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.


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