TooN 2.1
Public Member Functions
DiagonalMatrix< Size, Precision, Base > Class Template Reference

A diagonal matrix. More...

#include <diagmatrix.h>

Inheritance diagram for DiagonalMatrix< Size, Precision, Base >:
Operator< Internal::DiagMatrixOp< Size, Precision, Base > >

List of all members.

Public Member Functions

Precision & operator[] (int i)
const Precision & operator[] (int i) const
Vector< Size, Precision, Base >
::as_slice_type 
diagonal_slice ()
const Vector< Size, Precision,
Base >::as_slice_type 
diagonal_slice () const
DiagonalMatrix< Size, Precision > operator- () const
Constructors
 DiagonalMatrix ()
 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)

Detailed Description

template<int Size = Dynamic, typename Precision = DefaultPrecision, typename Base = Internal::VBase>
class TooN::DiagonalMatrix< Size, Precision, Base >

A diagonal matrix.

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.