ROL
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
ROL::RieszDualVector< Real > Class Template Reference

#include <ROL_RieszVector.hpp>

+ Inheritance diagram for ROL::RieszDualVector< Real >:

Public Member Functions

 RieszDualVector (const RCP< V > &v, const RCP< OP > &op, Real tol=std::sqrt(ROL_EPSILON< Real >()))
 
virtual ~RieszDualVector ()
 
virtual Real dot (const V &x) const
 Compute \( \langle y,x \rangle \) where \(y = \mathtt{*this}\). More...
 
virtual RCP< Vclone () const
 Clone to make a new (uninitialized) vector. More...
 
virtual const Vdual () const
 Return dual representation of \(\mathtt{*this}\), for example, the result of applying a Riesz map, or change of basis, or change of memory layout. More...
 
void applyUnary (const Elementwise::UnaryFunction< Real > &f)
 
void applyBinary (const Elementwise::BinaryFunction< Real > &f, const V &x)
 
Real reduce (const Elementwise::ReductionOp< Real > &r) const
 
RCP< VgetVector (void)
 
RCP< const VgetVector (void) const
 
- Public Member Functions inherited from ROL::ElementwiseVector< Real >
virtual ~ElementwiseVector ()
 
void plus (const Vector< Real > &x)
 Compute \(y \leftarrow y + x\), where \(y = \mathtt{*this}\). More...
 
void scale (const Real alpha)
 Compute \(y \leftarrow \alpha y\) where \(y = \mathtt{*this}\). More...
 
virtual Real norm () const
 Returns \( \| y \| \) where \(y = \mathtt{*this}\). More...
 
void axpy (const Real alpha, const Vector< Real > &x)
 Compute \(y \leftarrow \alpha x + y\) where \(y = \mathtt{*this}\). More...
 
void zero ()
 Set to zero vector. More...
 
void set (const Vector< Real > &x)
 Set \(y \leftarrow x\) where \(y = \mathtt{*this}\). More...
 
- Public Member Functions inherited from ROL::Vector< Real >
virtual ~Vector ()
 
virtual Teuchos::RCP< Vectorbasis (const int i) const
 Return i-th basis vector. More...
 
virtual int dimension () const
 Return dimension of the vector space. More...
 
virtual void print (std::ostream &outStream) const
 
virtual std::vector< Real > checkVector (const Vector< Real > &x, const Vector< Real > &y, const bool printToStream=true, std::ostream &outStream=std::cout) const
 Verify vector-space methods. More...
 

Private Types

template<typename T >
using RCP = Teuchos::RCP< T >
 
using V = Vector< Real >
 
using PrimalVector = RieszPrimalVector< Real >
 
using OP = LinearOperator< Real >
 

Private Member Functions

void initialize_primal (void) const
 

Private Attributes

const RCP< Vv_
 
RCP< PrimalVectorprimal_
 
const RCP< OPop_
 
Real tol_
 
bool isPrimalInitialized_
 

Detailed Description

template<class Real>
class ROL::RieszDualVector< Real >

Definition at line 73 of file ROL_RieszVector.hpp.

Member Typedef Documentation

◆ RCP

template<class Real >
template<typename T >
using ROL::RieszDualVector< Real >::RCP = Teuchos::RCP<T>
private

Definition at line 160 of file ROL_RieszVector.hpp.

◆ V

template<class Real >
using ROL::RieszDualVector< Real >::V = Vector<Real>
private

Definition at line 162 of file ROL_RieszVector.hpp.

◆ PrimalVector

template<class Real >
using ROL::RieszDualVector< Real >::PrimalVector = RieszPrimalVector<Real>
private

Definition at line 163 of file ROL_RieszVector.hpp.

◆ OP

template<class Real >
using ROL::RieszDualVector< Real >::OP = LinearOperator<Real>
private

Definition at line 164 of file ROL_RieszVector.hpp.

Constructor & Destructor Documentation

◆ RieszDualVector()

template<class Real >
ROL::RieszDualVector< Real >::RieszDualVector ( const RCP< V > &  v,
const RCP< OP > &  op,
Real  tol = std::sqrt(ROL_EPSILON<Real>()) 
)
inline

Definition at line 184 of file ROL_RieszVector.hpp.

◆ ~RieszDualVector()

template<class Real >
virtual ROL::RieszDualVector< Real >::~RieszDualVector ( )
inlinevirtual

Definition at line 190 of file ROL_RieszVector.hpp.

Member Function Documentation

◆ initialize_primal()

template<class Real >
void ROL::RieszDualVector< Real >::initialize_primal ( void  ) const
inlineprivate

◆ dot()

template<class Real >
virtual Real ROL::RieszDualVector< Real >::dot ( const V x) const
inlinevirtual

Compute \( \langle y,x \rangle \) where \(y = \mathtt{*this}\).

Parameters
[in]xis the vector that forms the dot product with \(\mathtt{*this}\).
Returns
The number equal to \(\langle \mathtt{*this}, x \rangle\).

Reimplemented from ROL::ElementwiseVector< Real >.

Definition at line 192 of file ROL_RieszVector.hpp.

References ROL::RieszDualVector< Real >::getVector().

◆ clone()

template<class Real >
virtual RCP<V> ROL::RieszDualVector< Real >::clone ( ) const
inlinevirtual

Clone to make a new (uninitialized) vector.

Returns
A reference-counted pointer to the cloned vector.

Provides the means of allocating temporary memory in ROL.


Implements ROL::Vector< Real >.

Definition at line 201 of file ROL_RieszVector.hpp.

References ROL::RieszPrimalVector< Real >::op_, and ROL::RieszPrimalVector< Real >::tol_.

◆ dual()

template<class Real >
virtual const V& ROL::RieszDualVector< Real >::dual ( void  ) const
inlinevirtual

Return dual representation of \(\mathtt{*this}\), for example, the result of applying a Riesz map, or change of basis, or change of memory layout.

Returns
A const reference to dual representation.

By default, returns the current object. Please overload if you need a dual representation.


Reimplemented from ROL::Vector< Real >.

Definition at line 205 of file ROL_RieszVector.hpp.

◆ applyUnary()

template<class Real >
void ROL::RieszDualVector< Real >::applyUnary ( const Elementwise::UnaryFunction< Real > &  f)
inlinevirtual

Reimplemented from ROL::Vector< Real >.

Definition at line 212 of file ROL_RieszVector.hpp.

◆ applyBinary()

template<class Real >
void ROL::RieszDualVector< Real >::applyBinary ( const Elementwise::BinaryFunction< Real > &  f,
const V x 
)
inlinevirtual

◆ reduce()

template<class Real >
Real ROL::RieszDualVector< Real >::reduce ( const Elementwise::ReductionOp< Real > &  r) const
inlinevirtual

Reimplemented from ROL::Vector< Real >.

Definition at line 221 of file ROL_RieszVector.hpp.

◆ getVector() [1/2]

template<class Real >
RCP<V> ROL::RieszDualVector< Real >::getVector ( void  )
inline

◆ getVector() [2/2]

template<class Real >
RCP<const V> ROL::RieszDualVector< Real >::getVector ( void  ) const
inline

Definition at line 230 of file ROL_RieszVector.hpp.

References ROL::RieszPrimalVector< Real >::v_.

Member Data Documentation

◆ v_

template<class Real >
const RCP<V> ROL::RieszDualVector< Real >::v_
private

Definition at line 168 of file ROL_RieszVector.hpp.

◆ primal_

template<class Real >
RCP<PrimalVector> ROL::RieszDualVector< Real >::primal_
mutableprivate

Definition at line 169 of file ROL_RieszVector.hpp.

◆ op_

template<class Real >
const RCP<OP> ROL::RieszDualVector< Real >::op_
private

Definition at line 170 of file ROL_RieszVector.hpp.

◆ tol_

template<class Real >
Real ROL::RieszDualVector< Real >::tol_
mutableprivate

Definition at line 171 of file ROL_RieszVector.hpp.

◆ isPrimalInitialized_

template<class Real >
bool ROL::RieszDualVector< Real >::isPrimalInitialized_
mutableprivate

Definition at line 173 of file ROL_RieszVector.hpp.


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