KASKADE 7 development version
|
Interface for symmetric linear operators. More...
#include <symmetricOperators.hh>
Interface for symmetric linear operators.
In addition to the Dune::LinearOperator interface, symmetric operators provide access to a dual pairing \( \langle\cdot,\cdot\rangle \) (w.r.t. which they are symmetric) and offer the simultaneous evaluation of \( Ax \) and \( \langle x,Ax\rangle \), which can be implemented more efficiently than the sequential evaluation of the two quantities. This efficiency gain is exploited, e.g., in the conjugate gradient solver Pcg.
Definition at line 68 of file symmetricOperators.hh.
Public Types | |
typedef X::field_type | field_type |
Public Member Functions | |
virtual field_type | applyDp (X const &x, Xstar &y) const |
operator application Computes \( y \leftarrow Ax \) and returns the dual pairing \( \langle x,y \rangle \). More... | |
virtual field_type | dp (X const &x, Xstar const &y) const =0 |
returns the dual pairing \( \langle x, y \rangle \) with respect to which the operator is symmetric More... | |
virtual Dune::SolverCategory::Category | category () const override |
returns the category of the operator More... | |
typedef X::field_type Kaskade::SymmetricLinearOperator< X, Xstar >::field_type |
Definition at line 71 of file symmetricOperators.hh.
|
inlinevirtual |
operator application Computes \( y \leftarrow Ax \) and returns the dual pairing \( \langle x,y \rangle \).
The default implementation just calls dp(x,y) after the operator application. When implementing this interface in derived classes, consider a more efficient version.
Reimplemented in Kaskade::SymmetricMatrixOperator< X, Matrix >.
Definition at line 81 of file symmetricOperators.hh.
|
inlineoverridevirtual |
returns the category of the operator
From the Dune doxygen documentation it is unclear what this is supposed to mean. We return a dummy here.
Definition at line 98 of file symmetricOperators.hh.
|
pure virtual |
returns the dual pairing \( \langle x, y \rangle \) with respect to which the operator is symmetric
Implemented in Kaskade::SymmetricMatrixOperator< X, Matrix >, and Kaskade::SymmetricLinearOperatorWrapper< X, Xstar >.
Referenced by Kaskade::SymmetricLinearOperator< X, Xstar >::applyDp().