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

BlackboxArchetype Class Reference
[linbox/blackbox]

#include <archetype.h>

List of all members.


Detailed Description

showing the member functions provided by all blackbox matrix classes.

This simple interface is all that is needed for the blackbox algorithms. Alternatively, the matrix archetype provides individual matrix entry access, as needed by some algorithms, such as elimination methods.


Public Member Functions

template<class InVector, class OutVector> OutVector & apply (OutVector &y, const InVector &x) const
 y := Ax, matrix-vector product.

template<class InVector, class OutVector> OutVector & apply (OutVector &y, const InVector &x, void *handle) const
 y := Ax, matrix-vector product using a handle for ...

template<class InVector, class OutVector> OutVector & applyTranspose (OutVector &y, const InVector &x) const
 y := xA, vector-matrix product.

template<class InVector, class OutVector> OutVector & applyTranspose (OutVector &y, const InVector &x, void *handle) const
 y := xA, vector-matrix product using a handle for ...

size_t rowdim () const
 Returns the number of rows of the matrix.

size_t coldim () const
 Returns the number of columns of the matrix.


Member Function Documentation

OutVector& apply OutVector &  y,
const InVector &  x
const
 

y := Ax, matrix-vector product.

The vector x must be of size A.coldim(), where A is this blackbox. On entry to apply, the vector y must be of size A.rowdim(). Neither vector has it's size or capacity modified by apply. Apply is not responsible for the validity of the sizes, which may or may not be checked. The two vectors may not overlap in memory.

Parameters:
y it's entries are overwritten and a reference to it is also returned to allow for use in nested expressions.
x it's entries are the input data.

OutVector& apply OutVector &  y,
const InVector &  x,
void *  handle
const
 

y := Ax, matrix-vector product using a handle for ...

The handle serves as "protection from the future". The idea is that the handle could allow the blackbox to operate more as a pure container, with the field (or other functionality such as dot product) provided through the handle.

However, there are no known current uses (2003 june).

OutVector& applyTranspose OutVector &  y,
const InVector &  x
const
 

y := xA, vector-matrix product.

(Or from a column vector viewpoint: y := AT x, matrix transpose times vector product. )

The vector x must be of size A.rowdim(), where A is this blackbox. On entry to apply, the vector y must be of size A.coldim(). Neither vector has it's size or capacity modified by applyTranspose. ApplyTranspose is not responsible for the validity of the sizes, which may or may not be checked. The two vectors may not overlap in memory.

Parameters:
y it's entries are overwritten and a reference to it is also returned to allow for use in nested expressions.
x it's entries are the input data.

OutVector& applyTranspose OutVector &  y,
const InVector &  x,
void *  handle
const
 

y := xA, vector-matrix product using a handle for ...

The handle serves as "protection from the future". The idea is that the handle could allow the blackbox to operate more as a pure container, with the field (or other functionality such as dot product) provided through the handle.

However, there are no known current uses (2003 june).

size_t rowdim  )  const
 

Returns the number of rows of the matrix.

This may be zero or greater. Currently matrix size beyond size_t is not supported.

size_t coldim  )  const
 

Returns the number of columns of the matrix.

This may be zero or greater. Currently matrix size beyond size_t is not supported.


The documentation for this class was generated from the following file:
Generated on Thu Feb 8 22:32:57 2007 for linbox by doxygen 1.3.4