|
linbox
|
Dense matrix representation. More...
#include <matrix-domain.h>
Inheritance diagram for BlasMatrix< _Field, _Storage >:
Collaboration diagram for BlasMatrix< _Field, _Storage >:Data Structures | |
| class | IndexedIterator |
| Indexed Iterator. More... | |
| struct | rebind |
| Rebind operator. More... | |
Public Types | |
| typedef Field::Element | Element |
| Element type. | |
| typedef _Storage | Rep |
Actually a std::vector<Element> (or alike: cstor(n), cstor(n, val), operator[], resize(n).) | |
| typedef Rep::pointer | pointer |
| pointer type to elements | |
| typedef BlasMatrix< Field, Rep > | Self_t |
| Self typeype. | |
| typedef BlasSubmatrix< Self_t > | subMatrixType |
| Submatrix type. | |
| typedef BlasSubmatrix< constSelf_t > | constSubMatrixType |
| Submatrix type. | |
| typedef Self_t | matrixType |
| matrix type | |
| typedef constSelf_t | constMatrixType |
| matrix type | |
| typedef Self_t | blasType |
| blas matrix type | |
Public Member Functions | |
| BlasMatrix (const _Field &F) | |
Allocates a new matrix (shaped and ready). | |
| BlasMatrix (const _Field &F, const size_t &m, const size_t &n) | |
Allocates a new bare matrix (unshaped, unready). More... | |
| BlasMatrix (MatrixStream< _Field > &ms) | |
| Constructor from a matrix stream. More... | |
| template<class Matrix > | |
| BlasMatrix (const Matrix &A) | |
| Generic copy constructor from either a blackbox or a matrix container. More... | |
| template<class Matrix > | |
| BlasMatrix (const Matrix &A, const size_t &i0, const size_t &j0, const size_t &m, const size_t &n) | |
| Generic copy constructor from either a blackbox or a matrix container (allow submatrix). More... | |
| template<class _Matrix > | |
| BlasMatrix (const _Matrix &A, const _Field &F) | |
| Constructor. More... | |
| BlasMatrix (const Self_t &A) | |
| Copy Constructor of a matrix (copying data). More... | |
| BlasMatrix (const _Field &F, const std::vector< Element > &v, const size_t &m, const size_t &n) | |
| Create a BlasMatrix from a vector of elements. More... | |
| BlasMatrix (const _Field &F, const Element *v, const size_t &m, const size_t &n) | |
| Create a BlasMatrix from an array of elements. More... | |
| template<class StreamVector > | |
| BlasMatrix (const Field &F, VectorStream< StreamVector > &stream) | |
| Constructor using a finite vector stream (stream of the rows). More... | |
| ~BlasMatrix () | |
| Destructor. | |
| Self_t & | operator= (const Self_t &A) |
| operator = (copying data) | |
| template<class Matrix > | |
| BlasMatrix & | copy (const Matrix &B) |
| Make this a (deep)copy of B. More... | |
| 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. | |
| size_t & | getWriteStride () |
| Get a reference to the stride of the matrix. More... | |
| void | resize (const size_t &m, const size_t &n, const Element &val=Element()) |
| Resize the matrix to the given dimensions. More... | |
| pointer | getPointer () |
| | |
| pointer & | getWritePointer () |
| | |
| const Element & | setEntry (size_t i, size_t j, const Element &a_ij) |
| Set the entry at the (i, j) position to a_ij. More... | |
| Element & | refEntry (size_t i, size_t j) |
| Get a writeable reference to the entry in the (i, j) position. More... | |
| const Element & | getEntry (size_t i, size_t j) const |
| Get a read-only reference to the entry in the (i, j) position. More... | |
| Element & | getEntry (Element &x, size_t i, size_t j) const |
| Copy the (i, j) entry into x, and return a reference to x. More... | |
| Self_t | transpose (Self_t &tM) const |
Creates a transposed matrix of *this. More... | |
| template<bool _IP> | |
| void | transpose () |
| Transpose (inplace). More... | |
| void | reverseRows () |
| Reverse the rows of a matrix. More... | |
| void | reverseCols () |
| Reverse the columns of a matrix. More... | |
| void | reverse () |
| Reverse the rows/columns of a matrix. More... | |
| std::istream & | read (std::istream &file) |
| Read the matrix from an input stream. More... | |
| std::ostream & | write (std::ostream &os) const |
| Write the matrix in MatrixMarket format. | |
| std::ostream & | write (std::ostream &os, Tag::FileFormat f) const |
| Write the matrix to an output stream. More... | |
| std::ostream & | write (std::ostream &os, bool mapleFormat) const |
| void | random (const size_t &b) |
Data Fields | |
| const typedef pointer | const_pointer |
| const pointer type | |
| const typedef BlasMatrix< Field, Rep > | constSelf_t |
| Self typeype. | |
| pointer | _ptr |
| MatrixDomain< Field > | _MD |
| VectorDomain< Field > | _VD |
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 |
| ColIterator | colBegin () |
| ColIterator | colEnd () |
| ConstColIterator | colBegin () const |
| ConstColIterator | colEnd () const |
Dense matrix representation.
A BlasMatrix is a matrix of _Field::Element, with the structure of BLAS matrices. It is basically a vector of _Field::Element. In the Mother model, a BlasMatrix is allocated by the user.
| BlasMatrix | ( | const _Field & | F, |
| const size_t & | m, | ||
| const size_t & | n | ||
| ) |
Allocates a new bare
matrix (unshaped, unready).
/ BlasMatrix () ;
/ (Re)allocates a new
zero matrix (shaped and ready). void init(const _Field & F, const size_t & r = 0, const size_t & c = 0);
/*! Allocates a new
zero matrix (shaped and ready).
| F | |
| m | rows |
| n | cols |
| BlasMatrix | ( | MatrixStream< _Field > & | ms | ) |
Constructor from a matrix stream.
| ms | matrix stream. |
| BlasMatrix | ( | const Matrix & | A | ) |
Generic copy constructor from either a blackbox or a matrix container.
| A | matrix to be copied |
| BlasMatrix | ( | const Matrix & | A, |
| const size_t & | i0, | ||
| const size_t & | j0, | ||
| const size_t & | m, | ||
| const size_t & | n | ||
| ) |
Generic copy constructor from either a blackbox or a matrix container (allow submatrix).
| A | matrix to be copied |
| i0 | |
| j0 | |
| m | rows |
| n | columns |
| BlasMatrix | ( | const _Matrix & | A, |
| const _Field & | F | ||
| ) |
Constructor.
| A | matrix to be copied |
| F | Field |
| BlasMatrix | ( | const Self_t & | A | ) |
Copy Constructor of a matrix (copying data).
| A | matrix to be copied. |
| BlasMatrix | ( | const _Field & | F, |
| const std::vector< Element > & | v, | ||
| const size_t & | m, | ||
| const size_t & | n | ||
| ) |
Create a BlasMatrix from a vector of elements.
| F | |
| v | |
| m | |
| n |
| BlasMatrix | ( | const _Field & | F, |
| const Element * | v, | ||
| const size_t & | m, | ||
| const size_t & | n | ||
| ) |
Create a BlasMatrix from an array of elements.
| F | |
| v | |
| m | |
| n |
| BlasMatrix | ( | const Field & | F, |
| VectorStream< StreamVector > & | stream | ||
| ) |
Constructor using a finite vector stream (stream of the rows).
| F | The field of entries; passed so that arithmetic may be done on elements |
| stream | A vector stream to use as a source of vectors for this matrix |
|
inline |
Make this a (deep)copy of B.
Assumes same shape. make sure we actually copy
| size_t rowdim |
Get the number of rows in the matrix.
| size_t coldim |
Get the number of columns in the matrix.
| size_t & getWriteStride |
Get a reference to the stride of the matrix.
Modify stride this way.
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 |
| val |
| const _Field::Element & setEntry | ( | size_t | i, |
| size_t | j, | ||
| const Element & | a_ij | ||
| ) |
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 |
| _Field::Element & refEntry | ( | size_t | i, |
| size_t | j | ||
| ) |
Get a writeable reference to the entry in the (i, j) position.
| i | Row index of entry |
| j | Column index of entry |
| const _Field::Element & getEntry | ( | size_t | i, |
| size_t | j | ||
| ) | const |
Get a read-only reference to the entry in the (i, j) position.
| i | Row index |
| j | Column index |
| _Field::Element & getEntry | ( | Element & | x, |
| size_t | i, | ||
| size_t | j | ||
| ) | const |
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 |
Creates a transposed matrix of *this.
| [in] | tM |
| void transpose |
Transpose (inplace).
If rows and columns agree, we can transpose inplace.
| void reverseRows |
Reverse the rows of a matrix.
This is done inplace. Let J=antiDiag(1) (or the matrix of the reverse permutation or the matrix (i,j) = (i+j+1==m)). Then, we compute A <- J.A;
| void reverseCols |
Reverse the columns of a matrix.
This is done inplace. This is A <- J.A
| void reverse |
Reverse the rows/columns of a matrix.
This is done inplace. This is A <- J.A.J
| std::istream & read | ( | std::istream & | file | ) |
Read the matrix from an input stream.
The stream is in SMS, DENSE, or MatrixMarket format and is autodetected.
| file | Input stream from which to read |
|
inline |
Write the matrix to an output stream.
| os | Output stream to which to write |
| f | write in some format (Tag::FileFormat::Format). Default is Maple's. |
|
inline |
| BlasMatrix< _Field, _Rep >::ConstIndexedIterator IndexedBegin |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| BlasMatrix< _Field, _Rep >::ConstIndexedIterator IndexedEnd |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| ConstIndexedIterator IndexedBegin | ( | ) | const |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| ConstIndexedIterator IndexedEnd | ( | ) | const |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| BlasMatrix< _Field, _Rep >::Row operator[] | ( | size_t | i | ) |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| BlasMatrix< _Field, _Rep >::ConstRow operator[] | ( | size_t | i | ) | const |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
|
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 |
|
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 |
| Vector1 & apply | ( | Vector1 & | y, |
| const Vector2 & | x | ||
| ) | const |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| BlasVector<Field,_VRep>& apply | ( | BlasVector< Field, _VRep > & | y, |
| const BlasVector< Field, _VRep > & | x | ||
| ) | const |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
| Vector1 & applyTranspose | ( | Vector1 & | y, |
| const Vector2 & | x | ||
| ) | const |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
|
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 |
|
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 |
| const _Field & field |
Retrieve a reference to a row.
Since rows may also be indexed, this allows A[i][j] notation to be used.
| i | Row index |
|
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 |
|
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 |
|
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 |
| void random< size_t > | ( | const size_t & | b | ) |
| MatrixDomain<Field> _MD |
| VectorDomain<Field> _VD |
1.8.17