KASKADE 7 development version
Public Member Functions | Protected Member Functions | List of all members
Kaskade::AbstractFunctionSpaceElement Class Referenceabstract

Abstract Vector for function space algorithms. More...

#include <abstract_interface.hh>

Detailed Description

Abstract Vector for function space algorithms.

Definition at line 25 of file abstract_interface.hh.

Inheritance diagram for Kaskade::AbstractFunctionSpaceElement:
Kaskade::Bridge::Vector< Implementation >

Public Member Functions

 AbstractFunctionSpaceElement (AbstractFunctionSpaceElement const &)=delete
 
virtual ~AbstractFunctionSpaceElement ()
 
AbstractFunctionSpaceElementaxpy (double alpha, AbstractFunctionSpaceElement const &l, int component)
 *this += alpha*l More...
 
AbstractFunctionSpaceElementaxpy (double alpha, AbstractFunctionSpaceElement const &l, std::string const role)
 
AbstractFunctionSpaceElementaxpy_role (double alpha, AbstractFunctionSpaceElement const &l, std::string const role)
 
AbstractFunctionSpaceElementaxpy (double alpha, AbstractFunctionSpaceElement const &l)
 *this += alpha*l More...
 
AbstractFunctionSpaceElementoperator= (AbstractFunctionSpaceElement const &v)
 Assignment. More...
 
AbstractFunctionSpaceElementoperator+= (AbstractFunctionSpaceElement const &v)
 Basic vector arithmetic. More...
 
AbstractFunctionSpaceElementoperator-= (AbstractFunctionSpaceElement const &v)
 Basic vector arithmetic. More...
 
AbstractFunctionSpaceElementoperator*= (double lambda)
 Basic vector arithmetic. More...
 
AbstractFunctionSpaceElementoperator*= (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< AbstractFunctionSpaceElementclone () const =0
 Construction of a vector of the same type. More...
 
virtual std::unique_ptr< AbstractFunctionSpaceElementinitZeroVector () const =0
 Construction of a vector of the same type. More...
 

Protected Member Functions

 AbstractFunctionSpaceElement ()
 

Constructor & Destructor Documentation

◆ AbstractFunctionSpaceElement() [1/2]

Kaskade::AbstractFunctionSpaceElement::AbstractFunctionSpaceElement ( AbstractFunctionSpaceElement const &  )
delete

◆ ~AbstractFunctionSpaceElement()

virtual Kaskade::AbstractFunctionSpaceElement::~AbstractFunctionSpaceElement ( )
inlinevirtual

Definition at line 31 of file abstract_interface.hh.

◆ AbstractFunctionSpaceElement() [2/2]

Kaskade::AbstractFunctionSpaceElement::AbstractFunctionSpaceElement ( )
inlineprotected

Definition at line 160 of file abstract_interface.hh.

Member Function Documentation

◆ applyAsDualTo() [1/3]

double Kaskade::AbstractFunctionSpaceElement::applyAsDualTo ( AbstractFunctionSpaceElement const &  v) const
inline

Definition at line 108 of file abstract_interface.hh.

◆ applyAsDualTo() [2/3]

double Kaskade::AbstractFunctionSpaceElement::applyAsDualTo ( AbstractFunctionSpaceElement const &  v,
int  component 
) const
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().

◆ applyAsDualTo() [3/3]

double Kaskade::AbstractFunctionSpaceElement::applyAsDualTo ( AbstractFunctionSpaceElement const &  v,
std::string const &  role 
) const
inline

Definition at line 113 of file abstract_interface.hh.

◆ applyAsDualTo_role()

double Kaskade::AbstractFunctionSpaceElement::applyAsDualTo_role ( AbstractFunctionSpaceElement const &  v,
std::string const  role 
) const
inline

Definition at line 118 of file abstract_interface.hh.

Referenced by applyAsDualTo().

◆ axpy() [1/3]

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::axpy ( double  alpha,
AbstractFunctionSpaceElement const &  l 
)
inline

*this += alpha*l

Definition at line 60 of file abstract_interface.hh.

◆ axpy() [2/3]

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::axpy ( double  alpha,
AbstractFunctionSpaceElement const &  l,
int  component 
)
inline

◆ axpy() [3/3]

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::axpy ( double  alpha,
AbstractFunctionSpaceElement const &  l,
std::string const  role 
)
inline

Definition at line 45 of file abstract_interface.hh.

◆ axpy_role()

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::axpy_role ( double  alpha,
AbstractFunctionSpaceElement const &  l,
std::string const  role 
)
inline

Definition at line 50 of file abstract_interface.hh.

Referenced by Kaskade::PrimalChart::addPerturbation(), and axpy().

◆ clone()

virtual std::unique_ptr< AbstractFunctionSpaceElement > Kaskade::AbstractFunctionSpaceElement::clone ( ) const
pure virtual

Construction of a vector of the same type.

Implemented in Kaskade::Bridge::Vector< Implementation >.

Referenced by Kaskade::TangentialStepArmijo::setLinearization().

◆ getRole()

virtual std::string Kaskade::AbstractFunctionSpaceElement::getRole ( int  component) const
pure virtual

◆ initZeroVector()

virtual std::unique_ptr< AbstractFunctionSpaceElement > Kaskade::AbstractFunctionSpaceElement::initZeroVector ( ) const
pure virtual

Construction of a vector of the same type.

Implemented in Kaskade::Bridge::Vector< Implementation >.

◆ nComponents()

virtual int Kaskade::AbstractFunctionSpaceElement::nComponents ( ) const
pure virtual

◆ operator*=() [1/2]

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::operator*= ( double  lambda)
inline

Basic vector arithmetic.

Definition at line 84 of file abstract_interface.hh.

◆ operator*=() [2/2]

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::operator*= ( std::vector< double >const &  lambda)
inline

Scaling each component of the vector separately.

Definition at line 91 of file abstract_interface.hh.

◆ operator+=()

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::operator+= ( AbstractFunctionSpaceElement const &  v)
inline

Basic vector arithmetic.

Definition at line 80 of file abstract_interface.hh.

◆ operator-=()

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::operator-= ( AbstractFunctionSpaceElement const &  v)
inline

Basic vector arithmetic.

Definition at line 82 of file abstract_interface.hh.

◆ operator=()

AbstractFunctionSpaceElement & Kaskade::AbstractFunctionSpaceElement::operator= ( AbstractFunctionSpaceElement const &  v)
inline

Assignment.

Definition at line 73 of file abstract_interface.hh.

◆ print()

virtual void Kaskade::AbstractFunctionSpaceElement::print ( std::string const &  message = "") const
inlinevirtual

Optional output.

Reimplemented in Kaskade::Bridge::Vector< Implementation >.

Definition at line 139 of file abstract_interface.hh.

◆ swap()

void Kaskade::AbstractFunctionSpaceElement::swap ( AbstractFunctionSpaceElement v)
inline

Shallow swap.

Definition at line 131 of file abstract_interface.hh.

Referenced by Kaskade::CompositeStep::updateIterate().

◆ writeToFile()

virtual void Kaskade::AbstractFunctionSpaceElement::writeToFile ( std::string const &  file,
bool  append,
int  order = 1 
) const
inlinevirtual

Optional output.

Definition at line 136 of file abstract_interface.hh.


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