Class template Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>

Inherits from Dune::XT::LA::ContainerInterface.

Friends operator<<(std::ostream &, const MatrixInterface<T, S> &).

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
class Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp> : public ContainerInterface<TraitsImp, ScalarImp>

CRTP base interface for matrix containers, providing common matrix operations and norms.

Method Dune::XT::LA::MatrixInterface::rows

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline size_t Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::rows() const

\ {

Have to be implemented by a derived class in addition to the ones required by ContainerInterface!

Method Dune::XT::LA::MatrixInterface::cols

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline size_t Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::cols() const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::add_to_entry

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::add_to_entry(const size_t ii, const size_t jj, const ScalarType &value)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::set_entry

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::set_entry(const size_t ii, const size_t jj, const ScalarType &value)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::get_entry

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline ScalarType Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::get_entry(const size_t ii, const size_t jj) const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::clear_row

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::clear_row(const size_t ii)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::clear_col

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::clear_col(const size_t jj)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::unit_row

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::unit_row(const size_t ii)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::unit_col

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::unit_col(const size_t jj)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::valid

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
inline bool Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::valid() const

Checks entries for inf or nan.

:returns: false if any entry is inf or nan, else true

Method Dune::XT::LA::MatrixInterface::operator*

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator*(const derived_type &other) const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::operator+

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator+(const derived_type &other) const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::operator-

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator-(const derived_type &other) const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::operator+=

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual derived_type &Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator+=(const derived_type &other)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::operator-=

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual derived_type &Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator-=(const derived_type &other)

No documentation provided.

Method Dune::XT::LA::MatrixInterface::sup_norm

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual RealType Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::sup_norm() const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::transposed

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::transposed() const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::non_zeros

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual size_t Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::non_zeros() const

Returns the number of entries in the sparsity pattern of the matrix.

This is mainly useful for sparse matrices and returns rows() times cols() for dense matrices.

Note

Some implementations do not report the correct number here, so use and interpret only if you know what you are doing!

Method Dune::XT::LA::MatrixInterface::pattern

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual SparsityPatternDefault Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::pattern(const bool prune = false, const typename Common::FloatCmp::DefaultEpsilon<ScalarType>::Type eps = Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const

Computes the sparsity pattern of the matrix.

This is mainly useful for sparse matrices and returns a full pattern for dense matrices

:param prune: If true, treats all entries smaller than eps as zero and does not include these indices in the returned pattern

Method Dune::XT::LA::MatrixInterface::pruned

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::pruned(const typename Common::FloatCmp::DefaultEpsilon<ScalarType>::Type eps = Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const

Returns a pruned variant of this matrix.

This is mainly useful for sparse matrices and returns a matrix that should be very close to this matrix, except for very small values, which are set to zero and the entries of which are removed from the sparsity pattern.

See also: pattern

:param eps: Is forwarded to pattern(true, eps)

Method Dune::XT::LA::MatrixInterface::almost_equal

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
virtual bool Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::almost_equal(const derived_type &other, const ScalarType epsilon = Common::FloatCmp::DefaultEpsilon<ScalarType>::value()) const

No documentation provided.

Method Dune::XT::LA::MatrixInterface::operator Dune::DynamicMatrix<Dune::XT::LA::MatrixInterface::Traits::ScalarType>

explicit operator DynamicMatrix<ScalarType>() const

No documentation provided.

Destructor Dune::XT::LA::MatrixInterface::~MatrixInterface

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::~MatrixInterface() override = default

No documentation provided.

Variable Dune::XT::LA::MatrixInterface::vector_type

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
const Backends Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::vector_type

No documentation provided.

Variable Dune::XT::LA::MatrixInterface::sparse

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
const bool Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::sparse

No documentation provided.

Type alias Dune::XT::LA::MatrixInterface::BaseType

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
using Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::BaseType = ContainerInterface<TraitsImp, ScalarImp>

No documentation provided.

Type alias Dune::XT::LA::MatrixInterface::ScalarType

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
using Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::ScalarType = typename Traits::ScalarType

No documentation provided.

Type alias Dune::XT::LA::MatrixInterface::RealType

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
using Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::RealType = typename Traits::RealType

No documentation provided.

Type alias Dune::XT::LA::MatrixInterface::MutexesType

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
using Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::MutexesType = typename Traits::MutexesType

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::mv

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class XX, class YY>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::mv(const VectorInterface<XX, ScalarType> &xx, VectorInterface<YY, ScalarType> &yy) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::mtv

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class YY, class XX>
inline void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::mtv(const VectorInterface<YY, ScalarType> &yy, VectorInterface<XX, ScalarType> &xx) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::mv

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class XX>
typename XX::derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::mv(const VectorInterface<XX, ScalarType> &xx) const

\ }

Provided by the interface for convenience.

Note

Those marked with vitual should be overriden by any devired class that can do better. \ {

Function template Dune::XT::LA::MatrixInterface::mtv

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class YY>
typename YY::derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::mtv(const VectorInterface<YY, ScalarType> &yy) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator*

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class XX>
typename XX::derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator*(const VectorInterface<XX, ScalarType> &xx) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator*

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator*(const MatrixInterface<MM, ScalarType> &other) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator+

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator+(const MatrixInterface<MM, ScalarType> &other) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator-

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator-(const MatrixInterface<MM, ScalarType> &other) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator+=

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type &Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator+=(const MatrixInterface<MM, ScalarType> &other)

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator-=

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type &Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::operator-=(const MatrixInterface<MM, ScalarType> &other)

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::copy_to_densematrix

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class DuneDenseMatrixImp>
void Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::copy_to_densematrix(DuneDenseMatrixImp &ret) const

\ }

Function template Dune::XT::LA::MatrixInterface::operator Dune::FieldMatrix<Dune::XT::LA::MatrixInterface::Traits::ScalarType, value-parameter-1-0, value-parameter-1-1>

template <int ROWS, int COLS> explicit operator FieldMatrix<ScalarType, ROWS, COLS>() const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::operator std::unique_ptr<Dune::FieldMatrix<Dune::XT::LA::MatrixInterface::Traits::ScalarType, value-parameter-1-0, value-parameter-1-1>, std::default_delete<Dune::FieldMatrix<Dune::XT::LA::MatrixInterface::Traits::ScalarType, value-parameter-1-0, value-parameter-1-1>>>

template <int ROWS, int COLS> explicit operator unique_ptr<Dune::FieldMatrix<ScalarType, ROWS, COLS>>() const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::multiply

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::multiply(const MatrixInterface<MM, ScalarType> &other) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::add

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::add(const MatrixInterface<MM, ScalarType> &other) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::subtract

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::subtract(const MatrixInterface<MM, ScalarType> &other) const

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::add_assign

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type &Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::add_assign(const MatrixInterface<MM, ScalarType> &other)

No documentation provided.

Function template Dune::XT::LA::MatrixInterface::subtract_assign

template<class TraitsImp, class ScalarImp = typename TraitsImp::ScalarType>
template<class MM>
derived_type &Dune::XT::LA::MatrixInterface<TraitsImp, ScalarImp>::subtract_assign(const MatrixInterface<MM, ScalarType> &other)

No documentation provided.