linbox
Public Member Functions
SparseMatrixBase< _Element, _Row, Trait > Class Template Reference

Sparse matrix container This class acts as a generic row-wise container for sparse matrices. More...

#include <sparse.h>

Public Member Functions

 SparseMatrixBase (size_t m, size_t n)
 Constructor.
template<class Field >
 SparseMatrixBase (MatrixStream< Field > &ms)
 Constructor from a MatrixStream.
 SparseMatrixBase (const SparseMatrixBase< Element, Row, Trait > &A)
 Copy constructor.
template<class VectorType >
 SparseMatrixBase (const SparseMatrixBase< Element, VectorType, Trait > &A)
 Convert constructor.
 ~SparseMatrixBase ()
 Destructor.
size_t rowdim () const
 Retreive row dimension of the matrix.
size_t coldim () const
 Retreive column dimension of matrix.
size_t size () const
 Retreive number of elements in the matrix.
template<class Field >
std::istream & read (std::istream &is, const Field &F, FileFormatTag format=FORMAT_DETECT)
 Read a matrix from the given input stream using field read/write.
std::istream & read (std::istream &is, FileFormatTag format=FORMAT_DETECT)
 Read a matrix from the given input stream using standard operators.
template<class Field >
std::ostream & write (std::ostream &os, const Field &F, FileFormatTag format=FORMAT_PRETTY) const
 Write a matrix to the given output stream using field read/write.
std::ostream & write (std::ostream &os, FileFormatTag format=FORMAT_PRETTY) const
 Write a matrix to the given output stream using standard operators.
void setEntry (size_t i, size_t j, const Element &value)
 Set an individual entry Setting the entry to 0 will remove it from the matrix.
Element & refEntry (size_t i, size_t j)
 Get a writeable reference to an entry in the matrix If there is no entry at the position (i, j), then a new entry with a value of zero is inserted and a reference to it is returned.
const Element & getEntry (size_t i, size_t j) const
 Get a read-only individual entry from the matrix.
Element & getEntry (Element &x, size_t i, size_t j) const
 Get an entry and store it in the given value This form is more in the Linbox style and is provided for interface compatibility with other parts of the library.
Raw iterator

The raw iterator is a method for accessing all nonzero entries in the matrix in some unspecified order.

This can be used, e.g. to reduce all matrix entries modulo a prime before passing the matrix into an algorithm.

RawIterator rawBegin ()
 rawBegin.
RawIterator rawEnd ()
 rawEnd.
ConstRawIterator rawBegin () const
 const rawBegin.
ConstRawIterator rawEnd () const
 const rawEnd

Columns of rows iterator

The columns of row iterator gives each of the rows of the matrix in ascending order.

Dereferencing the iterator yields a row vector in sparse sequence format

typedef Rep::iterator RowIterator
typedef Rep::const_iterator ConstRowIterator
RowIterator rowBegin ()
RowIterator rowEnd ()
ConstRowIterator rowBegin () const
ConstRowIterator rowEnd () const

Index iterator

The index iterator gives the row, column indices of all matrix elements in the same order as the raw iterator above.

Its value type is an STL pair with the row and column indices, starting at 0, in the first and second positions, respectively.

class SparseMatrixWriteHelper< Element, Row >
 rawIndexedBegin
class SparseMatrixReadWriteHelper< Element, Row >
 rawIndexedBegin
class SparseMatrixBase
 rawIndexedBegin
Rep _A
 rawIndexedBegin
size_t _m
 rawIndexedBegin
size_t _n
 rawIndexedBegin
RawIndexedIterator rawIndexedBegin ()
 rawIndexedBegin
RawIndexedIterator rawIndexedEnd ()
 rawIndexedEnd
ConstRawIndexedIterator rawIndexedBegin () const
 const rawIndexedBegin
ConstRawIndexedIterator rawIndexedEnd () const
 const rawIndexedEnd
Row & getRow (size_t i)
 Retrieve a row as a writeable reference.
Row & operator[] (size_t i)
 Retrieve a row as a writeable reference.
ConstRow & operator[] (size_t i) const
 Retrieve a row as a read-only reference.
template<class Vector >
Vector & columnDensity (Vector &v) const
 Compute the column density, i.e the number of entries per column.
SparseMatrixBasetranspose (SparseMatrixBase &AT) const
 Construct the transpose of this matrix and place it in the matrix given.

Detailed Description

template<class _Element, class _Row, class Trait>
class LinBox::SparseMatrixBase< _Element, _Row, Trait >

Sparse matrix container This class acts as a generic row-wise container for sparse matrices.

It is designed to provide various methods to access the entries of the matrix. In particular, it does not meet the black box archetype; see SparseMatrix for an appropriate sparse matrix black box.

Parameters:
ElementElement type
RowLinBox sparse vector type to use for rows of matrix

Constructor & Destructor Documentation

SparseMatrixBase ( size_t  m,
size_t  n 
) [inline]

Constructor.

Note: the copy constructor and operator= will work as intended because of STL's container design

Parameters:
mrow dimension
ncolumn dimension
~SparseMatrixBase ( ) [inline]

Destructor.


Member Function Documentation

size_t rowdim ( ) const [inline]

Retreive row dimension of the matrix.

Returns:
integer number of rows of SparseMatrixBase matrix.

Reimplemented in SparseMatrix< _Field, _Row >.

size_t coldim ( ) const [inline]

Retreive column dimension of matrix.

Returns:
integer number of columns of SparseMatrixBase matrix.

Reimplemented in SparseMatrix< _Field, _Row >.

size_t size ( ) const [inline]

Retreive number of elements in the matrix.

Returns:
integer number of elements of SparseMatrixBase matrix.
std::istream& read ( std::istream &  is,
const Field &  F,
FileFormatTag  format = FORMAT_DETECT 
)

Read a matrix from the given input stream using field read/write.

Parameters:
isInput stream from which to read the matrix
FField with which to read
formatFormat of input matrix
std::istream& read ( std::istream &  is,
FileFormatTag  format = FORMAT_DETECT 
)

Read a matrix from the given input stream using standard operators.

Parameters:
isInput stream from which to read the matrix
formatFormat of input matrix

Reimplemented in SparseMatrix< _Field, _Row >.

std::ostream& write ( std::ostream &  os,
const Field &  F,
FileFormatTag  format = FORMAT_PRETTY 
) const

Write a matrix to the given output stream using field read/write.

Parameters:
osOutput stream to which to write the matrix
FField with which to write
formatFormat with which to write
std::ostream& write ( std::ostream &  os,
FileFormatTag  format = FORMAT_PRETTY 
) const

Write a matrix to the given output stream using standard operators.

Parameters:
osOutput stream to which to write the matrix
formatFormat with which to write

Reimplemented in SparseMatrix< _Field, _Row >.

void setEntry ( size_t  i,
size_t  j,
const Element &  value 
)

Set an individual entry Setting the entry to 0 will remove it from the matrix.

Parameters:
iRow index of entry
jColumn index of entry
valueValue of the new entry
Element & refEntry ( size_t  i,
size_t  j 
)

Get a writeable reference to an entry in the matrix If there is no entry at the position (i, j), then a new entry with a value of zero is inserted and a reference to it is returned.

Parameters:
iRow index of entry
jColumn index of entry
Returns:
Reference to matrix entry
const Element & getEntry ( size_t  i,
size_t  j 
) const

Get a read-only individual entry from the matrix.

Parameters:
iRow index
jColumn index
Returns:
Const reference to matrix entry
Element& getEntry ( Element &  x,
size_t  i,
size_t  j 
) const

Get an entry and store it in the given value This form is more in the Linbox style and is provided for interface compatibility with other parts of the library.

Parameters:
xElement in which to store result
iRow index
jColumn index
Returns:
Reference to x
Row& getRow ( size_t  i)

Retrieve a row as a writeable reference.

Parameters:
iRow index
Row& operator[] ( size_t  i)

Retrieve a row as a writeable reference.

Parameters:
iRow index
ConstRow& operator[] ( size_t  i) const

Retrieve a row as a read-only reference.

Parameters:
iRow index
Vector & columnDensity ( Vector &  v) const

Compute the column density, i.e the number of entries per column.

Parameters:
vVector in which to store column density
SparseMatrixBase< Element, Row, VectorCategories::SparseParallelVectorTag > & transpose ( SparseMatrixBase< _Element, _Row, Trait > &  AT) const

Construct the transpose of this matrix and place it in the matrix given.

Parameters:
AT

The documentation for this class was generated from the following files: