This is a class of blackbox square scalar matrices. Each scalar matrix occupies O(scalar-size) memory. The matrix itself is not stored in memory, just the scalar and the dimensions.
|
Public Types |
| typedef _Field | Field |
| typedef Field::Element | Element |
Public Methods |
| | ScalarMatrix () |
| | Constructs an initially 0 by 0 matrix.
|
| | ScalarMatrix (const Field &F, const size_t n, const Element &s) |
| | ScalarMatrix (const Field &F, const size_t n, const typename Field::RandIter &iter) |
| | ScalarMatrix (const ScalarMatrix< Field > &M) |
| template<class OutVector, class InVector> OutVector & | apply (OutVector &y, const InVector &x) const |
| template<class OutVector, class InVector> OutVector & | applyTranspose (OutVector &y, const InVector &x) const |
| size_t | rowdim (void) const |
| size_t | coldim (void) const |
| const Field & | field () const |
| Element & | trace (Element &t) const |
Protected Methods |
| template<class OutVector, class InVector> OutVector & | _app (OutVector &y, const InVector &x, VectorCategories::DenseVectorTag) const |
| template<class OutVector, class InVector> OutVector & | _app (OutVector &y, const InVector &x, VectorCategories::SparseSequenceVectorTag) const |
| template<class OutVector, class InVector> OutVector & | _app (OutVector &y, const InVector &x, VectorCategories::SparseAssociativeVectorTag) const |
Protected Attributes |
| Field | _F |
| size_t | _n |
| Element | _v |