dune-istl
3.0-git
|
A generic dynamic dense matrix. More...
#include <dune/istl/matrix.hh>
Public Types | |
enum | { blocklevel = T::blocklevel+1 } |
typedef T::field_type | field_type |
Export the type representing the underlying field. More... | |
typedef T | block_type |
Export the type representing the components. More... | |
typedef A | allocator_type |
Export the allocator. More... | |
typedef MatrixImp::DenseMatrixBase< T, A >::window_type | row_type |
The type implementing a matrix row. More... | |
typedef A::size_type | size_type |
Type for indices and sizes. More... | |
typedef MatrixImp::DenseMatrixBase< T, A >::Iterator | RowIterator |
Iterator over the matrix rows. More... | |
typedef row_type::iterator | ColIterator |
Iterator for the entries of each row. More... | |
typedef MatrixImp::DenseMatrixBase< T, A >::ConstIterator | ConstRowIterator |
Const iterator over the matrix rows. More... | |
typedef row_type::const_iterator | ConstColIterator |
Const iterator for the entries of each row. More... | |
Public Member Functions | |
Matrix () | |
Create empty matrix. More... | |
Matrix (size_type rows, size_type cols) | |
Create uninitialized matrix of size rows x cols. More... | |
void | setSize (size_type rows, size_type cols) |
Change the matrix size. More... | |
RowIterator | begin () |
Get iterator to first row. More... | |
RowIterator | end () |
Get iterator to one beyond last row. More... | |
RowIterator | beforeEnd () |
RowIterator | beforeBegin () |
ConstRowIterator | begin () const |
Get const iterator to first row. More... | |
ConstRowIterator | end () const |
Get const iterator to one beyond last row. More... | |
ConstRowIterator | beforeEnd () const |
ConstRowIterator | beforeBegin () const |
Matrix & | operator= (const field_type &t) |
Assignment from scalar. More... | |
row_type | operator[] (size_type row) |
The index operator. More... | |
const row_type | operator[] (size_type row) const |
The const index operator. More... | |
size_type | N () const |
Return the number of rows. More... | |
size_type | M () const |
Return the number of columns. More... | |
Matrix< T > & | operator*= (const field_type &scalar) |
Multiplication with a scalar. More... | |
Matrix< T > & | operator/= (const field_type &scalar) |
Division by a scalar. More... | |
Matrix & | operator+= (const Matrix &b) |
Add the entries of another matrix to this one. More... | |
Matrix & | operator-= (const Matrix &b) |
Subtract the entries of another matrix from this one. More... | |
Matrix | transpose () const |
Return the transpose of the matrix. More... | |
template<class X , class Y > | |
void | mv (const X &x, Y &y) const |
y = A x More... | |
template<class X , class Y > | |
void | mtv (const X &x, Y &y) const |
y = A^T x More... | |
template<class X , class Y > | |
void | umv (const X &x, Y &y) const |
y += A x More... | |
template<class X , class Y > | |
void | mmv (const X &x, Y &y) const |
y -= A x More... | |
template<class X , class Y > | |
void | usmv (const field_type &alpha, const X &x, Y &y) const |
![]() | |
template<class X , class Y > | |
void | umtv (const X &x, Y &y) const |
y += A^T x More... | |
template<class X , class Y > | |
void | mmtv (const X &x, Y &y) const |
y -= A^T x More... | |
template<class X , class Y > | |
void | usmtv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A^T x More... | |
template<class X , class Y > | |
void | umhv (const X &x, Y &y) const |
y += A^H x More... | |
template<class X , class Y > | |
void | mmhv (const X &x, Y &y) const |
y -= A^H x More... | |
template<class X , class Y > | |
void | usmhv (const field_type &alpha, const X &x, Y &y) const |
y += alpha A^H x More... | |
FieldTraits< field_type >::real_type | frobenius_norm () const |
frobenius norm: sqrt(sum over squared values of entries) More... | |
FieldTraits< field_type >::real_type | frobenius_norm2 () const |
square of frobenius norm, need for block recursion More... | |
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0> | |
FieldTraits< ft >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) More... | |
template<typename ft = field_type, typename std::enable_if<!has_nan< ft >::value, int >::type = 0> | |
FieldTraits< ft >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) More... | |
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0> | |
FieldTraits< ft >::real_type | infinity_norm () const |
infinity norm (row sum norm, how to generalize for blocks?) More... | |
template<typename ft = field_type, typename std::enable_if< has_nan< ft >::value, int >::type = 0> | |
FieldTraits< ft >::real_type | infinity_norm_real () const |
simplified infinity norm (uses Manhattan norm for complex values) More... | |
bool | exists (size_type i, size_type j) const |
return true if (i,j) is in pattern More... | |
Protected Attributes | |
MatrixImp::DenseMatrixBase< T, A > | data_ |
Abuse DenseMatrixBase as an engine for a 2d array ISTL-style. More... | |
size_type | cols_ |
Number of columns of the matrix. More... | |
Friends | |
Matrix< T > | operator* (const Matrix< T > &m1, const Matrix< T > &m2) |
Generic matrix multiplication. More... | |
template<class X , class Y > | |
Y | operator* (const Matrix< T > &m, const X &vec) |
Generic matrix-vector multiplication. More... | |
A generic dynamic dense matrix.
typedef A Dune::Matrix< T, A >::allocator_type |
Export the allocator.
typedef T Dune::Matrix< T, A >::block_type |
Export the type representing the components.
typedef row_type::iterator Dune::Matrix< T, A >::ColIterator |
Iterator for the entries of each row.
typedef row_type::const_iterator Dune::Matrix< T, A >::ConstColIterator |
Const iterator for the entries of each row.
typedef MatrixImp::DenseMatrixBase<T,A>::ConstIterator Dune::Matrix< T, A >::ConstRowIterator |
Const iterator over the matrix rows.
typedef T::field_type Dune::Matrix< T, A >::field_type |
Export the type representing the underlying field.
typedef MatrixImp::DenseMatrixBase<T,A>::window_type Dune::Matrix< T, A >::row_type |
The type implementing a matrix row.
typedef MatrixImp::DenseMatrixBase<T,A>::Iterator Dune::Matrix< T, A >::RowIterator |
Iterator over the matrix rows.
typedef A::size_type Dune::Matrix< T, A >::size_type |
Type for indices and sizes.
anonymous enum |
|
inline |
Create empty matrix.
|
inline |
Create uninitialized matrix of size rows x cols.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get iterator to first row.
|
inline |
Get const iterator to first row.
|
inline |
Get iterator to one beyond last row.
|
inline |
Get const iterator to one beyond last row.
|
inline |
return true if (i,j) is in pattern
|
inline |
frobenius norm: sqrt(sum over squared values of entries)
|
inline |
square of frobenius norm, need for block recursion
|
inline |
infinity norm (row sum norm, how to generalize for blocks?)
|
inline |
infinity norm (row sum norm, how to generalize for blocks?)
|
inline |
simplified infinity norm (uses Manhattan norm for complex values)
|
inline |
simplified infinity norm (uses Manhattan norm for complex values)
|
inline |
Return the number of columns.
|
inline |
y -= A^H x
|
inline |
y -= A^T x
|
inline |
y -= A x
|
inline |
y = A^T x
|
inline |
y = A x
|
inline |
Return the number of rows.
|
inline |
Multiplication with a scalar.
|
inline |
Add the entries of another matrix to this one.
b | The matrix to add to this one. Its size has to be the same as the size of this matrix. |
|
inline |
Subtract the entries of another matrix from this one.
b | The matrix to subtract from this one. Its size has to be the same as the size of this matrix. |
|
inline |
Division by a scalar.
|
inline |
Assignment from scalar.
|
inline |
The index operator.
|
inline |
The const index operator.
|
inline |
Change the matrix size.
The way the data is handled is unpredictable.
|
inline |
Return the transpose of the matrix.
|
inline |
y += A^H x
|
inline |
y += A^T x
|
inline |
y += A x
|
inline |
y += alpha A^H x
|
inline |
y += alpha A^T x
|
inline |
|
friend |
Generic matrix multiplication.
|
friend |
Generic matrix-vector multiplication.
|
protected |
Number of columns of the matrix.
In general you can extract the same information from the data_ member. However if you want to be able to properly handle 0xn matrices then you need a separate member.
|
protected |
Abuse DenseMatrixBase as an engine for a 2d array ISTL-style.