Dune::FieldMatrix< K, n, m > Class Template Reference
[Dense Matrix and Vector Template Library]

#include <fmatrix.hh>

List of all members.


Detailed Description

template<class K, int n, int m>
class Dune::FieldMatrix< K, n, m >

A dense n x m matrix.

Matrices represent linear maps from a vector space V to a vector space W. This class represents such a linear map by storing a two-dimensional array of numbers of a given field type K. The number of rows and columns is given at compile time.

Implementation of all members uses template meta programs where appropriate


Public Types

enum  { blocklevel = 1 }
 We are at the leaf of the block recursion. More...
enum  { rows = n, cols = m }
 export size More...
typedef K field_type
 export the type representing the field
typedef K block_type
 export the type representing the components
typedef std::size_t size_type
 The type used for the index access and size operations.
typedef FieldVector< K, m > row_type
 Each row is implemented by a field vector.
typedef FieldIterator< FieldMatrix<
K, n, m >, row_type
Iterator
 Iterator class for sequential access.
typedef Iterator iterator
 typedef for stl compliant access
typedef Iterator RowIterator
 rename the iterators for easier access
typedef row_type::Iterator ColIterator
 rename the iterators for easier access
typedef FieldIterator< const
FieldMatrix< K, n, m >, const
row_type
ConstIterator
 Iterator class for sequential access.
typedef ConstIterator const_iterator
 typedef for stl compliant access
typedef ConstIterator ConstRowIterator
 rename the iterators for easier access
typedef row_type::ConstIterator ConstColIterator
 rename the iterators for easier access

Public Member Functions

 FieldMatrix ()
 Default constructor.
 FieldMatrix (const K &k)
 Constructor initializing the whole matrix with a scalar.
row_typeoperator[] (size_type i)
 random access to the rows
const row_typeoperator[] (size_type i) const
 same for read only access
Iterator begin ()
 begin iterator
Iterator end ()
 end iterator
Iterator rbegin ()
 begin iterator
Iterator rend ()
 end iterator
ConstIterator begin () const
 begin iterator
ConstIterator end () const
 end iterator
ConstIterator rbegin () const
 begin iterator
ConstIterator rend () const
 end iterator
FieldMatrixoperator+= (const FieldMatrix &y)
 vector space addition
FieldMatrixoperator-= (const FieldMatrix &y)
 vector space subtraction
FieldMatrixoperator *= (const K &k)
 vector space multiplication with scalar
FieldMatrixoperator/= (const K &k)
 vector space division by scalar
template<class X, class Y>
void umv (const X &x, Y &y) const
 y += A x
template<class X, class Y>
void umtv (const X &x, Y &y) const
 y += A^T x
template<class X, class Y>
void umhv (const X &x, Y &y) const
 y += A^H x
template<class X, class Y>
void mmv (const X &x, Y &y) const
 y -= A x
template<class X, class Y>
void mmtv (const X &x, Y &y) const
 y -= A^T x
template<class X, class Y>
void mmhv (const X &x, Y &y) const
 y -= A^H x
template<class X, class Y>
void usmv (const K &alpha, const X &x, Y &y) const
 y += alpha A x
template<class X, class Y>
void usmtv (const K &alpha, const X &x, Y &y) const
 y += alpha A^T x
template<class X, class Y>
void usmhv (const K &alpha, const X &x, Y &y) const
 y += alpha A^H x
double frobenius_norm () const
 frobenius norm: sqrt(sum over squared values of entries)
double frobenius_norm2 () const
 square of frobenius norm, need for block recursion
double infinity_norm () const
 infinity norm (row sum norm, how to generalize for blocks?)
double infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
template<class V>
void solve (V &x, const V &b) const
 Solve system A x = b.
void invert ()
 Compute inverse.
determinant () const
 calculates the determinant of this matrix
FieldMatrixleftmultiply (const FieldMatrix< K, n, n > &M)
 Multiplies M from the left to this matrix.
FieldMatrixrightmultiply (const FieldMatrix< K, m, m > &M)
 Multiplies M from the right to this matrix.
size_type N () const
 number of blocks in row direction
size_type M () const
 number of blocks in column direction
size_type rowdim (size_type r) const
 row dimension of block r
size_type coldim (size_type c) const
 col dimension of block c
size_type rowdim () const
 dimension of the destination vector space
size_type coldim () const
 dimension of the source vector space
bool exists (size_type i, size_type j) const
 return true when (i,j) is in pattern

Friends

std::ostream & operator<< (std::ostream &s, const FieldMatrix< K, n, m > &a)
 Sends the matrix to an output stream.

Member Enumeration Documentation

template<class K, int n, int m>
anonymous enum

We are at the leaf of the block recursion.

Enumerator:
blocklevel  The number of block levels we contain. This is 1.

template<class K, int n, int m>
anonymous enum

export size

Enumerator:
rows  The number of rows.
cols  The number of columns.


The documentation for this class was generated from the following file:

Generated on 12 Dec 2007 with Doxygen (ver 1.5.1)