|
| size_t | rowdim () const |
| |
| size_t | coldim () const |
| |
| Entry & | getEntry (Entry &x, size_t i, size_t j) const |
| |
| Entry & | setEntry (size_t i, size_t j, const Entry &x) |
| |
| | DenseMat () |
| |
| void | init (size_t m=0, size_t n=0) |
| |
| void | init (size_t m, size_t n, const Entry &filler) |
| |
| | DenseMat (const DenseMat &A) |
| |
| | ~DenseMat () |
| |
| DenseMat & | operator= (const DenseMat &B) |
| |
| void | submatrix (const DenseMat &A, size_t i, size_t j, size_t m, size_t n) |
| | Set this to be an m by n submatrix of A with upper left corner at i,j position of A.
|
| |
| void | size (size_t m, size_t n) |
| |
| template<class vp> |
| int | did_swapback (vp &swaps, size_t hot, size_t l, size_t r) |
| |
| template<class vp> |
| void | flocs (vp &tos, vp &swaps) |
| |
| template<class vp> |
| size_t | final_loc (vp &swaps, size_t j) |
| |
| void | randomColPermutation () |
| |
| void | randomLowerTriangularColTransform () |
| |
| RawIterator | rawBegin () |
| |
| RawIterator | rawEnd () |
| |
| RawIterator | rowBegin (size_t i) |
| |
| RawIterator | rowEnd (size_t i) |
| |
| ConstRawIterator | rawBegin () const |
| |
| ConstRawIterator | rawEnd () const |
| |
| ConstRawIterator | rowBegin (size_t i) const |
| |
| ConstRawIterator | rowEnd (size_t i) const |
| |
| template<class Field> |
| std::istream & | read (std::istream &file, const Field &field) |
| | Read the matrix from an input stream.
|
| |
| template<class Field> |
| std::ostream & | write (std::ostream &os, const Field &field, bool mapleFormat=false) const |
| | Write the matrix to an output stream.
|
| |
| std::ostream & | write (std::ostream &os, bool mapleFormat=false) const |
| | Write the matrix to an output stream.
|
| |
template<class _Element>
class LinBox::DenseMat< _Element >
to be used in standard matrix domain
Matrix variable declaration, sizing, entry initialization may involve one to 3 steps. Matrix ops are container ops. (sizing, copying)
Mathematically meaningful operations are to be found only in an associated matrix domain
A matrix may be allocated or not. A matrix initialized by a submatrix() call is not allocated. When an allocated matrix goes out of scope or is reinitialized with init(), the memory is released and all submatrices of it become invalid.
Allocating: DenseMat A(2, 3); // allocation of mem for 6 entries at construction DenseMat B; B.init(10, 10); // default constr and subsequent allocation for 100 entries.
Allocation of memory plus entry initialization: // a meaningful value of DenseMat::Entry x is set by a field or matrix domain. DenseMat A(10, 10, x); DenseMat B: B.init(10, 10, x); DenseMat C(A); // allocation at copy construction. A could be a submatrix of another. A.read(istream)
Nonallocation sizing: // assume D declared, A initialized, n = A.coldim(). D.submatrix(A, 0, 1, 2, n-1); // D is 2 by n-1 in upper right of A.
Entry initialization (and overwriting) in already sized matrices: A.setEntry(i, j, x); A = B; // A and B must have the same shape.
Entry read access. OK on const matrices getEntry, write
Under consideration: Require A.clear() on an allocated matrix before any action that would abandon the allocated mem (init or submatrix).