Loading...
Searching...
No Matches
Dense Matrix and Vector Template Library
Common

Type traits to retrieve the field and the real type of classes. More...

Collaboration diagram for Dense Matrix and Vector Template Library:

## Files

file | densematrix.hh
| Implements a matrix constructed from a given type representing a field and a compile-time given number of rows and columns.
file | densevector.hh
| Implements the dense vector interface, with an exchangeable storage class.
file | dynmatrix.hh
| This file implements a dense matrix with dynamic numbers of rows and columns.
file | dynvector.hh
| This file implements a dense vector with a dynamic size.
file | fmatrix.hh
| Implements a matrix constructed from a given type representing a field and compile-time given number of rows and columns.
file | fvector.hh
| Implements a vector constructed from a given type representing a field and a compile-time given size.
file | scalarmatrixview.hh
| Implements a scalar matrix view wrapper around an existing scalar.
file | scalarvectorview.hh
| Implements a scalar vector view wrapper around an existing scalar.

## Namespaces

namespace | Dune
| Dune namespace
namespace | Dune::FMatrixHelp
namespace | Dune::MathOverloads
| namespace for customization of math functions with Dune-Semantics
namespace | Dune::DenseMatrixHelp

## Classes

struct | Dune::DenseMatrixAssigner< DenseMatrix, RHS >
| you have to specialize this structure for any type that should be assignable to a DenseMatrix More...
class | Dune::FMatrixError
| Error thrown if operations of a FieldMatrix fail. More...
class | Dune::DenseMatrix< MAT >
| A dense n x m matrix. More...
class | Dune::DenseIterator< C, T, R >
| Generic iterator class for dense vector and matrix implementations. More...
class | Dune::DenseVector< V >
| Interface for a class of dense vectors over a given field. More...
class | Dune::DiagonalMatrix< K, n >
| A diagonal matrix of static size. More...
struct | Dune::FieldTraits< DiagonalMatrix< K, n > >
class | Dune::DiagonalMatrixWrapper< DiagonalMatrixType >
class | Dune::DiagonalRowVectorConst< K, n >
class | Dune::DiagonalRowVector< K, n >
struct | Dune::const_reference< DiagonalRowVector< K, n > >
struct | Dune::const_reference< DiagonalRowVectorConst< K, n > >
struct | Dune::mutable_reference< DiagonalRowVector< K, n > >
struct | Dune::mutable_reference< DiagonalRowVectorConst< K, n > >
class | Dune::ContainerWrapperIterator< CW, T, R >
| Iterator class for sparse vector-like containers. More...
struct | Dune::DenseMatrixAssigner< DenseMatrix, DiagonalMatrix< field, N > >
class | Dune::DynamicMatrix< K >
| Construct a matrix with a dynamic size. More...
struct | Dune::DenseMatVecTraits< DynamicMatrix< K > >
struct | Dune::FieldTraits< DynamicMatrix< K > >
class | Dune::DynamicVector< K, Allocator >
| Construct a vector with a dynamic size. More...
struct | Dune::DenseMatVecTraits< DynamicVector< K, Allocator > >
struct | Dune::FieldTraits< DynamicVector< K, Allocator > >
class | Dune::FieldMatrix< K, ROWS, COLS >
| A dense n x m matrix. More...
struct | Dune::DenseMatVecTraits< FieldMatrix< K, ROWS, COLS > >
struct | Dune::FieldTraits< FieldMatrix< K, ROWS, COLS > >
class | Dune::FieldVector< K, SIZE >
| vector space out of a tensor product of fields. More...
struct | Dune::DenseMatVecTraits< FieldVector< K, SIZE > >
struct | Dune::FieldTraits< FieldVector< K, SIZE > >
struct | Dune::IsFieldVectorSizeCorrect< C, SIZE >
| TMP to check the size of a DenseVectors statically, if possible. More...
struct | Dune::IsFieldVectorSizeCorrect< FieldVector< T, SIZE >, SIZE >
struct | Dune::IsFieldVectorSizeCorrect< FieldVector< T, SIZE1 >, SIZE >
class | Dune::FMatrixPrecision< ctype >
| Precisions for calculations with FieldMatrix and FieldVector. More...

## Typedefs

typedef K | Dune::DiagonalMatrix< K, n >::value_type
| export the type representing the field
typedef value_type | Dune::DiagonalMatrix< K, n >::field_type
typedef K | Dune::DiagonalMatrix< K, n >::block_type
| export the type representing the components
typedef std::size_t | Dune::DiagonalMatrix< K, n >::size_type
| The type used for the index access and size operations.
typedef DiagonalRowVector< K, n > | Dune::DiagonalMatrix< K, n >::row_type
| Each row is implemented by a field vector.
typedef row_type | Dune::DiagonalMatrix< K, n >::reference
typedef row_type | Dune::DiagonalMatrix< K, n >::row_reference
typedef DiagonalRowVectorConst< K, n > | Dune::DiagonalMatrix< K, n >::const_row_type
typedef const_row_type | Dune::DiagonalMatrix< K, n >::const_reference
typedef const_row_type | Dune::DiagonalMatrix< K, n >::const_row_reference
typedef ContainerWrapperIterator< const WrapperType, reference, reference > | Dune::DiagonalMatrix< K, n >::Iterator
| Iterator class for sequential access.
typedef Iterator | Dune::DiagonalMatrix< K, n >::iterator
| typedef for stl compliant access
typedef Iterator | Dune::DiagonalMatrix< K, n >::RowIterator
| rename the iterators for easier access
typedef row_type::Iterator | Dune::DiagonalMatrix< K, n >::ColIterator
| rename the iterators for easier access
typedef ContainerWrapperIterator< const WrapperType, const_reference, const_reference > | Dune::DiagonalMatrix< K, n >::ConstIterator
| Iterator class for sequential access.
typedef ConstIterator | Dune::DiagonalMatrix< K, n >::const_iterator
| typedef for stl compliant access
typedef ConstIterator | Dune::DiagonalMatrix< K, n >::ConstRowIterator
| rename the iterators for easier access
typedef const_row_type::ConstIterator | Dune::DiagonalMatrix< K, n >::ConstColIterator
| rename the iterators for easier access
typedef FieldTraits< K >::field_type | Dune::FieldTraits< DiagonalMatrix< K, n > >::field_type
typedef FieldTraits< K >::real_type | Dune::FieldTraits< DiagonalMatrix< K, n > >::real_type
typedef K | Dune::DiagonalRowVectorConst< K, n >::field_type
| export the type representing the field
typedef K | Dune::DiagonalRowVectorConst< K, n >::block_type
| export the type representing the components
typedef std::size_t | Dune::DiagonalRowVectorConst< K, n >::size_type
| The type used for the index access and size operation.
typedef ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & > | Dune::DiagonalRowVectorConst< K, n >::ConstIterator
| ConstIterator class for sequential access.
typedef ConstIterator | Dune::DiagonalRowVectorConst< K, n >::const_iterator
| typedef for stl compliant access
typedef K | Dune::DiagonalRowVector< K, n >::field_type
| export the type representing the field
typedef K | Dune::DiagonalRowVector< K, n >::block_type
| export the type representing the components
typedef std::size_t | Dune::DiagonalRowVector< K, n >::size_type
| The type used for the index access and size operation.
typedef ContainerWrapperIterator< DiagonalRowVector< K, n >, K, K & > | Dune::DiagonalRowVector< K, n >::Iterator
| Iterator class for sequential access.
typedef Iterator | Dune::DiagonalRowVector< K, n >::iterator
| typedef for stl compliant access
typedef ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & > | Dune::DiagonalRowVector< K, n >::ConstIterator
| ConstIterator class for sequential access.
typedef ConstIterator | Dune::DiagonalRowVector< K, n >::const_iterator
| typedef for stl compliant access
typedef DiagonalRowVectorConst< K, n > | Dune::const_reference< DiagonalRowVector< K, n > >::type
typedef DiagonalRowVectorConst< K, n > | Dune::const_reference< DiagonalRowVectorConst< K, n > >::type
typedef DiagonalRowVector< K, n > | Dune::mutable_reference< DiagonalRowVector< K, n > >::type
typedef DiagonalRowVector< K, n > | Dune::mutable_reference< DiagonalRowVectorConst< K, n > >::type

## Functions

template<typename MAT>
std::ostream & | Dune::operator<< (std::ostream &s, const DenseMatrix< MAT > &a)
| Sends the matrix to an output stream.
static constexpr size_type | Dune::DiagonalMatrix< K, n >::size ()
constexpr | Dune::DiagonalMatrix< K, n >::DiagonalMatrix ()=default
| Default constructor.
| Dune::DiagonalMatrix< K, n >::DiagonalMatrix (const K &k)
| Constructor initializing the whole matrix with a scalar.
| Dune::DiagonalMatrix< K, n >::DiagonalMatrix (const FieldVector< K, n > &diag)
| Constructor initializing the diagonal with a vector.
| Dune::DiagonalMatrix< K, n >::DiagonalMatrix (std::initializer_list< K > const &l)
| Construct diagonal matrix from an initializer list.
template<class OtherK>
| Dune::DiagonalMatrix< K, n >::DiagonalMatrix (const DiagonalMatrix< OtherK, n > &other)
| Converting constructor.
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator= (const K &k)
| Assignment from a scalar.
template<class OtherK>
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator= (const DiagonalMatrix< OtherK, n > &other)
| Converting assignment operator.
bool | Dune::DiagonalMatrix< K, n >::identical (const DiagonalMatrix< K, n > &other) const
| Check if matrix is the same object as the other matrix.
DiagonalMatrix< K, n > | Dune::DiagonalMatrix< K, n >::transposed () const
| Return transposed of the matrix as DiagonalMatrix.
Iterator | Dune::DiagonalMatrix< K, n >::begin ()
| begin iterator
Iterator | Dune::DiagonalMatrix< K, n >::end ()
| end iterator
Iterator | Dune::DiagonalMatrix< K, n >::beforeEnd ()
Iterator | Dune::DiagonalMatrix< K, n >::beforeBegin ()
ConstIterator | Dune::DiagonalMatrix< K, n >::begin () const
| begin iterator
ConstIterator | Dune::DiagonalMatrix< K, n >::end () const
| end iterator
ConstIterator | Dune::DiagonalMatrix< K, n >::beforeEnd () const
ConstIterator | Dune::DiagonalMatrix< K, n >::beforeBegin () const
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator+= (const DiagonalMatrix &y)
| vector space addition
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator-= (const DiagonalMatrix &y)
| vector space subtraction
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator+= (const K &k)
| vector space multiplication with scalar
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator-= (const K &k)
| vector space division by scalar
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator*= (const K &k)
| vector space multiplication with scalar
DiagonalMatrix & | Dune::DiagonalMatrix< K, n >::operator/= (const K &k)
| vector space division by scalar
bool | Dune::DiagonalMatrix< K, n >::operator== (const DiagonalMatrix &other) const
| comparison operator
bool | Dune::DiagonalMatrix< K, n >::operator!= (const DiagonalMatrix &other) const
| incomparison operator
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::mv (const X &x, Y &y) const
| y = A x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::mtv (const X &x, Y &y) const
| y = A^T x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::umv (const X &x, Y &y) const
| y += A x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::umtv (const X &x, Y &y) const
| y += A^T x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::umhv (const X &x, Y &y) const
| y += A^H x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::mmv (const X &x, Y &y) const
| y -= A x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::mmtv (const X &x, Y &y) const
| y -= A^T x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::mmhv (const X &x, Y &y) const
| y -= A^H x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::usmv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
| y += alpha A x
template<class X, class Y>
void | Dune::DiagonalMatrix< K, n >::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 | Dune::DiagonalMatrix< K, n >::usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
| y += alpha A^H x
double | Dune::DiagonalMatrix< K, n >::frobenius_norm () const
| frobenius norm: sqrt(sum over squared values of entries)
double | Dune::DiagonalMatrix< K, n >::frobenius_norm2 () const
| square of frobenius norm, need for block recursion
double | Dune::DiagonalMatrix< K, n >::infinity_norm () const
| infinity norm (row sum norm, how to generalize for blocks?)
double | Dune::DiagonalMatrix< K, n >::infinity_norm_real () const
| simplified infinity norm (uses Manhattan norm for complex values)
template<class V>
void | Dune::DiagonalMatrix< K, n >::solve (V &x, const V &b) const
| Solve system A x = b.
void | Dune::DiagonalMatrix< K, n >::invert ()
| Compute inverse.
K | Dune::DiagonalMatrix< K, n >::determinant () const
| calculates the determinant of this matrix
static constexpr size_type | Dune::DiagonalMatrix< K, n >::N ()
| number of blocks in row direction
static constexpr size_type | Dune::DiagonalMatrix< K, n >::M ()
| number of blocks in column direction
bool | Dune::DiagonalMatrix< K, n >::exists (size_type i, size_type j) const
| return true when (i,j) is in pattern
reference | Dune::DiagonalMatrix< K, n >::operator[] (size_type i)
| Return reference object as row replacement.
const_reference | Dune::DiagonalMatrix< K, n >::operator[] (size_type i) const
| Return const_reference object as row replacement.
const K & | Dune::DiagonalMatrix< K, n >::diagonal (size_type i) const
| Get const reference to diagonal entry.
K & | Dune::DiagonalMatrix< K, n >::diagonal (size_type i)
| Get reference to diagonal entry.
const FieldVector< K, n > & | Dune::DiagonalMatrix< K, n >::diagonal () const
| Get const reference to diagonal vector.
FieldVector< K, n > & | Dune::DiagonalMatrix< K, n >::diagonal ()
| Get reference to diagonal vector.
| Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::DiagonalMatrixWrapper ()
| Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::DiagonalMatrixWrapper (const DiagonalMatrixType *mat)
size_type | Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::realIndex (int i) const
row_type * | Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::pointer (int i) const
bool | Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::identical (const DiagonalMatrixWrapper &other) const
| Dune::DiagonalRowVectorConst< K, n >::DiagonalRowVectorConst ()
| Constructor making uninitialized vector.
| Dune::DiagonalRowVectorConst< K, n >::DiagonalRowVectorConst (K *p, int col)
| Constructor making vector with identical coordinates.
const K & | Dune::DiagonalRowVectorConst< K, n >::operator[] (size_type i) const
| same for read only access
bool | Dune::DiagonalRowVectorConst< K, n >::identical (const DiagonalRowVectorConst< K, n > &other) const
ConstIterator | Dune::DiagonalRowVectorConst< K, n >::begin () const
| begin ConstIterator
ConstIterator | Dune::DiagonalRowVectorConst< K, n >::end () const
| end ConstIterator
ConstIterator | Dune::DiagonalRowVectorConst< K, n >::beforeEnd () const
ConstIterator | Dune::DiagonalRowVectorConst< K, n >::beforeBegin () const
bool | Dune::DiagonalRowVectorConst< K, n >::operator== (const DiagonalRowVectorConst &y) const
| Binary vector comparison.
size_type | Dune::DiagonalRowVectorConst< K, n >::N () const
| number of blocks in the vector (are of size 1 here)
size_type | Dune::DiagonalRowVectorConst< K, n >::dim () const
| dimension of the vector space
size_type | Dune::DiagonalRowVectorConst< K, n >::rowIndex () const
| index of this row in surrounding matrix
const K & | Dune::DiagonalRowVectorConst< K, n >::diagonal () const
| the diagonal value
size_type | Dune::DiagonalRowVectorConst< K, n >::realIndex (int i) const
K * | Dune::DiagonalRowVectorConst< K, n >::pointer (size_type i) const
DiagonalRowVectorConst * | Dune::DiagonalRowVectorConst< K, n >::operator& ()
| Dune::DiagonalRowVector< K, n >::DiagonalRowVector ()
| Constructor making uninitialized vector.
| Dune::DiagonalRowVector< K, n >::DiagonalRowVector (K *p, int col)
| Constructor making vector with identical coordinates.
DiagonalRowVector & | Dune::DiagonalRowVector< K, n >::operator= (const K &k)
| Assignment operator for scalar.
K & | Dune::DiagonalRowVector< K, n >::operator[] (size_type i)
| random access
Iterator | Dune::DiagonalRowVector< K, n >::begin ()
| begin iterator
Iterator | Dune::DiagonalRowVector< K, n >::end ()
| end iterator
Iterator | Dune::DiagonalRowVector< K, n >::beforeEnd ()
Iterator | Dune::DiagonalRowVector< K, n >::beforeBegin ()
DiagonalRowVector * | Dune::DiagonalRowVector< K, n >::operator& ()
| Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator ()
| Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator (CW containerWrapper, int position)
template<class OtherContainerWrapperIteratorType>
| Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator (OtherContainerWrapperIteratorType &other)
| Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator (const MyType &other)
template<class OtherContainerWrapperIteratorType>
ContainerWrapperIterator & | Dune::ContainerWrapperIterator< CW, T, R >::operator= (OtherContainerWrapperIteratorType &other)
T * | Dune::ContainerWrapperIterator< CW, T, R >::operator-> () const
bool | Dune::ContainerWrapperIterator< CW, T, R >::equals (const MyType &other) const
R | Dune::ContainerWrapperIterator< CW, T, R >::dereference () const
void | Dune::ContainerWrapperIterator< CW, T, R >::increment ()
void | Dune::ContainerWrapperIterator< CW, T, R >::decrement ()
R | Dune::ContainerWrapperIterator< CW, T, R >::elementAt (int i) const
void | Dune::ContainerWrapperIterator< CW, T, R >::advance (int n)
template<class OtherContainerWrapperIteratorType>
std::ptrdiff_t | Dune::ContainerWrapperIterator< CW, T, R >::distanceTo (OtherContainerWrapperIteratorType &other) const
std::ptrdiff_t | Dune::ContainerWrapperIterator< CW, T, R >::index () const
static void | Dune::DenseMatrixAssigner< DenseMatrix, DiagonalMatrix< field, N > >::apply (DenseMatrix &denseMatrix, DiagonalMatrix< field, N > const &rhs)
template<typename V>
std::ostream & | operator<< (std::ostream &s, const DenseVector< V > &v)
| Write a DenseVector to an output stream.
template<class K, class Allocator>
std::istream & | operator>> (std::istream &in, DynamicVector< K, Allocator > &v)
| Read a DynamicVector from an input stream.
template<class K, int SIZE>
std::istream & | operator>> (std::istream &in, FieldVector< K, SIZE > &v)
| Read a FieldVector from an input stream.

## Variables

static constexpr int | Dune::DiagonalMatrix< K, n >::blocklevel = 1
| The number of block levels we contain. This is the leaf, that is, 1.
static constexpr int | Dune::DiagonalMatrix< K, n >::rows = n
| The number of rows.
static constexpr int | Dune::DiagonalMatrix< K, n >::cols = n
| The number of columns.
static constexpr int | Dune::DiagonalRowVectorConst< K, n >::dimension = n
static constexpr int | Dune::DiagonalRowVectorConst< K, n >::blocklevel = 1
| The number of block levels we contain.
static constexpr int | Dune::DiagonalRowVectorConst< K, n >::size = n
| The size of this vector.
K * | Dune::DiagonalRowVectorConst< K, n >::p_
size_type | Dune::DiagonalRowVectorConst< K, n >::row_
template<class ctype>
ctype | Dune::FMatrixPrecision< ctype >::_absolute = 1E-80

## Friends

template<class, int>
class | Dune::DiagonalMatrix< K, n >::DiagonalMatrix
class | Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::ContainerWrapperIterator< const MyType, reference, reference >
class | Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::ContainerWrapperIterator< const MyType, const_reference, const_reference >
template<class DiagonalMatrixType>
class | Dune::DiagonalRowVectorConst< K, n >::DiagonalMatrixWrapper
class | Dune::DiagonalRowVectorConst< K, n >::ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & >
template<class DiagonalMatrixType>
class | Dune::DiagonalRowVector< K, n >::DiagonalMatrixWrapper
class | Dune::DiagonalRowVector< K, n >::ContainerWrapperIterator< DiagonalRowVector< K, n >, K, K & >
class | Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator< CW, typename mutable_reference< T >::type, typename mutable_reference< R >::type >
class | Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator< CW, typename const_reference< T >::type, typename const_reference< R >::type >
template<class OtherScalar>
auto | Dune::DiagonalMatrix< K, n >::operator* (const DiagonalMatrix &matrixA, const DiagonalMatrix< OtherScalar, n > &matrixB)
| Matrix-matrix multiplication.
template<class OtherMatrix, std::enable_if_t<(Impl::IsDenseMatrix< OtherMatrix >::value), int > = 0, std::enable_if_t<(not Impl::IsFieldMatrix< OtherMatrix >::value), int > = 0>
auto | Dune::DiagonalMatrix< K, n >::operator* (const DiagonalMatrix &matrixA, const OtherMatrix &matrixB)
| Multiply a diagonal matrix with a dense matrix.
std::ostream & | Dune::DiagonalMatrix< K, n >::operator<< (std::ostream &s, const DiagonalMatrix< K, n > &a)
| Sends the matrix to an output stream.

## Detailed Description

Type traits to retrieve the field and the real type of classes.

Type Traits to retrieve types associated with an implementation of Dune::DenseVector or Dune::DenseMatrix.

Type traits to retrieve the field and the real type of classes e.g. that of FieldVector or FieldMatrix

you have to specialize this class for every implementation of DenseVector or DenseMatrix.

typedef ... derived_type;
typedef ... value_type;
typedef ... size_type;

## Typedef Documentation

## block_type [1/3]

template<class K, int n>

typedef K Dune::DiagonalMatrix< K, n >::block_type

export the type representing the components

## block_type [2/3]

template<class K, int n>

typedef K Dune::DiagonalRowVector< K, n >::block_type

export the type representing the components

## block_type [3/3]

template<class K, int n>

typedef K Dune::DiagonalRowVectorConst< K, n >::block_type

export the type representing the components

## ColIterator

template<class K, int n>

typedef row_type::Iterator Dune::DiagonalMatrix< K, n >::ColIterator

rename the iterators for easier access

## const_iterator [1/3]

template<class K, int n>

typedef ConstIterator Dune::DiagonalMatrix< K, n >::const_iterator

typedef for stl compliant access

## const_iterator [2/3]

template<class K, int n>

typedef ConstIterator Dune::DiagonalRowVector< K, n >::const_iterator

typedef for stl compliant access

## const_iterator [3/3]

template<class K, int n>

typedef ConstIterator Dune::DiagonalRowVectorConst< K, n >::const_iterator

typedef for stl compliant access

## const_reference

template<class K, int n>

typedef const_row_type Dune::DiagonalMatrix< K, n >::const_reference

## const_row_reference

template<class K, int n>

typedef const_row_type Dune::DiagonalMatrix< K, n >::const_row_reference

## const_row_type

template<class K, int n>

typedef DiagonalRowVectorConst<K,n> Dune::DiagonalMatrix< K, n >::const_row_type

## ConstColIterator

template<class K, int n>

typedef const_row_type::ConstIterator Dune::DiagonalMatrix< K, n >::ConstColIterator

rename the iterators for easier access

## ConstIterator [1/3]

template<class K, int n>

typedef ContainerWrapperIterator<const WrapperType, const_reference, const_reference> Dune::DiagonalMatrix< K, n >::ConstIterator

Iterator class for sequential access.

## ConstIterator [2/3]

template<class K, int n>

typedef ContainerWrapperIterator<DiagonalRowVectorConst<K,n>, const K, const K&> Dune::DiagonalRowVector< K, n >::ConstIterator

ConstIterator class for sequential access.

## ConstIterator [3/3]

template<class K, int n>

typedef ContainerWrapperIterator<DiagonalRowVectorConst<K,n>, const K, const K&> Dune::DiagonalRowVectorConst< K, n >::ConstIterator

ConstIterator class for sequential access.

## ConstRowIterator

template<class K, int n>

typedef ConstIterator Dune::DiagonalMatrix< K, n >::ConstRowIterator

rename the iterators for easier access

## field_type [1/4]

template<class K, int n>

typedef value_type Dune::DiagonalMatrix< K, n >::field_type

## field_type [2/4]

template<class K, int n>

typedef K Dune::DiagonalRowVector< K, n >::field_type

export the type representing the field

## field_type [3/4]

template<class K, int n>

typedef K Dune::DiagonalRowVectorConst< K, n >::field_type

export the type representing the field

## field_type [4/4]

template<class K, int n>

typedef FieldTraits<K>::field_type Dune::FieldTraits< DiagonalMatrix< K, n > >::field_type

## Iterator [1/2]

template<class K, int n>

typedef ContainerWrapperIterator<const WrapperType, reference, reference> Dune::DiagonalMatrix< K, n >::Iterator

Iterator class for sequential access.

## Iterator [2/2]

template<class K, int n>

typedef ContainerWrapperIterator<DiagonalRowVector<K,n>, K, K&> Dune::DiagonalRowVector< K, n >::Iterator

Iterator class for sequential access.

## iterator [1/2]

template<class K, int n>

typedef Iterator Dune::DiagonalMatrix< K, n >::iterator

typedef for stl compliant access

## iterator [2/2]

template<class K, int n>

typedef Iterator Dune::DiagonalRowVector< K, n >::iterator

typedef for stl compliant access

## real_type

template<class K, int n>

typedef FieldTraits<K>::real_type Dune::FieldTraits< DiagonalMatrix< K, n > >::real_type

## reference

template<class K, int n>

typedef row_type Dune::DiagonalMatrix< K, n >::reference

## row_reference

template<class K, int n>

typedef row_type Dune::DiagonalMatrix< K, n >::row_reference

## row_type

template<class K, int n>

typedef DiagonalRowVector<K,n> Dune::DiagonalMatrix< K, n >::row_type

Each row is implemented by a field vector.

## RowIterator

template<class K, int n>

typedef Iterator Dune::DiagonalMatrix< K, n >::RowIterator

rename the iterators for easier access

## size_type [1/3]

template<class K, int n>

typedef std::size_t Dune::DiagonalMatrix< K, n >::size_type

The type used for the index access and size operations.

## size_type [2/3]

template<class K, int n>

typedef std::size_t Dune::DiagonalRowVector< K, n >::size_type

The type used for the index access and size operation.

## size_type [3/3]

template<class K, int n>

typedef std::size_t Dune::DiagonalRowVectorConst< K, n >::size_type

The type used for the index access and size operation.

## type [1/4]

template<class K, int n>

typedef DiagonalRowVectorConst<K,n> Dune::const_reference< DiagonalRowVector< K, n > >::type

## type [2/4]

template<class K, int n>

typedef DiagonalRowVectorConst<K,n> Dune::const_reference< DiagonalRowVectorConst< K, n > >::type

## type [3/4]

template<class K, int n>

typedef DiagonalRowVector<K,n> Dune::mutable_reference< DiagonalRowVector< K, n > >::type

## type [4/4]

template<class K, int n>

typedef DiagonalRowVector<K,n> Dune::mutable_reference< DiagonalRowVectorConst< K, n > >::type

## value_type

template<class K, int n>

typedef K Dune::DiagonalMatrix< K, n >::value_type

export the type representing the field

## Function Documentation

## advance()

template<class CW, class T, class R>

void Dune::ContainerWrapperIterator< CW, T, R >::advance | ( | int | n | ) |

inline

## apply()

template<class DenseMatrix, class field, int N>

void Dune::DenseMatrixAssigner< DenseMatrix, DiagonalMatrix< field, N > >::apply | ( | DenseMatrix & | denseMatrix,
|  | DiagonalMatrix< field, N > const & | rhs )

inline static

## beforeBegin() [1/4]

template<class K, int n>

Iterator Dune::DiagonalMatrix< K, n >::beforeBegin | ( |  | ) |

inline

Returns
  an iterator that is positioned before the first row of the matrix.

## beforeBegin() [2/4]

template<class K, int n>

ConstIterator Dune::DiagonalMatrix< K, n >::beforeBegin | ( |  | ) | const

inline

Returns
  an iterator that is positioned before the first row of the matrix.

## beforeBegin() [3/4]

template<class K, int n>

Iterator Dune::DiagonalRowVector< K, n >::beforeBegin | ( |  | ) |

inline

Returns
  an iterator that is positioned before the first row of the matrix.

## beforeBegin() [4/4]

template<class K, int n>

ConstIterator Dune::DiagonalRowVectorConst< K, n >::beforeBegin | ( |  | ) | const

inline

Returns
  an iterator that is positioned before the first row of the matrix.

## beforeEnd() [1/4]

template<class K, int n>

Iterator Dune::DiagonalMatrix< K, n >::beforeEnd | ( |  | ) |

inline

Returns
  an iterator that is positioned before the end iterator of the rows, i.e. at the last row.

## beforeEnd() [2/4]

template<class K, int n>

ConstIterator Dune::DiagonalMatrix< K, n >::beforeEnd | ( |  | ) | const

inline

Returns
  an iterator that is positioned before the end iterator of the rows. i.e. at the last row.

## beforeEnd() [3/4]

template<class K, int n>

Iterator Dune::DiagonalRowVector< K, n >::beforeEnd | ( |  | ) |

inline

Returns
  an iterator that is positioned before the end iterator of the rows, i.e. at the last row.

## beforeEnd() [4/4]

template<class K, int n>

ConstIterator Dune::DiagonalRowVectorConst< K, n >::beforeEnd | ( |  | ) | const

inline

Returns
  an iterator that is positioned before the end iterator of the rows. i.e. at the row.

## begin() [1/4]

template<class K, int n>

Iterator Dune::DiagonalMatrix< K, n >::begin | ( |  | ) |

inline

begin iterator

## begin() [2/4]

template<class K, int n>

ConstIterator Dune::DiagonalMatrix< K, n >::begin | ( |  | ) | const

inline

begin iterator

## begin() [3/4]

template<class K, int n>

Iterator Dune::DiagonalRowVector< K, n >::begin | ( |  | ) |

inline

begin iterator

## begin() [4/4]

template<class K, int n>

ConstIterator Dune::DiagonalRowVectorConst< K, n >::begin | ( |  | ) | const

inline

begin ConstIterator

## ContainerWrapperIterator() [1/4]

template<class CW, class T, class R>

Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( |  | ) |

inline

## ContainerWrapperIterator() [2/4]

template<class CW, class T, class R>

Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | const MyType & | other | ) |

inline

## ContainerWrapperIterator() [3/4]

template<class CW, class T, class R>

Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | CW | containerWrapper,
|  | int | position )

inline

## ContainerWrapperIterator() [4/4]

template<class CW, class T, class R>
template<class OtherContainerWrapperIteratorType>

Dune::ContainerWrapperIterator< CW, T, R >::ContainerWrapperIterator | ( | OtherContainerWrapperIteratorType & | other | ) |

inline

## decrement()

template<class CW, class T, class R>

void Dune::ContainerWrapperIterator< CW, T, R >::decrement | ( |  | ) |

inline

## dereference()

template<class CW, class T, class R>

R Dune::ContainerWrapperIterator< CW, T, R >::dereference | ( |  | ) | const

inline

## determinant()

template<class K, int n>

K Dune::DiagonalMatrix< K, n >::determinant | ( |  | ) | const

inline

calculates the determinant of this matrix

## diagonal() [1/5]

template<class K, int n>

FieldVector< K, n > & Dune::DiagonalMatrix< K, n >::diagonal | ( |  | ) |

inline

Get reference to diagonal vector.

## diagonal() [2/5]

template<class K, int n>

const FieldVector< K, n > & Dune::DiagonalMatrix< K, n >::diagonal | ( |  | ) | const

inline

Get const reference to diagonal vector.

## diagonal() [3/5]

template<class K, int n>

K & Dune::DiagonalMatrix< K, n >::diagonal | ( | size_type | i | ) |

inline

Get reference to diagonal entry.

## diagonal() [4/5]

template<class K, int n>

const K & Dune::DiagonalMatrix< K, n >::diagonal | ( | size_type | i | ) | const

inline

Get const reference to diagonal entry.

## diagonal() [5/5]

template<class K, int n>

const K & Dune::DiagonalRowVectorConst< K, n >::diagonal | ( |  | ) | const

inline

the diagonal value

## DiagonalMatrix() [1/5]

template<class K, int n>

Dune::DiagonalMatrix< K, n >::DiagonalMatrix | ( |  | ) |

constexpr default

Default constructor.

## DiagonalMatrix() [2/5]

template<class K, int n>
template<class OtherK>

Dune::DiagonalMatrix< K, n >::DiagonalMatrix | ( | const DiagonalMatrix< OtherK, n > & | other | ) |

inline

Converting constructor.

## DiagonalMatrix() [3/5]

template<class K, int n>

Dune::DiagonalMatrix< K, n >::DiagonalMatrix | ( | const FieldVector< K, n > & | diag | ) |

inline

Constructor initializing the diagonal with a vector.

## DiagonalMatrix() [4/5]

template<class K, int n>

Dune::DiagonalMatrix< K, n >::DiagonalMatrix | ( | const K & | k | ) |

inline

Constructor initializing the whole matrix with a scalar.

## DiagonalMatrix() [5/5]

template<class K, int n>

Dune::DiagonalMatrix< K, n >::DiagonalMatrix | ( | std::initializer_list< K > const & | l | ) |

inline

Construct diagonal matrix from an initializer list.

The elements of the list are copied into the diagonal elements of the matrix. If the initializer list is shorter than the matrix diagonal (which has n elements), the remaining matrix diagonal elements are left uninitialized. If the initializer list is longer, than only the first n elements will be copied into the matrix diagonal.

## DiagonalMatrixWrapper() [1/2]

template<class DiagonalMatrixType>

Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::DiagonalMatrixWrapper | ( |  | ) |

inline

## DiagonalMatrixWrapper() [2/2]

template<class DiagonalMatrixType>

Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::DiagonalMatrixWrapper | ( | const DiagonalMatrixType * | mat | ) |

inline

## DiagonalRowVector() [1/2]

template<class K, int n>

Dune::DiagonalRowVector< K, n >::DiagonalRowVector | ( |  | ) |

inline

Constructor making uninitialized vector.

## DiagonalRowVector() [2/2]

template<class K, int n>

Dune::DiagonalRowVector< K, n >::DiagonalRowVector | ( | K * | p,
|  | int | col )

inline explicit

Constructor making vector with identical coordinates.

## DiagonalRowVectorConst() [1/2]

template<class K, int n>

Dune::DiagonalRowVectorConst< K, n >::DiagonalRowVectorConst | ( |  | ) |

inline

Constructor making uninitialized vector.

## DiagonalRowVectorConst() [2/2]

template<class K, int n>

Dune::DiagonalRowVectorConst< K, n >::DiagonalRowVectorConst | ( | K * | p,
|  | int | col )

inline explicit

Constructor making vector with identical coordinates.

## dim()

template<class K, int n>

size_type Dune::DiagonalRowVectorConst< K, n >::dim | ( |  | ) | const

inline

dimension of the vector space

## distanceTo()

template<class CW, class T, class R>
template<class OtherContainerWrapperIteratorType>

std::ptrdiff_t Dune::ContainerWrapperIterator< CW, T, R >::distanceTo | ( | OtherContainerWrapperIteratorType & | other | ) | const

inline

## elementAt()

template<class CW, class T, class R>

R Dune::ContainerWrapperIterator< CW, T, R >::elementAt | ( | int | i | ) | const

inline

## end() [1/4]

template<class K, int n>

Iterator Dune::DiagonalMatrix< K, n >::end | ( |  | ) |

inline

end iterator

## end() [2/4]

template<class K, int n>

ConstIterator Dune::DiagonalMatrix< K, n >::end | ( |  | ) | const

inline

end iterator

## end() [3/4]

template<class K, int n>

Iterator Dune::DiagonalRowVector< K, n >::end | ( |  | ) |

inline

end iterator

## end() [4/4]

template<class K, int n>

ConstIterator Dune::DiagonalRowVectorConst< K, n >::end | ( |  | ) | const

inline

end ConstIterator

## equals()

template<class CW, class T, class R>

bool Dune::ContainerWrapperIterator< CW, T, R >::equals | ( | const MyType & | other | ) | const

inline

## exists()

template<class K, int n>

bool Dune::DiagonalMatrix< K, n >::exists | ( | size_type | i,
|  | size_type | j ) const

inline

return true when (i,j) is in pattern

## frobenius_norm()

template<class K, int n>

double Dune::DiagonalMatrix< K, n >::frobenius_norm | ( |  | ) | const

inline

frobenius norm: sqrt(sum over squared values of entries)

## frobenius_norm2()

template<class K, int n>

double Dune::DiagonalMatrix< K, n >::frobenius_norm2 | ( |  | ) | const

inline

square of frobenius norm, need for block recursion

## identical() [1/3]

template<class K, int n>

bool Dune::DiagonalMatrix< K, n >::identical | ( | const DiagonalMatrix< K, n > & | other | ) | const

inline

Check if matrix is the same object as the other matrix.

## identical() [2/3]

template<class DiagonalMatrixType>

bool Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::identical | ( | const DiagonalMatrixWrapper< DiagonalMatrixType > & | other | ) | const

inline

## identical() [3/3]

template<class K, int n>

bool Dune::DiagonalRowVectorConst< K, n >::identical | ( | const DiagonalRowVectorConst< K, n > & | other | ) | const

inline

## increment()

template<class CW, class T, class R>

void Dune::ContainerWrapperIterator< CW, T, R >::increment | ( |  | ) |

inline

## index()

template<class CW, class T, class R>

std::ptrdiff_t Dune::ContainerWrapperIterator< CW, T, R >::index | ( |  | ) | const

inline

## infinity_norm()

template<class K, int n>

double Dune::DiagonalMatrix< K, n >::infinity_norm | ( |  | ) | const

inline

infinity norm (row sum norm, how to generalize for blocks?)

## infinity_norm_real()

template<class K, int n>

double Dune::DiagonalMatrix< K, n >::infinity_norm_real | ( |  | ) | const

inline

simplified infinity norm (uses Manhattan norm for complex values)

## invert()

template<class K, int n>

void Dune::DiagonalMatrix< K, n >::invert | ( |  | ) |

inline

Compute inverse.

## M()

template<class K, int n>

constexpr size_type Dune::DiagonalMatrix< K, n >::M | ( |  | ) |

inline static constexpr

number of blocks in column direction

## mmhv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::mmhv | ( | const X & | x,
|  | Y & | y ) const

inline

y -= A^H x

## mmtv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::mmtv | ( | const X & | x,
|  | Y & | y ) const

inline

y -= A^T x

## mmv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::mmv | ( | const X & | x,
|  | Y & | y ) const

inline

y -= A x

## mtv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::mtv | ( | const X & | x,
|  | Y & | y ) const

inline

y = A^T x

## mv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::mv | ( | const X & | x,
|  | Y & | y ) const

inline

y = A x

## N() [1/2]

template<class K, int n>

constexpr size_type Dune::DiagonalMatrix< K, n >::N | ( |  | ) |

inline static constexpr

number of blocks in row direction

## N() [2/2]

template<class K, int n>

size_type Dune::DiagonalRowVectorConst< K, n >::N | ( |  | ) | const

inline

number of blocks in the vector (are of size 1 here)

## operator!=()

template<class K, int n>

bool Dune::DiagonalMatrix< K, n >::operator!= | ( | const DiagonalMatrix< K, n > & | other | ) | const

inline

incomparison operator

## operator&() [1/2]

template<class K, int n>

DiagonalRowVector * Dune::DiagonalRowVector< K, n >::operator& | ( |  | ) |

inline protected

## operator&() [2/2]

template<class K, int n>

DiagonalRowVectorConst * Dune::DiagonalRowVectorConst< K, n >::operator& | ( |  | ) |

inline protected

## operator*=()

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator*= | ( | const K & | k | ) |

inline

vector space multiplication with scalar

## operator+=() [1/2]

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator+= | ( | const DiagonalMatrix< K, n > & | y | ) |

inline

vector space addition

## operator+=() [2/2]

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator+= | ( | const K & | k | ) |

inline

vector space multiplication with scalar

## operator-=() [1/2]

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator-= | ( | const DiagonalMatrix< K, n > & | y | ) |

inline

vector space subtraction

## operator-=() [2/2]

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator-= | ( | const K & | k | ) |

inline

vector space division by scalar

## operator->()

template<class CW, class T, class R>

T * Dune::ContainerWrapperIterator< CW, T, R >::operator-> | ( |  | ) | const

inline

## operator/=()

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator/= | ( | const K & | k | ) |

inline

vector space division by scalar

## operator<<() [1/2]

template<typename V>

std::ostream & operator<< | ( | std::ostream & | s,
|  | const DenseVector< V > & | v )

related

Write a DenseVector to an output stream.

Parameters

  [in] | s | std :: ostream to write to
  [in] | v | DenseVector to write

Returns
  the output stream (s)

## operator<<() [2/2]

template<typename MAT>

std::ostream & Dune::operator<< | ( | std::ostream & | s,
|  | const DenseMatrix< MAT > & | a )

Sends the matrix to an output stream.

## operator=() [1/4]

template<class CW, class T, class R>
template<class OtherContainerWrapperIteratorType>

ContainerWrapperIterator & Dune::ContainerWrapperIterator< CW, T, R >::operator= | ( | OtherContainerWrapperIteratorType & | other | ) |

inline

## operator=() [2/4]

template<class K, int n>
template<class OtherK>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator= | ( | const DiagonalMatrix< OtherK, n > & | other | ) |

inline

Converting assignment operator.

## operator=() [3/4]

template<class K, int n>

DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator= | ( | const K & | k | ) |

inline

Assignment from a scalar.

## operator=() [4/4]

template<class K, int n>

DiagonalRowVector & Dune::DiagonalRowVector< K, n >::operator= | ( | const K & | k | ) |

inline

Assignment operator for scalar.

## operator==() [1/2]

template<class K, int n>

bool Dune::DiagonalMatrix< K, n >::operator== | ( | const DiagonalMatrix< K, n > & | other | ) | const

inline

comparison operator

## operator==() [2/2]

template<class K, int n>

bool Dune::DiagonalRowVectorConst< K, n >::operator== | ( | const DiagonalRowVectorConst< K, n > & | y | ) | const

inline

Binary vector comparison.

## operator>>() [1/2]

template<class K, class Allocator>

std::istream & operator>> | ( | std::istream & | in,
|  | DynamicVector< K, Allocator > & | v )

related

Read a DynamicVector from an input stream.

Note
  This operator is STL compliant, i.e., the content of v is only changed if the read operation is successful.

Parameters

  [in] | in | std :: istream to read from
  [out] | v | DynamicVector to be read

Returns
  the input stream (in)

## operator>>() [2/2]

template<class K, int SIZE>

std::istream & operator>> | ( | std::istream & | in,
|  | FieldVector< K, SIZE > & | v )

related

Read a FieldVector from an input stream.

Note
  This operator is STL compliant, i.e., the content of v is only changed if the read operation is successful.

Parameters

  [in] | in | std :: istream to read from
  [out] | v | FieldVector to be read

Returns
  the input stream (in)

## operator[]() [1/4]

template<class K, int n>

reference Dune::DiagonalMatrix< K, n >::operator[] | ( | size_type | i | ) |

inline

Return reference object as row replacement.

## operator[]() [2/4]

template<class K, int n>

const_reference Dune::DiagonalMatrix< K, n >::operator[] | ( | size_type | i | ) | const

inline

Return const_reference object as row replacement.

## operator[]() [3/4]

template<class K, int n>

K & Dune::DiagonalRowVector< K, n >::operator[] | ( | size_type | i | ) |

inline

random access

## operator[]() [4/4]

template<class K, int n>

const K & Dune::DiagonalRowVectorConst< K, n >::operator[] | ( | size_type | i | ) | const

inline

same for read only access

## pointer() [1/2]

template<class DiagonalMatrixType>

row_type * Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::pointer | ( | int | i | ) | const

inline

## pointer() [2/2]

template<class K, int n>

K * Dune::DiagonalRowVectorConst< K, n >::pointer | ( | size_type | i | ) | const

inline protected

## realIndex() [1/2]

template<class DiagonalMatrixType>

size_type Dune::DiagonalMatrixWrapper< DiagonalMatrixType >::realIndex | ( | int | i | ) | const

inline

## realIndex() [2/2]

template<class K, int n>

size_type Dune::DiagonalRowVectorConst< K, n >::realIndex | ( | int | i | ) | const

inline protected

## rowIndex()

template<class K, int n>

size_type Dune::DiagonalRowVectorConst< K, n >::rowIndex | ( |  | ) | const

inline

index of this row in surrounding matrix

## size()

template<class K, int n>

constexpr size_type Dune::DiagonalMatrix< K, n >::size | ( |  | ) |

inline static constexpr

## solve()

template<class K, int n>
template<class V>

void Dune::DiagonalMatrix< K, n >::solve | ( | V & | x,
|  | const V & | b ) const

inline

Solve system A x = b.

## transposed()

template<class K, int n>

DiagonalMatrix< K, n > Dune::DiagonalMatrix< K, n >::transposed | ( |  | ) | const

inline

Return transposed of the matrix as DiagonalMatrix.

## umhv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::umhv | ( | const X & | x,
|  | Y & | y ) const

inline

y += A^H x

## umtv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::umtv | ( | const X & | x,
|  | Y & | y ) const

inline

y += A^T x

## umv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::umv | ( | const X & | x,
|  | Y & | y ) const

inline

y += A x

## usmhv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::usmhv | ( | const typename FieldTraits< Y >::field_type & | alpha,
|  | const X & | x,
|  | Y & | y ) const

inline

y += alpha A^H x

## usmtv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::usmtv | ( | const typename FieldTraits< Y >::field_type & | alpha,
|  | const X & | x,
|  | Y & | y ) const

inline

y += alpha A^T x

## usmv()

template<class K, int n>
template<class X, class Y>

void Dune::DiagonalMatrix< K, n >::usmv | ( | const typename FieldTraits< Y >::field_type & | alpha,
|  | const X & | x,
|  | Y & | y ) const

inline

y += alpha A x

## Variable Documentation

## blocklevel [1/2]

template<class K, int n>

int Dune::DiagonalMatrix< K, n >::blocklevel = 1

static constexpr

The number of block levels we contain. This is the leaf, that is, 1.

## blocklevel [2/2]

template<class K, int n>

int Dune::DiagonalRowVectorConst< K, n >::blocklevel = 1

static constexpr

The number of block levels we contain.

## cols

template<class K, int n>

int Dune::DiagonalMatrix< K, n >::cols = n

static constexpr

The number of columns.

## dimension

template<class K, int n>

int Dune::DiagonalRowVectorConst< K, n >::dimension = n

static constexpr

## FMatrixPrecision< ctype >::_absolute

template<class ctype>

ctype Dune::FMatrixPrecision< ctype >::_absolute = 1E-80

## p_

template<class K, int n>

K* Dune::DiagonalRowVectorConst< K, n >::p_

protected

## row_

template<class K, int n>

size_type Dune::DiagonalRowVectorConst< K, n >::row_

protected

## rows

template<class K, int n>

int Dune::DiagonalMatrix< K, n >::rows = n

static constexpr

The number of rows.

## size

template<class K, int n>

int Dune::DiagonalRowVectorConst< K, n >::size = n

static constexpr

The size of this vector.

## Friends

## ContainerWrapperIterator< const MyType, const_reference, const_reference >

template<class DiagonalMatrixType>

friend class ContainerWrapperIterator< const MyType, const_reference, const_reference >

friend

## ContainerWrapperIterator< const MyType, reference, reference >

template<class DiagonalMatrixType>

friend class ContainerWrapperIterator< const MyType, reference, reference >

friend

## ContainerWrapperIterator< CW, typename const_reference< T >::type, typename const_reference< R >::type >

template<class CW, class T, class R>

friend class ContainerWrapperIterator< CW, typename const_reference< T >::type, typename const_reference< R >::type >

friend

## ContainerWrapperIterator< CW, typename mutable_reference< T >::type, typename mutable_reference< R >::type >

template<class CW, class T, class R>

friend class ContainerWrapperIterator< CW, typename mutable_reference< T >::type, typename mutable_reference< R >::type >

friend

## ContainerWrapperIterator< DiagonalRowVector< K, n >, K, K & >

template<class K, int n>

friend class ContainerWrapperIterator< DiagonalRowVector< K, n >, K, K & >

friend

## ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & >

template<class K, int n>

friend class ContainerWrapperIterator< DiagonalRowVectorConst< K, n >, const K, const K & >

friend

## DiagonalMatrix

template<class K, int n>
template<class, int>

friend class DiagonalMatrix

friend

## DiagonalMatrixWrapper [1/2]

template<class K, int n>
template<class DiagonalMatrixType>

friend class DiagonalMatrixWrapper

friend

## DiagonalMatrixWrapper [2/2]

template<class K, int n>
template<class DiagonalMatrixType>

friend class DiagonalMatrixWrapper

friend

## operator* [1/2]

template<class K, int n>
template<class OtherScalar>

auto operator* | ( | const DiagonalMatrix< K, n > & | matrixA,
|  | const DiagonalMatrix< OtherScalar, n > & | matrixB )

friend

Matrix-matrix multiplication.

## operator* [2/2]

template<class K, int n>
template<class OtherMatrix, std::enable_if_t<(Impl::IsDenseMatrix< OtherMatrix >::value), int > = 0, std::enable_if_t<(not Impl::IsFieldMatrix< OtherMatrix >::value), int > = 0>

auto operator* | ( | const DiagonalMatrix< K, n > & | matrixA,
|  | const OtherMatrix & | matrixB )

friend

Multiply a diagonal matrix with a dense matrix.

The result of this multiplication is either a FieldMatrix if the matrixB is a matrix with static size, or a DynamicMatrix. This overload is deactivated for matrixB being a FieldMatrix since this is already covered by the corresponding overload of the operator* in the FieldMatrix class.

## operator<<

template<class K, int n>

std::ostream & operator<< | ( | std::ostream & | s,
|  | const DiagonalMatrix< K, n > & | a )

friend

Sends the matrix to an output stream.