KASKADE 7 development version
|
Abstract Vector for function space algorithms. More...
#include <abstract_interface.hh>
Abstract Vector for function space algorithms.
Definition at line 25 of file abstract_interface.hh.
Public Member Functions | |
AbstractFunctionSpaceElement (AbstractFunctionSpaceElement const &)=delete | |
virtual | ~AbstractFunctionSpaceElement () |
AbstractFunctionSpaceElement & | axpy (double alpha, AbstractFunctionSpaceElement const &l, int component) |
*this += alpha*l More... | |
AbstractFunctionSpaceElement & | axpy (double alpha, AbstractFunctionSpaceElement const &l, std::string const role) |
AbstractFunctionSpaceElement & | axpy_role (double alpha, AbstractFunctionSpaceElement const &l, std::string const role) |
AbstractFunctionSpaceElement & | axpy (double alpha, AbstractFunctionSpaceElement const &l) |
*this += alpha*l More... | |
AbstractFunctionSpaceElement & | operator= (AbstractFunctionSpaceElement const &v) |
Assignment. More... | |
AbstractFunctionSpaceElement & | operator+= (AbstractFunctionSpaceElement const &v) |
Basic vector arithmetic. More... | |
AbstractFunctionSpaceElement & | operator-= (AbstractFunctionSpaceElement const &v) |
Basic vector arithmetic. More... | |
AbstractFunctionSpaceElement & | operator*= (double lambda) |
Basic vector arithmetic. More... | |
AbstractFunctionSpaceElement & | operator*= (std::vector< double >const &lambda) |
Scaling each component of the vector separately. More... | |
double | applyAsDualTo (AbstractFunctionSpaceElement const &v, int component) const |
Interpret *this as a dual vector, and apply it to v. More... | |
double | applyAsDualTo (AbstractFunctionSpaceElement const &v) const |
double | applyAsDualTo (AbstractFunctionSpaceElement const &v, std::string const &role) const |
double | applyAsDualTo_role (AbstractFunctionSpaceElement const &v, std::string const role) const |
virtual std::string | getRole (int component) const =0 |
void | swap (AbstractFunctionSpaceElement &v) |
Shallow swap. More... | |
virtual int | nComponents () const =0 |
virtual void | writeToFile (std::string const &file, bool append, int order=1) const |
Optional output. More... | |
virtual void | print (std::string const &message="") const |
Optional output. More... | |
virtual std::unique_ptr< AbstractFunctionSpaceElement > | clone () const =0 |
Construction of a vector of the same type. More... | |
virtual std::unique_ptr< AbstractFunctionSpaceElement > | initZeroVector () const =0 |
Construction of a vector of the same type. More... | |
Protected Member Functions | |
AbstractFunctionSpaceElement () | |
|
delete |
|
inlinevirtual |
Definition at line 31 of file abstract_interface.hh.
|
inlineprotected |
Definition at line 160 of file abstract_interface.hh.
|
inline |
Definition at line 108 of file abstract_interface.hh.
|
inline |
Interpret *this as a dual vector, and apply it to v.
Duality is currently not represented by types, hence users have to make sure that the dual pairing <*this,v> is mathematically meaningful. The standard implementation of the dual pairing in Bridge::Vector is the dot-product between the coordinate representations of *this and v. For that *this should be the result of AbstractLinearization::evald
Definition at line 103 of file abstract_interface.hh.
Referenced by applyAsDualTo_role().
|
inline |
Definition at line 113 of file abstract_interface.hh.
|
inline |
Definition at line 118 of file abstract_interface.hh.
Referenced by applyAsDualTo().
|
inline |
*this += alpha*l
Definition at line 60 of file abstract_interface.hh.
|
inline |
*this += alpha*l
Definition at line 34 of file abstract_interface.hh.
Referenced by axpy_role(), Kaskade::TangentialStepNewton< Newton >::getTrialIterate(), and Kaskade::NormalStepNewton< Newton >::getTrialIterate().
|
inline |
Definition at line 45 of file abstract_interface.hh.
|
inline |
Definition at line 50 of file abstract_interface.hh.
Referenced by Kaskade::PrimalChart::addPerturbation(), and axpy().
|
pure virtual |
Construction of a vector of the same type.
Implemented in Kaskade::Bridge::Vector< Implementation >.
Referenced by Kaskade::TangentialStepArmijo::setLinearization().
|
pure virtual |
Implemented in Kaskade::Bridge::Vector< Implementation >.
Referenced by applyAsDualTo_role(), and axpy_role().
|
pure virtual |
Construction of a vector of the same type.
Implemented in Kaskade::Bridge::Vector< Implementation >.
|
pure virtual |
Implemented in Kaskade::Bridge::Vector< Implementation >.
Referenced by applyAsDualTo(), applyAsDualTo_role(), axpy(), axpy_role(), Kaskade::StepPolicyProjectedRHS< UpdatePolicy >::getSearchDirection(), Kaskade::StepPolicyProjectedRHS< UpdatePolicy >::getSimplifiedSearchDirection(), and operator*=().
|
inline |
Basic vector arithmetic.
Definition at line 84 of file abstract_interface.hh.
|
inline |
Scaling each component of the vector separately.
Definition at line 91 of file abstract_interface.hh.
|
inline |
Basic vector arithmetic.
Definition at line 80 of file abstract_interface.hh.
|
inline |
Basic vector arithmetic.
Definition at line 82 of file abstract_interface.hh.
|
inline |
Assignment.
Definition at line 73 of file abstract_interface.hh.
|
inlinevirtual |
Optional output.
Reimplemented in Kaskade::Bridge::Vector< Implementation >.
Definition at line 139 of file abstract_interface.hh.
|
inline |
Shallow swap.
Definition at line 131 of file abstract_interface.hh.
Referenced by Kaskade::CompositeStep::updateIterate().
|
inlinevirtual |
Optional output.
Definition at line 136 of file abstract_interface.hh.