Dune Core Modules (2.5.0)
Dune::DenseMatrix< MAT > Class Template Reference
A dense n x m matrix. More...
#include <dune/common/densematrix.hh>
Public Types | |
enum | { blocklevel = 1 } |
We are at the leaf of the block recursion. More... | |
typedef Traits::derived_type | derived_type |
type of derived matrix class | |
typedef Traits::value_type | value_type |
export the type representing the field | |
typedef Traits::value_type | field_type |
export the type representing the field | |
typedef Traits::value_type | block_type |
export the type representing the components | |
typedef Traits::size_type | size_type |
The type used for the index access and size operation. | |
typedef Traits::row_type | row_type |
The type used to represent a row (must fulfill the Dune::DenseVector interface) | |
typedef Traits::row_reference | row_reference |
The type used to represent a reference to a row (usually row_type &) | |
typedef Traits::const_row_reference | const_row_reference |
The type used to represent a reference to a constant row (usually const row_type &) | |
typedef DenseIterator< DenseMatrix, row_type, row_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 std::remove_reference< row_reference >::type::Iterator | ColIterator |
rename the iterators for easier access | |
typedef DenseIterator< const DenseMatrix, const row_type, const_row_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 std::remove_reference< const_row_reference >::type::ConstIterator | ConstColIterator |
rename the iterators for easier access | |
Public Member Functions | |
row_reference | operator[] (size_type i) |
random access | |
size_type | size () const |
size method (number of rows) | |
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 |
template<class Other > | |
DenseMatrix & | operator+= (const DenseMatrix< Other > &y) |
vector space addition | |
template<class Other > | |
DenseMatrix & | operator-= (const DenseMatrix< Other > &y) |
vector space subtraction | |
DenseMatrix & | operator*= (const field_type &k) |
vector space multiplication with scalar | |
DenseMatrix & | operator/= (const field_type &k) |
vector space division by scalar | |
template<class Other > | |
DenseMatrix & | axpy (const field_type &k, const DenseMatrix< Other > &y) |
vector space axpy operation (*this += k y) | |
template<class Other > | |
bool | operator== (const DenseMatrix< Other > &y) const |
Binary matrix comparison. | |
template<class Other > | |
bool | operator!= (const DenseMatrix< Other > &y) const |
Binary matrix incomparison. | |
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 typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A x | |
template<class X , class Y > | |
void | 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 | usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A^H x | |
FieldTraits< value_type >::real_type | frobenius_norm () const |
frobenius norm: sqrt(sum over squared values of entries) | |
FieldTraits< value_type >::real_type | frobenius_norm2 () const |
square of frobenius norm, need for block recursion | |
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0> | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) | |
template<typename vt = value_type, typename std::enable_if<!has_nan< vt >::value, int >::type = 0> | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0> | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) | |
template<typename vt = value_type, typename std::enable_if< has_nan< vt >::value, int >::type = 0> | |
FieldTraits< vt >::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. More... | |
void | invert () |
Compute inverse. More... | |
field_type | determinant () const |
calculates the determinant of this matrix | |
template<typename M2 > | |
MAT & | leftmultiply (const DenseMatrix< M2 > &M) |
Multiplies M from the left to this matrix. | |
template<typename M2 > | |
MAT & | rightmultiply (const DenseMatrix< M2 > &M) |
Multiplies M from the right to this matrix. | |
size_type | N () const |
number of rows | |
size_type | M () const |
number of columns | |
size_type | rows () const |
number of rows | |
size_type | cols () const |
number of columns | |
bool | exists (size_type i, size_type j) const |
return true when (i,j) is in pattern | |
Detailed Description
template<typename MAT>
class Dune::DenseMatrix< MAT >
class Dune::DenseMatrix< MAT >
A dense n x m matrix.
Matrices represent linear maps from a vector space V to a vector space W. This class represents such a linear map by storing a two-dimensional array of numbers of a given field type K. The number of rows and columns is given at compile time.
- Template Parameters
-
MAT type of the matrix implementation
Member Enumeration Documentation
◆ anonymous enum
template<typename MAT >
anonymous enum |
Member Function Documentation
◆ beforeBegin() [1/2]
template<typename MAT >
|
inline |
- Returns
- an iterator that is positioned before the first entry of the vector.
◆ beforeBegin() [2/2]
template<typename MAT >
|
inline |
- Returns
- an iterator that is positioned before the first entry of the vector.
◆ beforeEnd() [1/2]
template<typename MAT >
|
inline |
- Returns
- an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.
References Dune::DenseMatrix< MAT >::rows().
◆ beforeEnd() [2/2]
template<typename MAT >
|
inline |
- Returns
- an iterator that is positioned before the end iterator of the vector. i.e. at the last element
References Dune::DenseMatrix< MAT >::rows().
◆ invert()
template<typename MAT >
void Dune::DenseMatrix< MAT >::invert | ( | ) |
Compute inverse.
- Exceptions
-
FMatrixError if the matrix is singular
◆ solve()
template<typename MAT >
template<class V >
void Dune::DenseMatrix< MAT >::solve | ( | V & | x, |
const V & | b | ||
) | const |
Solve system A x = b.
- Exceptions
-
FMatrixError if the matrix is singular
The documentation for this class was generated from the following file:
- dune/common/densematrix.hh
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Nov 23, 23:29, 2024)