dune-common 2.9.0
Loading...
Searching...
No Matches
Files | Namespaces | Classes | Typedefs | Functions | Variables
Dense Matrix and Vector Template Library

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
 
namespace  Dune::fvmeta
 

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, referenceDune::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_referenceDune::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.
 
DiagonalMatrixDune::DiagonalMatrix< K, n >::operator= (const K &k)
 Assignment from a scalar.
 
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
 
DiagonalMatrixDune::DiagonalMatrix< K, n >::operator+= (const DiagonalMatrix &y)
 vector space addition
 
DiagonalMatrixDune::DiagonalMatrix< K, n >::operator-= (const DiagonalMatrix &y)
 vector space subtraction
 
DiagonalMatrixDune::DiagonalMatrix< K, n >::operator+= (const K &k)
 vector space multiplication with scalar
 
DiagonalMatrixDune::DiagonalMatrix< K, n >::operator-= (const K &k)
 vector space division by scalar
 
DiagonalMatrixDune::DiagonalMatrix< K, n >::operator*= (const K &k)
 vector space multiplication with scalar
 
DiagonalMatrixDune::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.
 
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_typeDune::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
 
DiagonalRowVectorConstDune::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.
 
DiagonalRowVectorDune::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 ()
 
DiagonalRowVectorDune::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 >
ContainerWrapperIteratorDune::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
 
Dune::ContainerWrapperIterator< CW, T, R >::dereference () const
 
void Dune::ContainerWrapperIterator< CW, T, R >::increment ()
 
void Dune::ContainerWrapperIterator< CW, T, R >::decrement ()
 
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_
 

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::DiagonalRowVectorConst< K, n >::block_type

export the type representing the components

◆ block_type [3/3]

template<class K , int n>
typedef K Dune::DiagonalRowVector< 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::DiagonalRowVectorConst< K, n >::const_iterator

typedef for stl compliant access

◆ const_iterator [3/3]

template<class K , int n>
typedef ConstIterator Dune::DiagonalRowVector< 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::DiagonalRowVectorConst< 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::DiagonalRowVector< 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 FieldTraits<K>::field_type Dune::FieldTraits< DiagonalMatrix< K, n > >::field_type

◆ 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 K Dune::DiagonalRowVector< K, n >::field_type

export the type representing the field

◆ 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 [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 ContainerWrapperIterator<DiagonalRowVector<K,n>, K, K&> Dune::DiagonalRowVector< K, n >::Iterator

Iterator class for sequential 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::DiagonalRowVectorConst< 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::DiagonalRowVector< 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>
static void Dune::DenseMatrixAssigner< DenseMatrix, DiagonalMatrix< field, N > >::apply ( DenseMatrix denseMatrix,
DiagonalMatrix< field, N > const &  rhs 
)
inlinestatic

◆ 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>
Iterator Dune::DiagonalRowVector< K, n >::beforeBegin ( )
inline
Returns
an iterator that is positioned before the first row of the matrix.

◆ beforeBegin() [3/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() [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>
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() [3/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() [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>
Iterator Dune::DiagonalRowVector< K, n >::begin ( )
inline

begin iterator

◆ begin() [3/4]

template<class K , int n>
ConstIterator Dune::DiagonalMatrix< K, n >::begin ( ) const
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>
const K & Dune::DiagonalRowVectorConst< K, n >::diagonal ( ) const
inline

the diagonal value

◆ diagonal() [4/5]

template<class K , int n>
K & Dune::DiagonalMatrix< K, n >::diagonal ( size_type  i)
inline

Get reference to diagonal entry.

◆ diagonal() [5/5]

template<class K , int n>
const K & Dune::DiagonalMatrix< K, n >::diagonal ( size_type  i) const
inline

Get const reference to diagonal entry.

◆ DiagonalMatrix() [1/4]

template<class K , int n>
constexpr Dune::DiagonalMatrix< K, n >::DiagonalMatrix ( )
constexprdefault

Default constructor.

◆ DiagonalMatrix() [2/4]

template<class K , int n>
Dune::DiagonalMatrix< K, n >::DiagonalMatrix ( const FieldVector< K, n > &  diag)
inline

Constructor initializing the diagonal with a vector.

◆ DiagonalMatrix() [3/4]

template<class K , int n>
Dune::DiagonalMatrix< K, n >::DiagonalMatrix ( const K &  k)
inline

Constructor initializing the whole matrix with a scalar.

◆ DiagonalMatrix() [4/4]

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 
)
inlineexplicit

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 
)
inlineexplicit

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>
Iterator Dune::DiagonalRowVector< K, n >::end ( )
inline

end iterator

◆ end() [3/4]

template<class K , int n>
ConstIterator Dune::DiagonalMatrix< K, n >::end ( ) const
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>
static constexpr size_type Dune::DiagonalMatrix< K, n >::M ( )
inlinestaticconstexpr

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>
static constexpr size_type Dune::DiagonalMatrix< K, n >::N ( )
inlinestaticconstexpr

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>
DiagonalRowVectorConst * Dune::DiagonalRowVectorConst< K, n >::operator& ( )
inlineprotected

◆ operator&() [2/2]

template<class K , int n>
DiagonalRowVector * Dune::DiagonalRowVector< K, n >::operator& ( )
inlineprotected

◆ 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 MAT >
std::ostream & Dune::operator<< ( std::ostream &  s,
const DenseMatrix< MAT > &  a 
)

Sends the matrix to an output stream.

◆ operator<<() [2/2]

template<typename V >
std::ostream & operator<< ( std::ostream &  s,
const DenseVector< V > &  v 
)
related

Write a DenseVector to an output stream.

Parameters
[in]sstd :: ostream to write to
[in]vDenseVector to write
Returns
the output stream (s)

◆ operator=() [1/3]

template<class K , int n>
DiagonalMatrix & Dune::DiagonalMatrix< K, n >::operator= ( const K &  k)
inline

Assignment from a scalar.

◆ operator=() [2/3]

template<class K , int n>
DiagonalRowVector & Dune::DiagonalRowVector< K, n >::operator= ( const K &  k)
inline

Assignment operator for scalar.

◆ operator=() [3/3]

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

◆ 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]instd :: istream to read from
[out]vDynamicVector 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]instd :: istream to read from
[out]vFieldVector 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>
K & Dune::DiagonalRowVector< K, n >::operator[] ( size_type  i)
inline

random access

◆ operator[]() [3/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[]() [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
inlineprotected

◆ 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
inlineprotected

◆ 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>
static constexpr size_type Dune::DiagonalMatrix< K, n >::size ( )
inlinestaticconstexpr

◆ 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>
constexpr int Dune::DiagonalMatrix< K, n >::blocklevel = 1
staticconstexpr

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

◆ blocklevel [2/2]

template<class K , int n>
constexpr int Dune::DiagonalRowVectorConst< K, n >::blocklevel = 1
staticconstexpr

The number of block levels we contain.

◆ cols

template<class K , int n>
constexpr int Dune::DiagonalMatrix< K, n >::cols = n
staticconstexpr

The number of columns.

◆ dimension

template<class K , int n>
constexpr int Dune::DiagonalRowVectorConst< K, n >::dimension = n
staticconstexpr

◆ 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>
constexpr int Dune::DiagonalMatrix< K, n >::rows = n
staticconstexpr

The number of rows.

◆ size

template<class K , int n>
constexpr int Dune::DiagonalRowVectorConst< K, n >::size = n
staticconstexpr

The size of this vector.