Public Member Functions | |
DiagonalMatrix (int size_in) | |
DiagonalMatrix (Precision *data) | |
DiagonalMatrix (Precision *data, int size_in) | |
DiagonalMatrix (Precision *data_in, int size_in, int stride_in, Internal::Slicing) | |
template<class Op> | |
DiagonalMatrix (const Operator< Op > &op) | |
template<int Size2, typename Precision2, typename Base2> | |
DiagonalMatrix (const Vector< Size2, Precision2, Base2 > &from) | |
Precision & | operator[] (int i) |
const Precision & | operator[] (int i) const |
Vector< Size, Precision, Base > ::as_slice_type | diagonal_slice () |
Public Attributes | |
Vector< Size, Precision, Base > | my_vector |
Support is limited but diagonal matrices can be multiplied by vectors, matrices or diagonal matrices on either side.
Diagonal matrices can be created from vectors by using the as_diagonal()
member function:
Vector<3> v = makeVector(1,2,3);
Vector<3> v2 = v.as_diagonal() * v; // v2 = (1,4,9)
A vector can be obtained from the diagonal matrix by using the diagonal_slice()
member function.