dune-istl
2.7.1
|
A Matrix class to support different block types. More...
#include <dune/istl/multitypeblockmatrix.hh>
Public Types | |
typedef MultiTypeBlockMatrix< FirstRow, Args... > | type |
using | size_type = std::size_t |
Type used for sizes. More... | |
typedef FirstRow::field_type | field_type |
Public Member Functions | |
template<size_type index> | |
auto | operator[] (const std::integral_constant< size_type, index > indexVariable) -> decltype(std::get< index >(*this)) |
Random-access operator. More... | |
template<size_type index> | |
auto | operator[] (const std::integral_constant< size_type, index > indexVariable) const -> decltype(std::get< index >(*this)) |
Const random-access operator. More... | |
template<typename T > | |
void | operator= (const T &newval) |
MultiTypeBlockMatrix & | operator*= (const field_type &k) |
vector space multiplication with scalar More... | |
MultiTypeBlockMatrix & | operator/= (const field_type &k) |
vector space division by scalar More... | |
MultiTypeBlockMatrix & | operator+= (const MultiTypeBlockMatrix &b) |
Add the entries of another matrix to this one. More... | |
MultiTypeBlockMatrix & | operator-= (const MultiTypeBlockMatrix &b) |
Subtract the entries of another matrix from this one. More... | |
template<typename X , typename Y > | |
void | mv (const X &x, Y &y) const |
y = A x More... | |
template<typename X , typename Y > | |
void | umv (const X &x, Y &y) const |
y += A x More... | |
template<typename X , typename Y > | |
void | mmv (const X &x, Y &y) const |
y -= A x More... | |
template<typename AlphaType , typename X , typename Y > | |
void | usmv (const AlphaType &alpha, const X &x, Y &y) const |
y += alpha A x More... | |
template<typename X , typename Y > | |
void | mtv (const X &x, Y &y) const |
y = A^T x More... | |
template<typename X , typename Y > | |
void | umtv (const X &x, Y &y) const |
y += A^T x More... | |
template<typename X , typename Y > | |
void | mmtv (const X &x, Y &y) const |
y -= A^T x More... | |
template<typename X , typename Y > | |
void | usmtv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A^T x More... | |
template<typename X , typename Y > | |
void | umhv (const X &x, Y &y) const |
y += A^H x More... | |
template<typename X , typename Y > | |
void | mmhv (const X &x, Y &y) const |
y -= A^H x More... | |
template<typename X , typename Y > | |
void | usmhv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A^H x More... | |
auto | frobenius_norm2 () const |
square of frobenius norm, need for block recursion More... | |
FieldTraits< field_type >::real_type | frobenius_norm () const |
frobenius norm: sqrt(sum over squared values of entries) More... | |
auto | infinity_norm () const |
Bastardized version of the infinity-norm / row-sum norm. More... | |
auto | infinity_norm_real () const |
Bastardized version of the infinity-norm / row-sum norm. More... | |
Static Public Member Functions | |
static constexpr size_type | N () |
Return the number of matrix rows. More... | |
static constexpr size_type | size () |
Return the number of matrix rows. More... | |
static constexpr size_type | M () |
Return the number of matrix columns. More... | |
A Matrix class to support different block types.
This matrix class combines MultiTypeBlockVector elements as rows.