Dune Core Modules (2.6.0)

A dense n x m matrix. More...

#include <dune/common/densematrix.hh>

Public Types

enum  { blocklevel = 1 }
 We are at the leaf of the block recursion. More...
 
typedef Traits::derived_type derived_type
 type of derived matrix class
 
typedef Traits::value_type value_type
 export the type representing the field
 
typedef Traits::value_type field_type
 export the type representing the field
 
typedef Traits::value_type block_type
 export the type representing the components
 
typedef Traits::size_type size_type
 The type used for the index access and size operation.
 
typedef Traits::row_type row_type
 The type used to represent a row (must fulfill the Dune::DenseVector interface)
 
typedef Traits::row_reference row_reference
 The type used to represent a reference to a row (usually row_type &)
 
typedef Traits::const_row_reference const_row_reference
 The type used to represent a reference to a constant row (usually const row_type &)
 
typedef DenseIterator< DenseMatrix, row_type, row_referenceIterator
 Iterator class for sequential access.
 
typedef Iterator iterator
 typedef for stl compliant access
 
typedef Iterator RowIterator
 rename the iterators for easier access
 
typedef std::remove_reference< row_reference >::type::Iterator ColIterator
 rename the iterators for easier access
 
typedef DenseIterator< const DenseMatrix, const row_type, const_row_referenceConstIterator
 Iterator class for sequential access.
 
typedef ConstIterator const_iterator
 typedef for stl compliant access
 
typedef ConstIterator ConstRowIterator
 rename the iterators for easier access
 
typedef std::remove_reference< const_row_reference >::type::ConstIterator ConstColIterator
 rename the iterators for easier access
 

Public Member Functions

row_reference operator[] (size_type i)
 random access
 
size_type size () const
 size method (number of rows)
 
Iterator begin ()
 begin iterator
 
Iterator end ()
 end iterator
 
Iterator beforeEnd ()
 
Iterator beforeBegin ()
 
ConstIterator begin () const
 begin iterator
 
ConstIterator end () const
 end iterator
 
ConstIterator beforeEnd () const
 
ConstIterator beforeBegin () const
 
template<class Other >
derived_typeoperator+= (const DenseMatrix< Other > &y)
 vector space addition
 
template<class Other >
derived_typeoperator-= (const DenseMatrix< Other > &y)
 vector space subtraction
 
derived_typeoperator*= (const field_type &k)
 vector space multiplication with scalar
 
derived_typeoperator/= (const field_type &k)
 vector space division by scalar
 
template<class Other >
derived_typeaxpy (const field_type &k, const DenseMatrix< Other > &y)
 vector space axpy operation (*this += k y)
 
template<class Other >
bool operator== (const DenseMatrix< Other > &y) const
 Binary matrix comparison.
 
template<class Other >
bool operator!= (const DenseMatrix< Other > &y) const
 Binary matrix incomparison.
 
template<class X , class Y >
void mv (const X &x, Y &y) const
 y = A x
 
template<class X , class Y >
void mtv (const X &x, Y &y) const
 y = A^T x
 
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 typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 y += alpha A x
 
template<class X , class Y >
void usmtv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 y += alpha A^T x
 
template<class X , class Y >
void usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 y += alpha A^H x
 
FieldTraits< value_type >::real_type frobenius_norm () const
 frobenius norm: sqrt(sum over squared values of entries)
 
FieldTraits< value_type >::real_type frobenius_norm2 () const
 square of frobenius norm, need for block recursion
 
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (row sum norm, how to generalize for blocks?)
 
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (row sum norm, how to generalize for blocks?)
 
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0>
FieldTraits< vt >::real_type 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. More...
 
void invert ()
 Compute inverse. More...
 
field_type determinant () const
 calculates the determinant of this matrix
 
template<typename M2 >
MAT & leftmultiply (const DenseMatrix< M2 > &M)
 Multiplies M from the left to this matrix.
 
template<typename M2 >
MAT & rightmultiply (const DenseMatrix< M2 > &M)
 Multiplies M from the right to this matrix.
 
size_type N () const
 number of rows
 
size_type M () const
 number of columns
 
size_type rows () const
 number of rows
 
size_type cols () const
 number of columns
 
bool exists (size_type i, size_type j) const
 return true when (i,j) is in pattern
 

Detailed Description

template<typename MAT>
class Dune::DenseMatrix< MAT >

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.

Template Parameters
MATtype of the matrix implementation

Member Enumeration Documentation

◆ anonymous enum

template<typename MAT >
anonymous enum

We are at the leaf of the block recursion.

Enumerator
blocklevel 

The number of block levels we contain. This is 1.

Member Function Documentation

◆ beforeBegin() [1/2]

template<typename MAT >
Iterator Dune::DenseMatrix< MAT >::beforeBegin ( )
inline
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeBegin() [2/2]

template<typename MAT >
ConstIterator Dune::DenseMatrix< MAT >::beforeBegin ( ) const
inline
Returns
an iterator that is positioned before the first entry of the vector.

◆ beforeEnd() [1/2]

template<typename MAT >
Iterator Dune::DenseMatrix< MAT >::beforeEnd ( )
inline
Returns
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.

References Dune::DenseMatrix< MAT >::rows().

◆ beforeEnd() [2/2]

template<typename MAT >
ConstIterator Dune::DenseMatrix< MAT >::beforeEnd ( ) const
inline
Returns
an iterator that is positioned before the end iterator of the vector. i.e. at the last element

References Dune::DenseMatrix< MAT >::rows().

◆ invert()

template<typename MAT >
void Dune::DenseMatrix< MAT >::invert ( )

Compute inverse.

Exceptions
FMatrixErrorif the matrix is singular

◆ solve()

template<typename MAT >
template<class V >
void Dune::DenseMatrix< MAT >::solve ( V &  x,
const V &  b 
) const

Solve system A x = b.

Exceptions
FMatrixErrorif the matrix is singular

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 26, 23:30, 2024)