dune-common  2.5.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
Dune::DynamicMatrix< K > Class Template Reference

Construct a matrix with a dynamic size. More...

#include <dune/common/dynmatrix.hh>

Inheritance diagram for Dune::DynamicMatrix< K >:
Dune::DenseMatrix< DynamicMatrix< K > >

Public Types

typedef Base::size_type size_type
 
typedef Base::value_type value_type
 
typedef Base::row_type row_type
 
enum  
 We are at the leaf of the block recursion. More...
 
typedef Traits::derived_type derived_type
 type of derived matrix class More...
 
typedef Traits::value_type field_type
 export the type representing the field More...
 
typedef Traits::value_type block_type
 export the type representing the components More...
 
typedef Traits::row_reference row_reference
 The type used to represent a reference to a row (usually row_type &) More...
 
typedef Traits::const_row_reference const_row_reference
 The type used to represent a reference to a constant row (usually const row_type &) More...
 
typedef DenseIterator
< DenseMatrix, row_type,
row_reference
Iterator
 Iterator class for sequential access. More...
 
typedef Iterator iterator
 typedef for stl compliant access More...
 
typedef Iterator RowIterator
 rename the iterators for easier access More...
 
typedef std::remove_reference
< row_reference >
::type::Iterator 
ColIterator
 rename the iterators for easier access More...
 
typedef DenseIterator< const
DenseMatrix, const row_type,
const_row_reference
ConstIterator
 Iterator class for sequential access. More...
 
typedef ConstIterator const_iterator
 typedef for stl compliant access More...
 
typedef ConstIterator ConstRowIterator
 rename the iterators for easier access More...
 
typedef std::remove_reference
< const_row_reference >
::type::ConstIterator 
ConstColIterator
 rename the iterators for easier access More...
 

Public Member Functions

 DynamicMatrix ()
 Default constructor. More...
 
 DynamicMatrix (size_type r, size_type c, value_type v=value_type())
 Constructor initializing the whole matrix with a scalar. More...
 
 DynamicMatrix (std::initializer_list< DynamicVector< K >> const &ll)
 Constructor initializing the matrix from a list of vector. More...
 
template<class T , typename = std::enable_if_t<!Dune::IsNumber<T>::value && HasDenseMatrixAssigner<DynamicMatrix, T>::value>>
 DynamicMatrix (T const &rhs)
 
void resize (size_type r, size_type c, value_type v=value_type())
 resize matrix to r × c More...
 
template<typename T , typename = std::enable_if_t<!Dune::IsNumber<T>::value>>
DynamicMatrixoperator= (T const &rhs)
 
template<typename T , typename = std::enable_if_t<Dune::IsNumber<T>::value>>
DynamicMatrixoperator= (T scalar)
 
size_type mat_rows () const
 
size_type mat_cols () const
 
row_typemat_access (size_type i)
 
const row_typemat_access (size_type i) const
 
row_reference operator[] (size_type i)
 random access More...
 
const_row_reference operator[] (size_type i) const
 
size_type size () const
 size method (number of rows) More...
 
Iterator begin ()
 begin iterator More...
 
ConstIterator begin () const
 begin iterator More...
 
Iterator end ()
 end iterator More...
 
ConstIterator end () const
 end iterator More...
 
Iterator beforeEnd ()
 
ConstIterator beforeEnd () const
 
Iterator beforeBegin ()
 
ConstIterator beforeBegin () const
 
DenseMatrixoperator+= (const DenseMatrix< Other > &y)
 vector space addition More...
 
DenseMatrixoperator-= (const DenseMatrix< Other > &y)
 vector space subtraction More...
 
DenseMatrixoperator*= (const field_type &k)
 vector space multiplication with scalar More...
 
DenseMatrixoperator/= (const field_type &k)
 vector space division by scalar More...
 
DenseMatrixaxpy (const field_type &k, const DenseMatrix< Other > &y)
 vector space axpy operation (*this += k y) More...
 
bool operator== (const DenseMatrix< Other > &y) const
 Binary matrix comparison. More...
 
bool operator!= (const DenseMatrix< Other > &y) const
 Binary matrix incomparison. More...
 
void mv (const X &x, Y &y) const
 y = A x More...
 
void mtv (const X &x, Y &y) const
 y = A^T x More...
 
void umv (const X &x, Y &y) const
 y += A x More...
 
void umtv (const X &x, Y &y) const
 y += A^T x More...
 
void umhv (const X &x, Y &y) const
 y += A^H x More...
 
void mmv (const X &x, Y &y) const
 y -= A x More...
 
void mmtv (const X &x, Y &y) const
 y -= A^T x More...
 
void mmhv (const X &x, Y &y) const
 y -= A^H x More...
 
void usmv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 y += alpha A x More...
 
void usmtv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 y += alpha A^T x More...
 
void usmhv (const typename FieldTraits< Y >::field_type &alpha, const X &x, Y &y) const
 y += alpha A^H x More...
 
FieldTraits< value_type >
::real_type 
frobenius_norm () const
 frobenius norm: sqrt(sum over squared values of entries) More...
 
FieldTraits< value_type >
::real_type 
frobenius_norm2 () const
 square of frobenius norm, need for block recursion More...
 
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (row sum norm, how to generalize for blocks?) More...
 
FieldTraits< vt >::real_type infinity_norm () const
 infinity norm (row sum norm, how to generalize for blocks?) More...
 
FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values) More...
 
FieldTraits< vt >::real_type infinity_norm_real () const
 simplified infinity norm (uses Manhattan norm for complex values) More...
 
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 More...
 
MAT & leftmultiply (const DenseMatrix< M2 > &DynamicMatrix< K >)
 Multiplies M from the left to this matrix. More...
 
MAT & rightmultiply (const DenseMatrix< M2 > &DynamicMatrix< K >)
 Multiplies M from the right to this matrix. More...
 
size_type N () const
 number of rows More...
 
size_type M () const
 number of columns More...
 
size_type rows () const
 number of rows More...
 
size_type cols () const
 number of columns More...
 
bool exists (size_type i, size_type j) const
 return true when (i,j) is in pattern More...
 

Detailed Description

template<class K>
class Dune::DynamicMatrix< K >

Construct a matrix with a dynamic size.

Template Parameters
Kis the field type (use float, double, complex, etc)

Member Typedef Documentation

typedef Traits::value_type Dune::DenseMatrix< DynamicMatrix< K > >::block_type
inherited

export the type representing the components

typedef std::remove_reference<row_reference>::type::Iterator Dune::DenseMatrix< DynamicMatrix< K > >::ColIterator
inherited

rename the iterators for easier access

typedef for stl compliant access

typedef Traits::const_row_reference Dune::DenseMatrix< DynamicMatrix< K > >::const_row_reference
inherited

The type used to represent a reference to a constant row (usually const row_type &)

typedef std::remove_reference<const_row_reference>::type::ConstIterator Dune::DenseMatrix< DynamicMatrix< K > >::ConstColIterator
inherited

rename the iterators for easier access

Iterator class for sequential access.

rename the iterators for easier access

typedef Traits::derived_type Dune::DenseMatrix< DynamicMatrix< K > >::derived_type
inherited

type of derived matrix class

typedef Traits::value_type Dune::DenseMatrix< DynamicMatrix< K > >::field_type
inherited

export the type representing the field

Iterator class for sequential access.

typedef Iterator Dune::DenseMatrix< DynamicMatrix< K > >::iterator
inherited

typedef for stl compliant access

typedef Traits::row_reference Dune::DenseMatrix< DynamicMatrix< K > >::row_reference
inherited

The type used to represent a reference to a row (usually row_type &)

template<class K>
typedef Base::row_type Dune::DynamicMatrix< K >::row_type

rename the iterators for easier access

template<class K>
typedef Base::size_type Dune::DynamicMatrix< K >::size_type
template<class K>
typedef Base::value_type Dune::DynamicMatrix< K >::value_type

Member Enumeration Documentation

anonymous enum
inherited

We are at the leaf of the block recursion.

Constructor & Destructor Documentation

template<class K>
Dune::DynamicMatrix< K >::DynamicMatrix ( )
inline

Default constructor.

template<class K>
Dune::DynamicMatrix< K >::DynamicMatrix ( size_type  r,
size_type  c,
value_type  v = value_type() 
)
inline

Constructor initializing the whole matrix with a scalar.

template<class K>
Dune::DynamicMatrix< K >::DynamicMatrix ( std::initializer_list< DynamicVector< K >> const &  ll)
inline

Constructor initializing the matrix from a list of vector.

template<class K>
template<class T , typename = std::enable_if_t<!Dune::IsNumber<T>::value && HasDenseMatrixAssigner<DynamicMatrix, T>::value>>
Dune::DynamicMatrix< K >::DynamicMatrix ( T const &  rhs)
inline

Member Function Documentation

DenseMatrix& Dune::DenseMatrix< DynamicMatrix< K > >::axpy ( const field_type k,
const DenseMatrix< Other > &  y 
)
inlineinherited

vector space axpy operation (*this += k y)

Iterator Dune::DenseMatrix< DynamicMatrix< K > >::beforeBegin ( )
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.
ConstIterator Dune::DenseMatrix< DynamicMatrix< K > >::beforeBegin ( ) const
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.
Iterator Dune::DenseMatrix< DynamicMatrix< K > >::beforeEnd ( )
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.
ConstIterator Dune::DenseMatrix< DynamicMatrix< K > >::beforeEnd ( ) const
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector. i.e. at the last element
Iterator Dune::DenseMatrix< DynamicMatrix< K > >::begin ( )
inlineinherited

begin iterator

ConstIterator Dune::DenseMatrix< DynamicMatrix< K > >::begin ( ) const
inlineinherited

begin iterator

size_type Dune::DenseMatrix< DynamicMatrix< K > >::cols ( ) const
inlineinherited

number of columns

field_type Dune::DenseMatrix< DynamicMatrix< K > >::determinant ( ) const
inherited

calculates the determinant of this matrix

Iterator Dune::DenseMatrix< DynamicMatrix< K > >::end ( )
inlineinherited

end iterator

ConstIterator Dune::DenseMatrix< DynamicMatrix< K > >::end ( ) const
inlineinherited

end iterator

bool Dune::DenseMatrix< DynamicMatrix< K > >::exists ( size_type  i,
size_type  j 
) const
inlineinherited

return true when (i,j) is in pattern

FieldTraits<value_type>::real_type Dune::DenseMatrix< DynamicMatrix< K > >::frobenius_norm ( ) const
inlineinherited

frobenius norm: sqrt(sum over squared values of entries)

FieldTraits<value_type>::real_type Dune::DenseMatrix< DynamicMatrix< K > >::frobenius_norm2 ( ) const
inlineinherited

square of frobenius norm, need for block recursion

FieldTraits<vt>::real_type Dune::DenseMatrix< DynamicMatrix< K > >::infinity_norm ( ) const
inlineinherited

infinity norm (row sum norm, how to generalize for blocks?)

FieldTraits<vt>::real_type Dune::DenseMatrix< DynamicMatrix< K > >::infinity_norm ( ) const
inlineinherited

infinity norm (row sum norm, how to generalize for blocks?)

FieldTraits<vt>::real_type Dune::DenseMatrix< DynamicMatrix< K > >::infinity_norm_real ( ) const
inlineinherited

simplified infinity norm (uses Manhattan norm for complex values)

FieldTraits<vt>::real_type Dune::DenseMatrix< DynamicMatrix< K > >::infinity_norm_real ( ) const
inlineinherited

simplified infinity norm (uses Manhattan norm for complex values)

void Dune::DenseMatrix< DynamicMatrix< K > >::invert ( )
inherited

Compute inverse.

Exceptions
FMatrixErrorif the matrix is singular
MAT& Dune::DenseMatrix< DynamicMatrix< K > >::leftmultiply ( const DenseMatrix< M2 > &  M)
inlineinherited

Multiplies M from the left to this matrix.

size_type Dune::DenseMatrix< DynamicMatrix< K > >::DynamicMatrix< K > ( ) const
inlineinherited

number of columns

template<class K>
row_type& Dune::DynamicMatrix< K >::mat_access ( size_type  i)
inline
template<class K>
const row_type& Dune::DynamicMatrix< K >::mat_access ( size_type  i) const
inline
template<class K>
size_type Dune::DynamicMatrix< K >::mat_cols ( ) const
inline
template<class K>
size_type Dune::DynamicMatrix< K >::mat_rows ( ) const
inline
void Dune::DenseMatrix< DynamicMatrix< K > >::mmhv ( const X &  x,
Y &  y 
) const
inlineinherited

y -= A^H x

void Dune::DenseMatrix< DynamicMatrix< K > >::mmtv ( const X &  x,
Y &  y 
) const
inlineinherited

y -= A^T x

void Dune::DenseMatrix< DynamicMatrix< K > >::mmv ( const X &  x,
Y &  y 
) const
inlineinherited

y -= A x

void Dune::DenseMatrix< DynamicMatrix< K > >::mtv ( const X &  x,
Y &  y 
) const
inlineinherited

y = A^T x

void Dune::DenseMatrix< DynamicMatrix< K > >::mv ( const X &  x,
Y &  y 
) const
inlineinherited

y = A x

size_type Dune::DenseMatrix< DynamicMatrix< K > >::N ( ) const
inlineinherited

number of rows

bool Dune::DenseMatrix< DynamicMatrix< K > >::operator!= ( const DenseMatrix< Other > &  y) const
inlineinherited

Binary matrix incomparison.

DenseMatrix& Dune::DenseMatrix< DynamicMatrix< K > >::operator*= ( const field_type k)
inlineinherited

vector space multiplication with scalar

DenseMatrix& Dune::DenseMatrix< DynamicMatrix< K > >::operator+= ( const DenseMatrix< Other > &  y)
inlineinherited

vector space addition

DenseMatrix& Dune::DenseMatrix< DynamicMatrix< K > >::operator-= ( const DenseMatrix< Other > &  y)
inlineinherited

vector space subtraction

DenseMatrix& Dune::DenseMatrix< DynamicMatrix< K > >::operator/= ( const field_type k)
inlineinherited

vector space division by scalar

template<class K>
template<typename T , typename = std::enable_if_t<!Dune::IsNumber<T>::value>>
DynamicMatrix& Dune::DynamicMatrix< K >::operator= ( T const &  rhs)
inline
template<class K>
template<typename T , typename = std::enable_if_t<Dune::IsNumber<T>::value>>
DynamicMatrix& Dune::DynamicMatrix< K >::operator= ( scalar)
inline
bool Dune::DenseMatrix< DynamicMatrix< K > >::operator== ( const DenseMatrix< Other > &  y) const
inlineinherited

Binary matrix comparison.

row_reference Dune::DenseMatrix< DynamicMatrix< K > >::operator[] ( size_type  i)
inlineinherited

random access

const_row_reference Dune::DenseMatrix< DynamicMatrix< K > >::operator[] ( size_type  i) const
inlineinherited
template<class K>
void Dune::DynamicMatrix< K >::resize ( size_type  r,
size_type  c,
value_type  v = value_type() 
)
inline

resize matrix to r × c

Resize the matrix to r × c, using v as the value of all entries.

Warning
All previous entries are lost, even when the matrix was not actually resized.
Parameters
rnumber of rows
cnumber of columns
vvalue of matrix entries
MAT& Dune::DenseMatrix< DynamicMatrix< K > >::rightmultiply ( const DenseMatrix< M2 > &  M)
inlineinherited

Multiplies M from the right to this matrix.

size_type Dune::DenseMatrix< DynamicMatrix< K > >::rows ( ) const
inlineinherited

number of rows

size_type Dune::DenseMatrix< DynamicMatrix< K > >::size ( ) const
inlineinherited

size method (number of rows)

void Dune::DenseMatrix< DynamicMatrix< K > >::solve ( V &  x,
const V &  b 
) const
inherited

Solve system A x = b.

Exceptions
FMatrixErrorif the matrix is singular
void Dune::DenseMatrix< DynamicMatrix< K > >::umhv ( const X &  x,
Y &  y 
) const
inlineinherited

y += A^H x

void Dune::DenseMatrix< DynamicMatrix< K > >::umtv ( const X &  x,
Y &  y 
) const
inlineinherited

y += A^T x

void Dune::DenseMatrix< DynamicMatrix< K > >::umv ( const X &  x,
Y &  y 
) const
inlineinherited

y += A x

void Dune::DenseMatrix< DynamicMatrix< K > >::usmhv ( const typename FieldTraits< Y >::field_type alpha,
const X &  x,
Y &  y 
) const
inlineinherited

y += alpha A^H x

void Dune::DenseMatrix< DynamicMatrix< K > >::usmtv ( const typename FieldTraits< Y >::field_type alpha,
const X &  x,
Y &  y 
) const
inlineinherited

y += alpha A^T x

void Dune::DenseMatrix< DynamicMatrix< K > >::usmv ( const typename FieldTraits< Y >::field_type alpha,
const X &  x,
Y &  y 
) const
inlineinherited

y += alpha A x


The documentation for this class was generated from the following file: