Sparse matrix container This class acts as a generic row-wise container for sparse matrices.
More...
#include <sparse-generic.h>
Inherited by SparseMatrix< _Field, SparseMatrixFormat::SparseSeq >.
SparseMatrixGeneric (const Field &F, size_t m, size_t n)
Constructor. More...
SparseMatrixGeneric (MatrixStream < Field > &ms)
Constructor from a MatrixStream .
SparseMatrixGeneric (const SparseMatrixGeneric < Field, Row, Trait > &A)
Copy constructor.
template<class VectorType >
SparseMatrixGeneric (const SparseMatrixGeneric < Field, VectorType, Trait > &A)
Convert constructor.
~SparseMatrixGeneric ()
Destructor.
size_t rowdim () const
Retreive row dimension of the matrix. More...
size_t coldim () const
Retreive column dimension of matrix. More...
size_t size () const
Retreive number of elements in the matrix. More...
std::istream & read (std::istream &is, Tag::FileFormat format=Tag::FileFormat::Detect)
Read a matrix from the given input stream using field read/write. More...
std::ostream & write (std::ostream &os, Tag::FileFormat format=Tag::FileFormat::MatrixMarket) const
Write a matrix to the given output stream using field read/write. More...
const Element & 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. More...
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. More...
const Element & getEntry (size_t i, size_t j) const
Get a read-only individual entry from the matrix. More...
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. More...
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.
Iterator Begin ()
Begin.
Iterator End ()
End.
ConstIterator Begin () const
const Begin.
ConstIterator End () const
const End
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
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< Self_t >
IndexedBegin.
class SparseMatrixReadHelper< Self_t >
IndexedBegin.
Rep _matA
IndexedBegin.
size_t _m
IndexedBegin.
size_t _n
IndexedBegin.
const Field & _field
IndexedBegin.
MatrixDomain < Field > _MD
IndexedBegin.
TransposeMatrix < SparseMatrixGeneric < _Field, _Row > > _AT
IndexedBegin.
IndexedIterator IndexedBegin ()
IndexedBegin.
IndexedIterator IndexedEnd ()
IndexedEnd.
ConstIndexedIterator IndexedBegin () const
const IndexedBegin
ConstIndexedIterator IndexedEnd () const
const IndexedEnd
Row & getRow (size_t i)
Retrieve a row as a writeable reference. More...
Row & operator[] (size_t i)
Retrieve a row as a writeable reference. More...
ConstRow & operator[] (size_t i) const
Retrieve a row as a read-only reference. More...
template<class Vector >
Vector & columnDensity (Vector &v) const
Compute the column density, i.e the number of entries per column. More...
SparseMatrixGeneric & transpose (SparseMatrixGeneric &AT) const
Construct the transpose of this matrix and place it in the matrix given. More...
const Field & field () const
IndexedBegin.
template<class OutVector , class InVector >
OutVector & apply (OutVector &y, const InVector &x) const
Matrix-vector product . More...
template<class OutVector , class InVector >
OutVector & applyTranspose (OutVector &y, const InVector &x) const
Transpose matrix-vector product . More...
const Rep & getRep () const
IndexedBegin.
Rep & refRep ()
IndexedBegin.
void resize (const size_t &m, const size_t &n, const size_t &nnz=0)
IndexedBegin.
template<class _Field, class _Row, class Trait>
class LinBox::Protected::SparseMatrixGeneric< _Field, _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. It meets the blackbox archetype
Template Parameters
_Field Field type
_Row LinBox sparse vector type to use for rows of matrix
◆ SparseMatrixGeneric()
Constructor.
Note: the copy constructor and operator= will work as intended because of STL's container design
Parameters
m row dimension
n column dimension
◆ rowdim()
Retreive row dimension of the matrix.
Returns integer number of rows of SparseMatrixGeneric matrix.
◆ coldim()
Retreive column dimension of matrix.
Returns integer number of columns of SparseMatrixGeneric matrix.
◆ size()
Retreive number of elements in the matrix.
Returns integer number of elements of SparseMatrixGeneric matrix.
Bug: should it be elements or non zero elements ?
See also ELL
◆ read()
std::istream & read
(
std::istream &
is ,
Tag::FileFormat
format = Tag::FileFormat::Detect
)
Read a matrix from the given input stream using field read/write.
Parameters
is Input stream from which to read the matrix
format Format of input matrix
◆ write()
std::ostream & write
(
std::ostream &
os ,
Tag::FileFormat
format = Tag::FileFormat::MatrixMarket
)
const
Write a matrix to the given output stream using field read/write.
Parameters
os Output stream to which to write the matrix
F Field with which to write
format Format with which to write
◆ setEntry()
const Field::Element & 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
i Row index of entry
j Column index of entry
value Value of the new entry
◆ refEntry()
Field::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
i Row index of entry
j Column index of entry
Returns Reference to matrix entry
◆ getEntry() [1/2]
const Field::Element & getEntry
(
size_t
i ,
size_t
j
)
const
Get a read-only individual entry from the matrix.
Parameters
Returns Const reference to matrix entry
◆ getEntry() [2/2]
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
x Element in which to store result
i Row index
j Column index
Returns Reference to x
◆ getRow()
Retrieve a row as a writeable reference.
Parameters
◆ operator[]() [1/2]
Row & operator[]
(
size_t
i )
Retrieve a row as a writeable reference.
Parameters
◆ operator[]() [2/2]
ConstRow & operator[]
(
size_t
i )
const
Retrieve a row as a read-only reference.
Parameters
◆ columnDensity()
Compute the column density, i.e the number of entries per column.
Parameters
v Vector in which to store column density
◆ transpose()
Construct the transpose of this matrix and place it in the matrix given.
Parameters
◆ apply()
OutVector & apply
(
OutVector &
y ,
const InVector &
x
)
const
inline
Matrix-vector product .
Returns reference to output vector y
Parameters
◆ applyTranspose()
OutVector & applyTranspose
(
OutVector &
y ,
const InVector &
x
)
const
inline
Transpose matrix-vector product .
Returns reference to output vector y
Parameters
The documentation for this class was generated from the following files:
sparse-generic.h
sparse-associative-vector.inl
sparse-generic.inl
sparse-parallel-vector.inl
sparse-sequence-vector.inl