1 #ifndef DUNE_COMMON_IDENTITYMATRIX_HH
2 #define DUNE_COMMON_IDENTITYMATRIX_HH
34 template<
class K,
int N >
48 template<
class X,
class Y >
49 void mv (
const X &x, Y &y )
const
55 template<
class X,
class Y >
56 void mtv (
const X &x, Y &y )
const
62 template<
class X,
class Y >
63 void umv (
const X &x, Y &y )
const
69 template<
class X,
class Y >
70 void umtv (
const X &x, Y &y )
const
76 template<
class X,
class Y >
77 void umhv (
const X &x, Y &y )
const
83 template<
class X,
class Y >
84 void mmv (
const X &x, Y &y )
const
90 template<
class X,
class Y >
91 void mmtv (
const X &x, Y &y )
const
97 template<
class X,
class Y >
98 void mmhv (
const X &x, Y &y )
const
104 template<
class X,
class Y >
111 template<
class X,
class Y >
118 template<
class X,
class Y >
152 for(
int i = 0; i < N; ++i )
160 #endif // #ifndef DUNE_COMMON_IDENTITYMATRIX_HH
FieldTraits< field_type >::real_type infinity_norm_real() const
simplified infinity norm (uses Manhattan norm for complex values)
Definition: identitymatrix.hh:143
void usmhv(const field_type &alpha, const X &x, Y &y) const
y += alpha A^H x
Definition: identitymatrix.hh:119
Read-only identity matrix.
Definition: identitymatrix.hh:35
void mmtv(const X &x, Y &y) const
y -= A^T x
Definition: identitymatrix.hh:91
std::size_t size_type
size type
Definition: identitymatrix.hh:40
void usmv(const field_type &alpha, const X &x, Y &y) const
y += alpha A x
Definition: identitymatrix.hh:105
void mv(const X &x, Y &y) const
y = A x
Definition: identitymatrix.hh:49
void mmv(const X &x, Y &y) const
y -= A x
Definition: identitymatrix.hh:84
FieldTraits< field_type >::real_type frobenius_norm2() const
square of frobenius norm, need for block recursion
Definition: identitymatrix.hh:131
DUNE_CONSTEXPR size_type rows() const
return number of rows
Definition: identitymatrix.hh:43
FieldTraits< field_type >::real_type infinity_norm() const
infinity norm (row sum norm, how to generalize for blocks?)
Definition: identitymatrix.hh:137
#define DUNE_CONSTEXPR
Definition: constexpr.hh:7
A dense n x m matrix.
Definition: densematrix.hh:37
void umhv(const X &x, Y &y) const
y += A^H x
Definition: identitymatrix.hh:77
void usmtv(const field_type &alpha, const X &x, Y &y) const
y += alpha A^T x
Definition: identitymatrix.hh:112
FieldTraits< field_type >::real_type frobenius_norm() const
frobenius norm: sqrt(sum over squared values of entries)
Definition: identitymatrix.hh:125
void mmhv(const X &x, Y &y) const
y -= A^H x
Definition: identitymatrix.hh:98
Type traits to determine the type of reals (when working with complex numbers)
T real_type
export the type representing the real type of the field
Definition: ftraits.hh:28
void umv(const X &x, Y &y) const
y += A x
Definition: identitymatrix.hh:63
void umtv(const X &x, Y &y) const
y += A^T x
Definition: identitymatrix.hh:70
K field_type
field type
Definition: identitymatrix.hh:38
DUNE_CONSTEXPR size_type cols() const
return number of columns
Definition: identitymatrix.hh:45
void mtv(const X &x, Y &y) const
y = A^T x
Definition: identitymatrix.hh:56
Some useful basic math stuff.
Implements a matrix constructed from a given type representing a field and compile-time given number ...