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

linbox/blackbox


Detailed Description

These matrix classes adhere to the simple blackbox interface.

Blackbox matrix algorithms require of the matrix only it's property of being a linear operator. That is, such algorithms exploit only the capacity to apply the matrix to a vector (column vector on right or row vector on left). The advantage is efficient generic methods particularly applicable to sparse and structured matrix classes in which matrix vector product is fast. Importantly, these methods are also space efficient, typically, for an n by n matrix using only O(n) space beyond the matrix representation itself.

These classes all implement the very simple black box interface as it is defined in the LinBox::BlackboxArchetype base class. Thus blackbox matrix algorithms may be used on objects of any of these classes. In contrast, classes representing matrices in such a way that elimination and other operations can be performed on them adhere to more extensive interfaces defined in the linbox/matrix directory.

Some of the classes are intended for general use, some are designed to support specific needs of algorithms, and some are primarily for testing purposes.

Users are most likely to be interested in the sparse matrix classes (SparseMatrix, TriplesBB), the class DenseMatrix, and structured matrix classes such as Toeplitz. Consult the constructors and/or read() member function documentation to see how to create them. To use a blackbox of class BB in a code: {\tt #include "/linbox/blackbox/BB.h"}

Classes designed to be used as preconditioners in algorithms or for testing typically also provide functionality to generate random instances of the class. Examples are Diagonal and Butterfly for preconditioners, xxx for testing.

Some of the classes provide a rudimentary basis of blackbox operators for a "blackbox calculus." These include {\tt Compose, Sum, Dif, Submatrix, DirectSum, Inverse, MoorePenrose}.

Developers: All black box matrices should be derived from the BlackboxArchetype, so that they may be used as parameters to functions compiled with the blackbox archetype.

Compounds

class  BlackboxArchetype
 showing the member functions provided by all blackbox matrix classes. More...

class  BlasBlackbox
 template <class _Field> More...

class  Butterfly
 Butterfly Switching Network based BlackBox Matrix. A good preconditioner. @doc Implements butterfly switching network on a LinBox vector as a black box matrix through the use of a switch object. More...

struct  Companion
 Companion matrix of a monic polynomial. More...

class  Compose
 General case. More...

class  DenseMatrix
 Blackbox interface to dense matrix representation. More...

class  Diagonal
 General diagonal, not be implemented. More...

class  Dif
 Blackbox of a difference: C := A - B, i.e. Cx = Ax - Bx. More...

class  DirectSum
 If C = DirectSum(A, B) and y = xA and z = wB, then (y,z) = (x,w)C. More...

class  Frobenius
 template <class _Field> More...

class  Hankel
 template <class _Field> More...

class  Hilbert
 Example of a blackbox that is space efficient, though not time efficient. More...

class  Inverse
 A Blackbox for the inverse. Not efficient if many applications are used. More...

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

class  NullMatrix
 This is a representation of the 0 by 0 empty matrix which does not occupy memory. It has it's uses! More...

class  Permutation
 size is n. More...

class  PolynomialBB
 represent the matrix P(A) where A is a blackbox and P a polynomial More...

class  ScalarMatrix
 Blackbox for aI. Use particularly for representing 0 and I. More...

class  SparseMatrix
 vector of sparse rows. More...

class  Submatrix
class  SubRowMatrix< Matrix, MatrixCategories::RowMatrixTag >
class  Sum
 blackbox of a matrix sum without copying. More...

class  Sylvester
class  Toeplitz
 This is the blackbox representation of a Toeplitz matrix. More...

class  Transpose
 transpose matrix without copying. More...

class  TriplesBB
 wrapper for NAG Sparse Matrix format. More...

class  ZeroOne
 Time and space efficient representation of sparse {0,1}-matrices. More...


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