ZeroOne< _Field > Class Template Reference
[linbox/blackbox]

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

#include <zo.h>

Inheritance diagram for ZeroOne< _Field >:
BlackboxInterface BlackboxInterface

List of all members.

Public Member Functions

template<class OutVector , class InVector >
OutVector & apply (OutVector &y, const InVector &x) const
 Uses one of the three private utility functions. It calls the generalized utility function _apply if there is no special ordering, _fyapply if there is C_ordering or _fxapply if there is fortran_ordering.
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 Uses one of the three private utility functions, in the manner described above. Worthy of note is the fact that applyTranspose works by passing the column positions to the _apply functions as if they were rows, and row positions as if they were columns, as if the matrix had been transposed.
std::istream & read (std::istream &is)
 ZeroOne (Field &F, Index *rowP, Index *colP, Index rows, Index cols, Index NNz)
template<class OutVector , class InVector >
OutVector & apply (OutVector &y, const InVector &x) const
 Uses one of the three private utility functions. It calls the generalized utility function _apply if there is no special ordering, _fyapply if there is C_ordering or _fxapply if there is fortran_ordering.
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
 Uses one of the three private utility functions, in the manner described above. Worthy of note is the fact that applyTranspose works by passing the column positions to the _apply functions as if they were rows, and row positions as if they were columns, as if the matrix had been transposed.
std::istream & read (std::istream &is)

Detailed Description

template<class _Field>
class LinBox::ZeroOne< _Field >

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

A 0-1 matrix is a matrix with all 0's and 1's as entries. We're using a NAG-sparse format. Applies can be performed fast, using only additions. When initalizing this class, you only need to build 2 arrays of equal length: an array of the row indices for the non-zero (1's) entries, and an array of the column indices for the non-zero (1's) entries.

A {0, 1,-1} matrix can be effecively represented as the Dif of two ZeroOne's.

A 0-1 matrix is a matrix with all 0's and 1's as entries. We're using a comp-col or comp-row format. That is we have an array of col indices and an array of pointers indicating where the col indices for each row begins within the col index array. (or vice versa if we have sorted by columns.

Applies can be performed fast, using only additions. When initalizing this class, you only need to build 2 arrays of equal length: an array of the row indices for the non-zero (1's) entries, and an array of the column indices for the non-zero (1's) entries.

A {0, 1,-1} matrix can be effecively represented as the Dif of two ZeroOne's.


Constructor & Destructor Documentation

ZeroOne ( Field &  F,
Index *  rowP,
Index *  colP,
Index  rows,
Index  cols,
Index  NNz 
) [inline]

The real constructor /todo give docs here assuming entries are sorted in lexicographic order by (row,col) pair.


Member Function Documentation

std::istream& read ( std::istream &  is  )  [inline]

Read the matrix from a stream in the JGD's SMS format

Parameters:
is Input stream from which to read the matrix
Returns:
Reference to input stream
std::istream& read ( std::istream &  is  )  [inline]

Read the matrix from a stream in the JGD's SMS format

Parameters:
is Input stream from which to read the matrix
Returns:
Reference to input stream

The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.2-20100208