|
|
typedef K | field_type |
| | The type representing numbers.
|
| |
|
typedef K | block_type |
| | The type representing matrix entries (which may be matrices themselves)
|
| |
|
typedef std::size_t | size_type |
| | The type used for the indices and sizes.
|
| |
| typedef DiagonalRowVector< K, n > | row_type |
| | Type of a single matrix row. More...
|
| |
|
typedef DiagonalRowVectorConst< K, n > | const_row_type |
| | Const type of a single row.
|
| |
|
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
|
| |
|
|
| ScaledIdentityMatrix () |
| | Default constructor.
|
| |
|
| ScaledIdentityMatrix (const K &k) |
| | Constructor initializing the whole matrix with a scalar.
|
| |
|
ScaledIdentityMatrix & | operator= (const K &k) |
| | Assignment from scalar.
|
| |
| bool | identical (const ScaledIdentityMatrix< K, n > &other) const |
| | Check if matrix is identical to other matrix. More...
|
| |
|
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 |
| |
|
bool | operator== (const ScaledIdentityMatrix &other) const |
| | Test for equality.
|
| |
|
bool | operator!= (const ScaledIdentityMatrix &other) const |
| | Test for inequality.
|
| |
| template<class V > |
| void | solve (V &x, const V &b) const |
| | Solve linear system A x = b. More...
|
| |
|
void | invert () |
| | Compute inverse.
|
| |
|
K | 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 if (i,j) is in the matrix pattern, i.e., if i==j.
|
| |
|
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.
|
| |
|
|
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 |
| | The Frobenius norm.
|
| |
|
FieldTraits< field_type >::real_type | frobenius_norm2 () const |
| | The square of the Frobenius norm.
|
| |
| FieldTraits< field_type >::real_type | infinity_norm () const |
| | The row sum norm. More...
|
| |
|
FieldTraits< field_type >::real_type | infinity_norm_real () const |
| | simplified infinity norm (uses Manhattan norm for complex values)
|
| |
|
|
ScaledIdentityMatrix & | operator+= (const ScaledIdentityMatrix &y) |
| | Vector space addition.
|
| |
|
ScaledIdentityMatrix & | operator-= (const ScaledIdentityMatrix &y) |
| | Vector space subtraction.
|
| |
| ScaledIdentityMatrix & | operator+= (const K &k) |
| | Addition of a scalar to the diagonal. More...
|
| |
| ScaledIdentityMatrix & | operator-= (const K &k) |
| | Subtraction of a scalar from the diagonal. More...
|
| |
|
ScaledIdentityMatrix & | operator*= (const K &k) |
| | Vector space multiplication with scalar.
|
| |
|
ScaledIdentityMatrix & | operator/= (const K &k) |
| | Vector space division by scalar.
|
| |
|
template<class Scalar , std::enable_if_t< IsNumber< Scalar >::value, int > = 0> |
| auto | operator* (const ScaledIdentityMatrix &matrix, Scalar scalar) |
| | Vector space multiplication with scalar.
|
| |
|
template<class Scalar , std::enable_if_t< IsNumber< Scalar >::value, int > = 0> |
| auto | operator* (Scalar scalar, const ScaledIdentityMatrix &matrix) |
| | Vector space multiplication with scalar.
|
| |
template<class OtherScalar >
requires requires(K k, OtherScalar otherScalar) { k + otherScalar; } |
| auto & | operator+= (FieldMatrix< OtherScalar, n, n > &fieldMatrix, const ScaledIdentityMatrix &matrix) |
| | Addition of ScaledIdentityMatrix to FieldMatrix.
|
| |
template<class OtherScalar >
requires requires(K k, OtherScalar otherScalar) { k + otherScalar; } |
| auto | operator+ (const FieldMatrix< OtherScalar, n, n > &fieldMatrix, const ScaledIdentityMatrix &matrix) |
| | Addition of ScaledIdentityMatrix to FieldMatrix.
|
| |
template<class OtherScalar >
requires requires(K k, OtherScalar otherScalar) { k + otherScalar; } |
| auto | operator+ (const ScaledIdentityMatrix &matrix, const FieldMatrix< OtherScalar, n, n > &fieldMatrix) |
| | Addition of FieldMatrix to ScaledIdentityMatrix.
|
| |
template<class OtherScalar >
requires requires(K k, OtherScalar otherScalar) { k + otherScalar; } |
| auto | operator+= (DiagonalMatrix< OtherScalar, n > &diagonalMatrix, const ScaledIdentityMatrix &matrix) |
| | Addition of ScaledIdentityMatrix to DiagonalMatrix.
|
| |
template<class OtherScalar >
requires requires(K k, OtherScalar otherScalar) { k + otherScalar; } |
| auto | operator+ (const DiagonalMatrix< OtherScalar, n > &diagonalMatrix, const ScaledIdentityMatrix &matrix) |
| | Addition of ScaledIdentityMatrix to DiagonalMatrix.
|
| |
template<class OtherScalar >
requires requires(K k, OtherScalar otherScalar) { k + otherScalar; } |
| auto | operator+ (const ScaledIdentityMatrix &matrix, const DiagonalMatrix< OtherScalar, n > &diagonalMatrix) |
| | Addition of DiagonalMatrix to ScaledIdentityMatrix.
|
| |
template<class K, int n>
class Dune::ScaledIdentityMatrix< K, n >
A multiple of the identity matrix of static size.
This class provides all operations specified by the dune-istl matrix API. The implementations exploit the fact that the matrix is a multiple of the identity.
- Template Parameters
-
| K | The number used for matrix entries |
| n | The number of matrix rows and columns |
- Warning
- If
m is an object of type ScaledIdentityMatrix, then code like will compile. However, the expression m[0][1] is not guaranteed to return 0. Rather, its behavior is undefined.