linbox
|
Dense Submatrix representation. More...
#include <blas-matrix.h>
Data Structures | |
class | ConstIndexedIterator |
Raw Indexed Iterator (const version). More... | |
class | ConstIterator |
Raw Iterators (const version). More... | |
class | IndexedIterator |
Raw Indexed Iterator. More... | |
class | Iterator |
Raw Iterators. More... | |
Public Types | |
typedef Field::Element | Element |
Element type. | |
typedef BlasSubmatrix< _Matrix > | Self_t |
Self type. | |
typedef Rep::pointer | pointer |
pointer type to elements | |
typedef Self_t | subMatrixType |
Submatrix type. | |
typedef constSelf_t | constSubMatrixType |
Submatrix type (const) | |
typedef _Matrix::Self_t | matrixType |
non const matrix type | |
typedef _Matrix::constSelf_t | constMatrixType |
matrix type (const) | |
typedef matrixType | blasType |
blas matrix type | |
typedef BlasVector< Field, Rep > | vectorType |
blas matrix type | |
typedef'd Row Iterators. | |
The row iterator gives the rows of the matrix in ascending order. Dereferencing the iterator yields a row vector in dense format | |
typedef matrixType::RowIterator | RowIterator |
typedef matrixType::ConstRowIterator | ConstRowIterator |
typedef matrixType::Row | Row |
typedef matrixType::ConstRow | ConstRow |
Public Member Functions | |
BlasSubmatrix (constMatrixType &M, size_t rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim) | |
Constructor from an existing BlasMatrix and dimensions. More... | |
BlasSubmatrix (constMatrixType &M) | |
Constructor from an existing BlasMatrix. More... | |
BlasSubmatrix (constSelf_t &SM, size_t rowbeg, size_t colbeg, size_t Rowdim, size_t Coldim) | |
Constructor from an existing submatrix and dimensions. More... | |
BlasSubmatrix (constSelf_t &SM) | |
Copy constructor. More... | |
BlasSubmatrix & | operator= (const BlasSubmatrix< _Matrix > &SM) |
Assignment operator. More... | |
template<class Matrix > | |
BlasSubmatrix & | copy (const Matrix &B) |
This is deep copy of the data, operator= is a shallow copy. | |
BlasSubmatrix & | swap (Self_t &B) |
Swap contents. Shapes must be the same. | |
BlasSubmatrix & | zero () |
Overwrite with zeroes. | |
void | random () |
Overwrite with random elements. | |
size_t | rowdim () const |
Get the number of rows in the matrix. More... | |
size_t | coldim () const |
Get the number of columns in the matrix. More... | |
size_t | getStride () const |
Get the stride of the matrix. More... | |
std::istream & | read (std::istream &file) |
Read the matrix from an input stream. More... | |
std::ostream & | write (std::ostream &os, Tag::FileFormat f=Tag::FileFormat::MatrixMarket) const |
Write the matrix to an output stream. More... | |
pointer | getPointer () |
| |
pointer | getWritePointer () |
| |
const Element & | setEntry (size_t i, size_t j, const Element &a_ij) |
Set the entry at (i, j). More... | |
Element & | refEntry (size_t i, size_t j) |
Get a writeable reference to an entry in the matrix. 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. More... | |
Data Fields | |
const typedef BlasSubmatrix< typename _Matrix::constSelf_t > | constSelf_t |
Self type (const) | |
const typedef pointer | const_pointer |
const pointer type | |
Protected Attributes | |
_Matrix & | _Mat |
Parent BlasMatrix (ie encapsulated raw std::vector) | |
size_t | _row |
row dimension of Submatrix | |
size_t | _col |
col dimension of Submatrix | |
size_t | _r0 |
upper left corner row of Submatrix in _Mat | |
size_t | _c0 |
upper left corner row of Submatrix in _Mat | |
size_t | _stride |
number of columns in _Mat (or stride of _Mat ) | |
size_t | _off |
offset in _Mat , precomputed (_row*_stride+_col) | |
typedef'd Column Iterators. | |
The columns iterator gives the columns of the matrix in ascending order. Dereferencing the iterator yields a column vector in dense format | |
typedef matrixType::ColIterator | ColIterator |
iterator to the begining of a row | |
typedef matrixType::ConstColIterator | ConstColIterator |
iterator to the begining of a row | |
typedef matrixType::Col | Col |
iterator to the begining of a row | |
typedef matrixType::Column | Column |
iterator to the begining of a row | |
typedef matrixType::ConstCol | ConstCol |
iterator to the begining of a row | |
RowIterator | rowBegin () |
iterator to the begining of a row | |
RowIterator | rowEnd () |
iterator to the end of a row | |
ConstRowIterator | rowBegin () const |
const iterator to the begining of a row | |
ConstRowIterator | rowEnd () const |
const iterator to the end of a row | |
ColIterator | colBegin () |
iterator to the begining of a row | |
ColIterator | colEnd () |
iterator to the begining of a row | |
ConstColIterator | colBegin () const |
iterator to the begining of a row | |
ConstColIterator | colEnd () const |
iterator to the begining of a row | |
Iterator | Begin () |
iterator to the begining of a row | |
Iterator | End () |
iterator to the begining of a row | |
ConstIterator | Begin () const |
iterator to the begining of a row | |
ConstIterator | End () const |
iterator to the begining of a row | |
IndexedIterator | IndexedBegin () |
iterator to the begining of a row | |
IndexedIterator | IndexedEnd () |
iterator to the begining of a row | |
ConstIndexedIterator | IndexedBegin () const |
iterator to the begining of a row | |
ConstIndexedIterator | IndexedEnd () const |
iterator to the begining of a row | |
Row | operator[] (size_t i) |
operator[]. More... | |
ConstRow | operator[] (size_t i) const |
iterator to the begining of a row | |
template<class Vector1 , class Vector2 > | |
Vector1 & | apply (Vector1 &y, const Vector2 &x) const |
template<class Vector1 , class Vector2 > | |
Vector1 & | applyTranspose (Vector1 &y, const Vector2 &x) const |
const Field & | field () const |
iterator to the begining of a row | |
Dense Submatrix representation.
A BlasSubmatrix is a matrix of _Field::Element
, with the structure of BLAS matrices. It is basically a read/write view on a vector of _Field::Element
. In the Mother model, a BlasSubmatrix is not allocated.
This matrix type conforms to the same interface as BlasMatrix, except that you cannot resize it. It represents a submatrix of a dense matrix. Upon construction, one can freely manipulate the entries in the DenseSubmatrix, and the corresponding entries in the underlying BlasMatrix will be modified.
BlasSubmatrix | ( | constMatrixType & | M, |
size_t | rowbeg, | ||
size_t | colbeg, | ||
size_t | Rowdim, | ||
size_t | Coldim | ||
) |
Constructor from an existing BlasMatrix and dimensions.
M | Pointer to BlasMatrix of which to construct submatrix |
rowbeg | Starting row |
colbeg | Starting column |
Rowdim | Row dimension |
Coldim | Column dimension |
BlasSubmatrix | ( | constMatrixType & | M | ) |
Constructor from an existing BlasMatrix.
M | Pointer to BlasMatrix of which to construct submatrix |
BlasSubmatrix | ( | constSelf_t & | SM, |
size_t | rowbeg, | ||
size_t | colbeg, | ||
size_t | Rowdim, | ||
size_t | Coldim | ||
) |
Constructor from an existing submatrix and dimensions.
SM | Constant reference to BlasSubmatrix from which to construct submatrix |
rowbeg | Starting row |
colbeg | Starting column |
Rowdim | Row dimension |
Coldim | Column dimension |
BlasSubmatrix | ( | constSelf_t & | SM | ) |
Copy constructor.
SM | Submatrix to copy |
BlasSubmatrix< _Matrix > & operator= | ( | const BlasSubmatrix< _Matrix > & | SM | ) |
Assignment operator.
Assign the given submatrix to this one This is only renaming ! There is no copy because BlasSubmatrix owns nothing.
SM | Submatrix to assign |
size_t rowdim |
Get the number of rows in the matrix.
size_t coldim |
Get the number of columns in the matrix.
size_t getStride |
Get the stride of the matrix.
std::istream & read | ( | std::istream & | file | ) |
Read the matrix from an input stream.
file | Input stream from which to read |
std::ostream & write | ( | std::ostream & | os, |
Tag::FileFormat | f = Tag::FileFormat::MatrixMarket |
||
) | const |
Write the matrix to an output stream.
os | Output stream to which to write |
f | write in some format (Tag::FileFormat::Format). Default is MM's. |
const LinBox::BlasSubmatrix< _Matrix >::Element & setEntry | ( | size_t | i, |
size_t | j, | ||
const Element & | a_ij | ||
) |
Set the entry at (i, j).
i | Row number, 0...rowdim () - 1 |
j | Column number 0...coldim () - 1 |
a_ij | Element to set |
LinBox::BlasSubmatrix< _Matrix >::Element & refEntry | ( | size_t | i, |
size_t | j | ||
) |
Get a writeable reference to an entry in the matrix.
i | Row index of entry |
j | Column index of entry |
const LinBox::BlasSubmatrix< _Matrix >::Element & getEntry | ( | size_t | i, |
size_t | j | ||
) | const |
Get a read-only individual entry from the matrix.
i | Row index |
j | Column index |
LinBox::BlasSubmatrix< _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
x | Element in which to store result |
i | Row index |
j | Column index |
BlasSubmatrix< _Matrix >::Row operator[] | ( | size_t | i | ) |
operator[].
Retrieve a reference to a row
i | Row index |
|
inline |
|
inline |