linbox
1
|
#include <dense.h>
Public Member Functions | |
DenseMatrixBase (size_t m, size_t n) | |
template<class Field > | |
DenseMatrixBase (MatrixStream< Field > &ms) | |
Element * | FullIterator () const |
size_t | rowdim () const |
size_t | coldim () const |
void | resize (size_t m, size_t n, const Element &val=Element()) |
template<class Field > | |
std::istream & | read (std::istream &file, const Field &F) |
template<class Field > | |
std::ostream & | write (std::ostream &os, const Field &F) const |
void | setEntry (size_t i, size_t j, const Element &a_ij) |
Element & | refEntry (size_t i, size_t j) |
const Element & | getEntry (size_t i, size_t j) const |
Element & | getEntry (Element &x, size_t i, size_t j) const |
Column of rows iterator | |
The column of rows iterator traverses the rows of the matrix in ascending order. Dereferencing the iterator yields a row vector in dense format | |
typedef Subvector< typename Rep::iterator, typename Rep::const_iterator > | Row |
typedef Subvector< typename Rep::const_iterator > | ConstRow |
RowIterator | rowBegin () |
RowIterator | rowEnd () |
ConstRowIterator | rowBegin () const |
ConstRowIterator | rowEnd () const |
Row of columns iterator | |
The row of columns iterator traverses the columns of the matrix in ascending order. Dereferencing the iterator yields a column vector in dense format | |
typedef Subvector< Subiterator < typename Rep::iterator > > | Col |
typedef Subvector< Subiterator < typename Rep::const_iterator > > | ConstCol |
typedef Col | Column |
typedef ConstCol | ConstColumn |
typedef Rep::iterator | RawIterator |
The raw iterator is a method for accessing all 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. | |
typedef Rep::const_iterator | ConstRawIterator |
std::vector< Element > | _rep |
size_t | _rows |
size_t | _cols |
Element * | _ptr |
ColIterator | colBegin () |
ColIterator | colEnd () |
ConstColIterator | colBegin () const |
ConstColIterator | colEnd () const |
RawIterator | rawBegin () |
RawIterator | rawEnd () |
ConstRawIterator | rawBegin () const |
ConstRawIterator | rawEnd () const |
RawIndexedIterator | rawIndexedBegin () |
RawIndexedIterator | rawIndexedEnd () |
ConstRawIndexedIterator | rawIndexedBegin () const |
ConstRawIndexedIterator | rawIndexedEnd () const |
Row | operator[] (size_t i) |
ConstRow | operator[] (size_t i) const |
template<class Vector > | |
Vector & | columnDensity (Vector &v) const |
Blackbox dense matrix template. This is a class of dense matrices templatized by the entry type, the Element type of some field. The matrix is stored as a one dimensional STL vector of the elements, by rows. The interface provides for iteration over rows and over columns.
The class LinBox::Dense builds on this base.
Currently, only dense vectors are supported when doing matrix-vector applies.
DenseMatrixBase | ( | size_t | m, |
size_t | n | ||
) | [inline] |
Constructor.
m | row dimension |
n | column dimension |
DenseMatrixBase | ( | MatrixStream< Field > & | ms | ) |
Constructor from a matrix stream
Element* FullIterator | ( | ) | const [inline] |
Get a pointer on the storage of the elements
size_t rowdim | ( | ) | const [inline] |
Get the number of rows in the matrix
Reimplemented in DenseMatrix< _Field >, DenseMatrix< Field >, and DenseMatrix< Domain >.
size_t coldim | ( | ) | const [inline] |
Get the number of columns in the matrix
Reimplemented in DenseMatrix< _Field >, DenseMatrix< Field >, and DenseMatrix< Domain >.
void resize | ( | size_t | m, |
size_t | n, | ||
const Element & | val = Element() |
||
) | [inline] |
Resize the matrix to the given dimensions The state of the matrix's entries after a call to this method is undefined
m | Number of rows |
n | Number of columns |
Read the matrix from an input stream
file | Input stream from which to read |
F | Field over which to read |
Write the matrix to an output stream
os | Output stream to which to write |
F | Field over which to write |
void setEntry | ( | size_t | i, |
size_t | j, | ||
const Element & | a_ij | ||
) | [inline] |
Set the entry at the (i, j) position to a_ij.
i | Row number, 0...rowdim () - 1 |
j | Column number 0...coldim () - 1 |
a_ij | Element to set |
Element& refEntry | ( | size_t | i, |
size_t | j | ||
) | [inline] |
Get a writeable reference to the entry in the (i, j) position.
i | Row index of entry |
j | Column index of entry |
const Element& getEntry | ( | size_t | i, |
size_t | j | ||
) | const [inline] |
Get a read-only reference to the entry in the (i, j) position.
i | Row index |
j | Column index |
Element& getEntry | ( | Element & | x, |
size_t | i, | ||
size_t | j | ||
) | const [inline] |
Copy the (i, j) entry into x, and return a reference to x. This form is more in the Linbox style and is provided for interface compatibility with other parts of the library
x | Element in which to store result |
i | Row index |
j | Column index |
Row operator[] | ( | size_t | i | ) | [inline] |
Retrieve a reference to a row. Since rows may also be indexed, this allows A[i][j] notation to be used.
i | Row index |
Vector& columnDensity | ( | Vector & | v | ) | const [inline] |
Compute column density