linbox  1
Public Member Functions
MoorePenrose< Blackbox > Class Template Reference

Generalized inverse of a blackbox. Efficiency concerns when many applications are used. More...

#include <moore-penrose.h>

Inheritance diagram for MoorePenrose< Blackbox >:
BlackboxInterface

List of all members.

Public Member Functions

 MoorePenrose (const Blackbox *A, size_t rank)
 MoorePenrose (const MoorePenrose &A)
 ~MoorePenrose ()
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

Detailed Description

template<class Blackbox>
class LinBox::MoorePenrose< Blackbox >

Generalized inverse of a blackbox. Efficiency concerns when many applications are used.

Given an arbitrary matrix in black box representation, this black box represents the Moore-Penrose inverse of the matrix.

This implementation assumes that A already has a nonsingular principal r x r minor. It is the caller's responsibility to ensure that that condition holds.

Given MoorePenrose M(A, r), and vector b, we have that M.apply(u, b) provides the least norm, least squares solution x = u to Ax = b.

TODO: remove the requirement that lpm is nonsingular. Specialize for dense matrices.


Constructor & Destructor Documentation

MoorePenrose ( const Blackbox *  A,
size_t  rank 
) [inline]

Constructor from field and dense vector of field elements.

Parameters:
BBBlack box from which to extract the submatrix
rowFirst row of the submatrix to extract (1.._BB->rowdim ())
colFirst column of the submatrix to extract (1.._BB->coldim ())
rowdimRow dimension
coldimColumn dimension
MoorePenrose ( const MoorePenrose< Blackbox > &  A) [inline]

Copy constructor

~MoorePenrose ( ) [inline]

Destructor


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:
xconstant 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 LinBox} vector archetype. Required by abstract base class.

Returns:
reference to vector y containing output.
Parameters:
xconstant reference to vector to contain input
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: