|
dune-common
2.3.1
|
A diagonal matrix of static size. More...
#include <dune/common/diagonalmatrix.hh>
Public Types | |
| enum | { blocklevel = 1 } |
| We are at the leaf of the block recursion. More... | |
| enum | { rows = n, cols = n } |
| export size More... | |
| typedef K | value_type |
| export the type representing the field More... | |
| typedef value_type | field_type |
| typedef K | block_type |
| export the type representing the components More... | |
| typedef std::size_t | size_type |
| The type used for the index access and size operations. More... | |
| typedef DiagonalRowVector< K, n > | row_type |
| Each row is implemented by a field vector. More... | |
| typedef row_type | reference |
| typedef row_type | row_reference |
| typedef DiagonalRowVectorConst < K, n > | const_row_type |
| typedef const_row_type | const_reference |
| typedef const_row_type | const_row_reference |
| typedef ContainerWrapperIterator < const WrapperType, reference, reference > | Iterator |
| Iterator class for sequential access. More... | |
| typedef Iterator | iterator |
| typedef for stl compliant access More... | |
| typedef Iterator | RowIterator |
| rename the iterators for easier access More... | |
| typedef row_type::Iterator | ColIterator |
| rename the iterators for easier access More... | |
| typedef ContainerWrapperIterator < const WrapperType, const_reference, const_reference > | ConstIterator |
| Iterator class for sequential access. More... | |
| typedef ConstIterator | const_iterator |
| typedef for stl compliant access More... | |
| typedef ConstIterator | ConstRowIterator |
| rename the iterators for easier access More... | |
| typedef const_row_type::ConstIterator | ConstColIterator |
| rename the iterators for easier access More... | |
Public Member Functions | |
| size_type | size () const |
| DiagonalMatrix () | |
| Default constructor. More... | |
| DiagonalMatrix (const K &k) | |
| Constructor initializing the whole matrix with a scalar. More... | |
| DiagonalMatrix (const FieldVector< K, n > &diag) | |
| Constructor initializing the diagonal with a vector. More... | |
| DiagonalMatrix & | operator= (const K &k) |
| Assignment from a scalar. More... | |
| bool | identical (const DiagonalMatrix< K, n > &other) const |
| Check if matrix is the same object as the other matrix. More... | |
| Iterator | begin () |
| begin iterator More... | |
| Iterator | end () |
| end iterator More... | |
| Iterator | beforeEnd () |
| Iterator | beforeBegin () |
| ConstIterator | begin () const |
| begin iterator More... | |
| ConstIterator | end () const |
| end iterator More... | |
| ConstIterator | beforeEnd () const |
| ConstIterator | beforeBegin () const |
| DiagonalMatrix & | operator+= (const DiagonalMatrix &y) |
| vector space addition More... | |
| DiagonalMatrix & | operator-= (const DiagonalMatrix &y) |
| vector space subtraction More... | |
| DiagonalMatrix & | operator+= (const K &k) |
| vector space multiplication with scalar More... | |
| DiagonalMatrix & | operator-= (const K &k) |
| vector space division by scalar More... | |
| DiagonalMatrix & | operator*= (const K &k) |
| vector space multiplication with scalar More... | |
| DiagonalMatrix & | operator/= (const K &k) |
| vector space division by scalar More... | |
| bool | operator== (const DiagonalMatrix &other) const |
| comparison operator More... | |
| bool | operator!= (const DiagonalMatrix &other) const |
| incomparison operator More... | |
| template<class X , class Y > | |
| void | mv (const X &x, Y &y) const |
| y = A x More... | |
| template<class X , class Y > | |
| void | mtv (const X &x, Y &y) const |
| y = A^T x More... | |
| template<class X , class Y > | |
| void | umv (const X &x, Y &y) const |
| y += A x More... | |
| template<class X , class Y > | |
| void | umtv (const X &x, Y &y) const |
| y += A^T x More... | |
| template<class X , class Y > | |
| void | umhv (const X &x, Y &y) const |
| y += A^H x More... | |
| template<class X , class Y > | |
| void | mmv (const X &x, Y &y) const |
| y -= A x More... | |
| template<class X , class Y > | |
| void | mmtv (const X &x, Y &y) const |
| y -= A^T x More... | |
| template<class X , class Y > | |
| void | mmhv (const X &x, Y &y) const |
| y -= A^H x More... | |
| template<class X , class Y > | |
| void | usmv (const K &alpha, const X &x, Y &y) const |
| y += alpha A x More... | |
| template<class X , class Y > | |
| void | usmtv (const K &alpha, const X &x, Y &y) const |
| y += alpha A^T x More... | |
| template<class X , class Y > | |
| void | usmhv (const K &alpha, const X &x, Y &y) const |
| y += alpha A^H x More... | |
| double | frobenius_norm () const |
| frobenius norm: sqrt(sum over squared values of entries) More... | |
| double | frobenius_norm2 () const |
| square of frobenius norm, need for block recursion More... | |
| double | infinity_norm () const |
| infinity norm (row sum norm, how to generalize for blocks?) More... | |
| double | infinity_norm_real () const |
| simplified infinity norm (uses Manhattan norm for complex values) More... | |
| template<class V > | |
| void | solve (V &x, const V &b) const |
| Solve system A x = b. More... | |
| void | invert () |
| Compute inverse. More... | |
| K | determinant () const |
| calculates the determinant of this matrix More... | |
| size_type | N () const |
| number of blocks in row direction More... | |
| size_type | M () const |
| number of blocks in column direction More... | |
| bool | exists (size_type i, size_type j) const |
| return true when (i,j) is in pattern More... | |
| reference | operator[] (size_type i) |
| Return reference object as row replacement. More... | |
| const_reference | operator[] (size_type i) const |
| Return const_reference object as row replacement. More... | |
| const K & | diagonal (size_type i) const |
| Get const reference to diagonal entry. More... | |
| K & | diagonal (size_type i) |
| Get reference to diagonal entry. More... | |
| const FieldVector< K, n > & | diagonal () const |
| Get const reference to diagonal vector. More... | |
| FieldVector< K, n > & | diagonal () |
| Get reference to diagonal vector. More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &s, const DiagonalMatrix< K, n > &a) |
| Sends the matrix to an output stream. More... | |
A diagonal matrix of static size.
This is meant to be a replacement of FieldMatrix for the case that it is a diagonal matrix.
| K | Type used for scalars |
| n | Matrix size |
| typedef K Dune::DiagonalMatrix< K, n >::block_type |
export the type representing the components
| typedef row_type::Iterator Dune::DiagonalMatrix< K, n >::ColIterator |
rename the iterators for easier access
| typedef ConstIterator Dune::DiagonalMatrix< K, n >::const_iterator |
typedef for stl compliant access
| typedef const_row_type Dune::DiagonalMatrix< K, n >::const_reference |
| typedef const_row_type Dune::DiagonalMatrix< K, n >::const_row_reference |
| typedef DiagonalRowVectorConst<K,n> Dune::DiagonalMatrix< K, n >::const_row_type |
| typedef const_row_type::ConstIterator Dune::DiagonalMatrix< K, n >::ConstColIterator |
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 >::ConstRowIterator |
rename the iterators for easier access
| typedef value_type Dune::DiagonalMatrix< K, n >::field_type |
| 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 row_type Dune::DiagonalMatrix< K, n >::reference |
| typedef row_type Dune::DiagonalMatrix< K, n >::row_reference |
| typedef DiagonalRowVector<K,n> Dune::DiagonalMatrix< K, n >::row_type |
Each row is implemented by a field vector.
| typedef Iterator Dune::DiagonalMatrix< K, n >::RowIterator |
rename the iterators for easier access
| typedef std::size_t Dune::DiagonalMatrix< K, n >::size_type |
The type used for the index access and size operations.
| typedef K Dune::DiagonalMatrix< K, n >::value_type |
export the type representing the field
| anonymous enum |
| anonymous enum |
|
inline |
Default constructor.
|
inline |
Constructor initializing the whole matrix with a scalar.
|
inline |
Constructor initializing the diagonal with a vector.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
begin iterator
|
inline |
begin iterator
|
inline |
calculates the determinant of this matrix
|
inline |
Get const reference to diagonal entry.
Referenced by Dune::DiagonalMatrix< K, n >::operator!=(), and Dune::DiagonalMatrix< K, n >::operator==().
|
inline |
Get reference to diagonal entry.
|
inline |
Get const reference to diagonal vector.
|
inline |
Get reference to diagonal vector.
|
inline |
end iterator
|
inline |
end iterator
|
inline |
return true when (i,j) is in pattern
References DUNE_THROW.
|
inline |
frobenius norm: sqrt(sum over squared values of entries)
References Dune::DenseVector< V >::two_norm().
|
inline |
square of frobenius norm, need for block recursion
References Dune::DenseVector< V >::two_norm2().
|
inline |
Check if matrix is the same object as the other matrix.
|
inline |
infinity norm (row sum norm, how to generalize for blocks?)
References Dune::DenseVector< V >::infinity_norm().
|
inline |
simplified infinity norm (uses Manhattan norm for complex values)
References Dune::DenseVector< V >::infinity_norm_real().
|
inline |
Compute inverse.
|
inline |
number of blocks in column direction
Referenced by Dune::DiagonalMatrix< K, n >::mmhv(), Dune::DiagonalMatrix< K, n >::mmtv(), Dune::DiagonalMatrix< K, n >::mmv(), Dune::DiagonalMatrix< K, n >::mv(), Dune::DiagonalMatrix< K, n >::umhv(), Dune::DiagonalMatrix< K, n >::umtv(), Dune::DiagonalMatrix< K, n >::umv(), Dune::DiagonalMatrix< K, n >::usmhv(), Dune::DiagonalMatrix< K, n >::usmtv(), and Dune::DiagonalMatrix< K, n >::usmv().
|
inline |
y -= A^H x
References Dune::conjugateComplex(), DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y -= A^T x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y -= A x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y = A^T x
References Dune::DiagonalMatrix< K, n >::mv().
|
inline |
y = A x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
Referenced by Dune::DiagonalMatrix< K, n >::mtv().
|
inline |
number of blocks in row direction
Referenced by Dune::DiagonalMatrix< K, n >::mmhv(), Dune::DiagonalMatrix< K, n >::mmtv(), Dune::DiagonalMatrix< K, n >::mmv(), Dune::DiagonalMatrix< K, n >::mv(), Dune::DiagonalMatrix< K, n >::umhv(), Dune::DiagonalMatrix< K, n >::umtv(), Dune::DiagonalMatrix< K, n >::umv(), Dune::DiagonalMatrix< K, n >::usmhv(), Dune::DiagonalMatrix< K, n >::usmtv(), and Dune::DiagonalMatrix< K, n >::usmv().
|
inline |
incomparison operator
References Dune::DiagonalMatrix< K, n >::diagonal().
|
inline |
vector space multiplication with scalar
|
inline |
vector space addition
|
inline |
vector space multiplication with scalar
|
inline |
vector space subtraction
|
inline |
vector space division by scalar
|
inline |
vector space division by scalar
|
inline |
Assignment from a scalar.
|
inline |
comparison operator
References Dune::DiagonalMatrix< K, n >::diagonal().
|
inline |
Return reference object as row replacement.
|
inline |
Return const_reference object as row replacement.
|
inline |
References Dune::DiagonalMatrix< K, n >::rows.
|
inline |
Solve system A x = b.
|
inline |
y += A^H x
References Dune::conjugateComplex(), DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y += A^T x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y += A x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y += alpha A^H x
References Dune::conjugateComplex(), DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y += alpha A^T x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
inline |
y += alpha A x
References DUNE_THROW, Dune::DiagonalMatrix< K, n >::M(), and Dune::DiagonalMatrix< K, n >::N().
|
friend |
Sends the matrix to an output stream.
1.8.7