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 |