Dune Core Modules (2.8.0)

Dune::ScaledIdentityMatrix< K, n > Class Template Reference

A multiple of the identity matrix of static size. More...

#include <dune/istl/scaledidmatrix.hh>

Public Types

enum  { rows = n , cols = n }
 export size More...
 
typedef K field_type
 export the type representing the field
 
typedef K block_type
 export the type representing the components
 
typedef std::size_t size_type
 The type used for the index access and size operations.
 
typedef DiagonalRowVector< K, n > row_type
 Each row is implemented by a field vector.
 
typedef ContainerWrapperIterator< const WrapperType, reference, reference > Iterator
 Iterator class for sequential access.
 
typedef Iterator iterator
 typedef for stl compliant access
 
typedef Iterator RowIterator
 rename the iterators for easier access
 
typedef row_type::Iterator ColIterator
 rename the iterators for easier access
 
typedef ContainerWrapperIterator< const WrapperType, const_reference, const_reference > ConstIterator
 Iterator class for sequential access.
 
typedef ConstIterator const_iterator
 typedef for stl compliant access
 
typedef ConstIterator ConstRowIterator
 rename the iterators for easier access
 
typedef const_row_type::ConstIterator ConstColIterator
 rename the iterators for easier access
 

Public Member Functions

 ScaledIdentityMatrix ()
 Default constructor.
 
 ScaledIdentityMatrix (const K &k)
 Constructor initializing the whole matrix with a scalar.
 
Iterator begin ()
 begin iterator
 
Iterator end ()
 end iterator
 
Iterator beforeEnd ()
 
Iterator beforeBegin ()
 
ConstIterator begin () const
 begin iterator
 
ConstIterator end () const
 end iterator
 
ConstIterator beforeEnd () const
 
ConstIterator beforeBegin () const
 
ScaledIdentityMatrixoperator+= (const ScaledIdentityMatrix &y)
 vector space addition
 
ScaledIdentityMatrixoperator-= (const ScaledIdentityMatrix &y)
 vector space subtraction
 
ScaledIdentityMatrixoperator+= (const K &k)
 addition to the diagonal
 
ScaledIdentityMatrixoperator-= (const K &k)
 subtraction from the diagonal
 
ScaledIdentityMatrixoperator*= (const K &k)
 vector space multiplication with scalar
 
ScaledIdentityMatrixoperator/= (const K &k)
 vector space division by scalar
 
bool operator== (const ScaledIdentityMatrix &other) const
 comparison operator
 
bool operator!= (const ScaledIdentityMatrix &other) const
 incomparison operator
 
template<class X , class Y >
void mv (const X &x, Y &y) const
 y = A x
 
template<class X , class Y >
void mtv (const X &x, Y &y) const
 y = A^T x
 
template<class X , class Y >
void umv (const X &x, Y &y) const
 y += A x
 
template<class X , class Y >
void umtv (const X &x, Y &y) const
 y += A^T x
 
template<class X , class Y >
void umhv (const X &x, Y &y) const
 y += A^H x
 
template<class X , class Y >
void mmv (const X &x, Y &y) const
 y -= A x
 
template<class X , class Y >
void mmtv (const X &x, Y &y) const
 y -= A^T x
 
template<class X , class Y >
void mmhv (const X &x, Y &y) const
 y -= A^H x
 
template<class X , class Y >
void usmv (const K &alpha, const X &x, Y &y) const
 y += alpha A x
 
template<class X , class Y >
void usmtv (const K &alpha, const X &x, Y &y) const
 y += alpha A^T x
 
template<class X , class Y >
void usmhv (const K &alpha, const X &x, Y &y) const
 y += alpha A^H x
 
FieldTraits< field_type >::real_type frobenius_norm () const
 frobenius norm: sqrt(sum over squared values of entries)
 
FieldTraits< field_type >::real_type frobenius_norm2 () const
 square of frobenius norm, need for block recursion
 
FieldTraits< field_type >::real_type infinity_norm () const
 infinity norm (row sum norm, how to generalize for blocks?)
 
FieldTraits< field_type >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values)
 
template<class V >
void solve (V &x, const V &b) const
 Solve system A x = b.
 
void invert ()
 Compute inverse.
 
determinant () const
 calculates the determinant of this matrix
 
size_type N () const
 number of blocks in row direction
 
size_type M () const
 number of blocks in column direction
 
bool exists (size_type i, size_type j) const
 return true when (i,j) is in pattern
 
reference operator[] (size_type i)
 Return reference object as row replacement.
 
const_reference operator[] (size_type i) const
 Return const_reference object as row replacement.
 
const K & diagonal (size_type) const
 Get const reference to diagonal entry.
 
K & diagonal (size_type)
 Get reference to diagonal entry.
 
const K & scalar () const
 Get const reference to the scalar diagonal value.
 
K & scalar ()
 Get reference to the scalar diagonal value.
 

Static Public Attributes

static constexpr std::size_t blocklevel = 1
 We are at the leaf of the block recursion.
 

Detailed Description

template<class K, int n>
class Dune::ScaledIdentityMatrix< K, n >

A multiple of the identity matrix of static size.

Member Enumeration Documentation

◆ anonymous enum

template<class K , int n>
anonymous enum

export size

Enumerator
rows 

The number of rows.

cols 

The number of columns.

Member Function Documentation

◆ beforeBegin() [1/2]

template<class K , int n>
Iterator Dune::ScaledIdentityMatrix< K, n >::beforeBegin ( )
inline
Returns
an iterator that is positioned before the first row of the matrix.

◆ beforeBegin() [2/2]

template<class K , int n>
ConstIterator Dune::ScaledIdentityMatrix< K, n >::beforeBegin ( ) const
inline
Returns
an iterator that is positioned before the first row of the matrix.

◆ beforeEnd() [1/2]

template<class K , int n>
Iterator Dune::ScaledIdentityMatrix< 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/2]

template<class K , int n>
ConstIterator Dune::ScaledIdentityMatrix< K, n >::beforeEnd ( ) const
inline
Returns
an iterator that is positioned before the end iterator of the rows. i.e. at the last row.

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