A dense n x m matrix. More...
#include <dune/common/fmatrix.hh>
Public Types | |
enum | { rows = ROWS, cols = COLS } |
export size More... | |
typedef Base::size_type | size_type |
The type used for the index access and size operation. | |
typedef Base::row_type | row_type |
The type used to represent a row (must fulfill the Dune::DenseVector interface). | |
typedef Base::row_reference | row_reference |
The type used to represent a reference to a row (usually row_type &). | |
typedef Base::const_row_reference | const_row_reference |
The type used to represent a reference to a constant row (usually const row_type &). | |
enum | |
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 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 | |
FieldMatrix () | |
Default constructor. | |
FieldMatrix (std::initializer_list< Dune::FieldVector< K, cols > > const &l) | |
Constructor initializing the matrix from a list of vector. | |
template<class T , typename = std::enable_if_t<HasDenseMatrixAssigner<FieldMatrix, T>::value>> | |
FieldMatrix (T const &rhs) | |
template<typename T , int rows, int cols> | |
FieldMatrix & | operator= (FieldMatrix< T, rows, cols > const &rhs) |
template<int l> | |
FieldMatrix< K, l, cols > | leftmultiplyany (const FieldMatrix< K, l, rows > &M) const |
Multiplies M from the left to this matrix, this matrix is not modified. | |
template<int r, int c> | |
FieldMatrix & | rightmultiply (const FieldMatrix< K, r, c > &M) |
Multiplies M from the right to this matrix. | |
template<int l> | |
FieldMatrix< K, rows, l > | rightmultiplyany (const FieldMatrix< K, cols, l > &M) const |
Multiplies M from the right to this matrix, this matrix is not modified. | |
constexpr size_type | mat_rows () const |
constexpr size_type | mat_cols () const |
row_reference | mat_access (size_type i) |
const_row_reference | mat_access (size_type i) const |
row_reference | operator[] (size_type i) |
random access | |
const_row_reference | operator[] (size_type i) const |
size_type | size () const |
size method (number of rows) | |
Iterator | begin () |
begin iterator | |
ConstIterator | begin () const |
begin iterator | |
Iterator | end () |
end iterator | |
ConstIterator | end () const |
end iterator | |
Iterator | beforeEnd () |
ConstIterator | beforeEnd () const |
Iterator | beforeBegin () |
ConstIterator | beforeBegin () const |
DenseMatrix & | operator+= (const DenseMatrix< Other > &y) |
vector space addition | |
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 | |
DenseMatrix & | axpy (const field_type &k, const DenseMatrix< Other > &y) |
vector space axpy operation (*this += k y) | |
bool | operator== (const DenseMatrix< Other > &y) const |
Binary matrix comparison. | |
bool | operator!= (const DenseMatrix< Other > &y) const |
Binary matrix incomparison. | |
void | mv (const X &x, Y &y) const |
y = A x | |
void | mtv (const X &x, Y &y) const |
y = A^T x | |
void | umv (const X &x, Y &y) const |
y += A x | |
void | umtv (const X &x, Y &y) const |
y += A^T x | |
void | umhv (const X &x, Y &y) const |
y += A^H x | |
void | mmv (const X &x, Y &y) const |
y -= A x | |
void | mmtv (const X &x, Y &y) const |
y -= A^T x | |
void | mmhv (const X &x, Y &y) const |
y -= A^H x | |
void | usmv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A x | |
void | usmtv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const |
y += alpha A^T x | |
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 | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) | |
FieldTraits< vt >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
FieldTraits< vt >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) | |
void | solve (V &x, const V &b) const |
Solve system A x = b. | |
void | invert () |
Compute inverse. | |
field_type | determinant () const |
calculates the determinant of this matrix | |
FieldMatrix< K, ROWS, COLS > & | leftmultiply (const DenseMatrix< M2 > &M) |
Multiplies M from the left to this matrix. | |
FieldMatrix< K, ROWS, COLS > & | 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 |
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.
typedef Traits::value_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::block_type [inherited] |
export the type representing the components
typedef std::remove_reference<row_reference>::type::Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::ColIterator [inherited] |
rename the iterators for easier access
typedef ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::const_iterator [inherited] |
typedef for stl compliant access
typedef Base::const_row_reference Dune::FieldMatrix< K, ROWS, COLS >::const_row_reference |
The type used to represent a reference to a constant row (usually const row_type &).
Reimplemented from Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >.
typedef std::remove_reference<const_row_reference>::type::ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::ConstColIterator [inherited] |
rename the iterators for easier access
typedef DenseIterator<const DenseMatrix,const row_type,const_row_reference> Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::ConstIterator [inherited] |
Iterator class for sequential access.
typedef ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::ConstRowIterator [inherited] |
rename the iterators for easier access
typedef Traits::derived_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::derived_type [inherited] |
type of derived matrix class
typedef Traits::value_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::field_type [inherited] |
export the type representing the field
typedef Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::iterator [inherited] |
typedef for stl compliant access
typedef DenseIterator<DenseMatrix,row_type,row_reference> Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::Iterator [inherited] |
Iterator class for sequential access.
typedef Base::row_reference Dune::FieldMatrix< K, ROWS, COLS >::row_reference |
The type used to represent a reference to a row (usually row_type &).
Reimplemented from Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >.
typedef Base::row_type Dune::FieldMatrix< K, ROWS, COLS >::row_type |
The type used to represent a row (must fulfill the Dune::DenseVector interface).
Reimplemented from Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >.
typedef Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::RowIterator [inherited] |
rename the iterators for easier access
typedef Base::size_type Dune::FieldMatrix< K, ROWS, COLS >::size_type |
The type used for the index access and size operation.
Reimplemented from Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >.
typedef Traits::value_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::value_type [inherited] |
export the type representing the field
anonymous enum |
anonymous enum [inherited] |
We are at the leaf of the block recursion.
Dune::FieldMatrix< K, ROWS, COLS >::FieldMatrix | ( | ) | [inline] |
Default constructor.
Dune::FieldMatrix< K, ROWS, COLS >::FieldMatrix | ( | std::initializer_list< Dune::FieldVector< K, cols > > const & | l | ) | [inline] |
Constructor initializing the matrix from a list of vector.
Dune::FieldMatrix< K, ROWS, COLS >::FieldMatrix | ( | T const & | rhs | ) | [inline] |
DenseMatrix& Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::axpy | ( | const field_type & | k, | |
const DenseMatrix< Other > & | y | |||
) | [inline, inherited] |
vector space axpy operation (*this += k y)
ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::beforeBegin | ( | ) | const [inline, inherited] |
Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::beforeBegin | ( | ) | [inline, inherited] |
ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::beforeEnd | ( | ) | const [inline, inherited] |
Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::beforeEnd | ( | ) | [inline, inherited] |
ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::begin | ( | ) | const [inline, inherited] |
begin iterator
Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::begin | ( | ) | [inline, inherited] |
begin iterator
size_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::cols | ( | ) | const [inline, inherited] |
number of columns
field_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::determinant | ( | ) | const [inherited] |
calculates the determinant of this matrix
ConstIterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::end | ( | ) | const [inline, inherited] |
end iterator
Iterator Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::end | ( | ) | [inline, inherited] |
end iterator
bool Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::exists | ( | size_type | i, | |
size_type | j | |||
) | const [inline, inherited] |
return true when (i,j) is in pattern
FieldTraits<value_type>::real_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::frobenius_norm | ( | ) | const [inline, inherited] |
frobenius norm: sqrt(sum over squared values of entries)
FieldTraits<value_type>::real_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::frobenius_norm2 | ( | ) | const [inline, inherited] |
square of frobenius norm, need for block recursion
FieldTraits<vt>::real_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::infinity_norm | ( | ) | const [inline, inherited] |
infinity norm (row sum norm, how to generalize for blocks?)
FieldTraits<vt>::real_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::infinity_norm | ( | ) | const [inline, inherited] |
infinity norm (row sum norm, how to generalize for blocks?)
FieldTraits<vt>::real_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::infinity_norm_real | ( | ) | const [inline, inherited] |
simplified infinity norm (uses Manhattan norm for complex values)
FieldTraits<vt>::real_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::infinity_norm_real | ( | ) | const [inline, inherited] |
simplified infinity norm (uses Manhattan norm for complex values)
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::invert | ( | ) | [inherited] |
Compute inverse.
FMatrixError | if the matrix is singular |
FieldMatrix< K, ROWS, COLS > & Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::leftmultiply | ( | const DenseMatrix< M2 > & | M | ) | [inline, inherited] |
Multiplies M from the left to this matrix.
FieldMatrix<K,l,cols> Dune::FieldMatrix< K, ROWS, COLS >::leftmultiplyany | ( | const FieldMatrix< K, l, rows > & | M | ) | const [inline] |
Multiplies M from the left to this matrix, this matrix is not modified.
size_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::M | ( | ) | const [inline, inherited] |
number of columns
const_row_reference Dune::FieldMatrix< K, ROWS, COLS >::mat_access | ( | size_type | i | ) | const [inline] |
row_reference Dune::FieldMatrix< K, ROWS, COLS >::mat_access | ( | size_type | i | ) | [inline] |
constexpr size_type Dune::FieldMatrix< K, ROWS, COLS >::mat_cols | ( | ) | const [inline] |
constexpr size_type Dune::FieldMatrix< K, ROWS, COLS >::mat_rows | ( | ) | const [inline] |
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mmhv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y -= A^H x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mmtv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y -= A^T x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mmv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y -= A x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mtv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y = A^T x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::mv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y = A x
size_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::N | ( | ) | const [inline, inherited] |
number of rows
bool Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator!= | ( | const DenseMatrix< Other > & | y | ) | const [inline, inherited] |
Binary matrix incomparison.
DenseMatrix& Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator*= | ( | const field_type & | k | ) | [inline, inherited] |
vector space multiplication with scalar
DenseMatrix& Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator+= | ( | const DenseMatrix< Other > & | y | ) | [inline, inherited] |
vector space addition
DenseMatrix& Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator-= | ( | const DenseMatrix< Other > & | y | ) | [inline, inherited] |
vector space subtraction
DenseMatrix& Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator/= | ( | const field_type & | k | ) | [inline, inherited] |
vector space division by scalar
FieldMatrix& Dune::FieldMatrix< K, ROWS, COLS >::operator= | ( | FieldMatrix< T, rows, cols > const & | rhs | ) | [inline] |
bool Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator== | ( | const DenseMatrix< Other > & | y | ) | const [inline, inherited] |
Binary matrix comparison.
const_row_reference Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator[] | ( | size_type | i | ) | const [inline, inherited] |
row_reference Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::operator[] | ( | size_type | i | ) | [inline, inherited] |
random access
FieldMatrix< K, ROWS, COLS > & Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::rightmultiply | ( | const DenseMatrix< M2 > & | M | ) | [inline, inherited] |
Multiplies M from the right to this matrix.
FieldMatrix& Dune::FieldMatrix< K, ROWS, COLS >::rightmultiply | ( | const FieldMatrix< K, r, c > & | M | ) | [inline] |
Multiplies M from the right to this matrix.
FieldMatrix<K,rows,l> Dune::FieldMatrix< K, ROWS, COLS >::rightmultiplyany | ( | const FieldMatrix< K, cols, l > & | M | ) | const [inline] |
Multiplies M from the right to this matrix, this matrix is not modified.
size_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::rows | ( | ) | const [inline, inherited] |
number of rows
size_type Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::size | ( | ) | const [inline, inherited] |
size method (number of rows)
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::solve | ( | V & | x, | |
const V & | b | |||
) | const [inline, inherited] |
Solve system A x = b.
FMatrixError | if the matrix is singular |
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::umhv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y += A^H x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::umtv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y += A^T x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::umv | ( | const X & | x, | |
Y & | y | |||
) | const [inline, inherited] |
y += A x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::usmhv | ( | const typename FieldTraits< Y >::field_type & | alpha, | |
const X & | x, | |||
Y & | y | |||
) | const [inline, inherited] |
y += alpha A^H x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::usmtv | ( | const typename FieldTraits< Y >::field_type & | alpha, | |
const X & | x, | |||
Y & | y | |||
) | const [inline, inherited] |
y += alpha A^T x
void Dune::DenseMatrix< FieldMatrix< K, ROWS, COLS > >::usmv | ( | const typename FieldTraits< Y >::field_type & | alpha, | |
const X & | x, | |||
Y & | y | |||
) | const [inline, inherited] |
y += alpha A x