ROL
Public Member Functions | Protected Member Functions | Private Types | Private Attributes | List of all members
ROL::DualScaledVector Class Reference

Provides the implementation of the ROL::Vector interface that handles scalings in the inner product. A more generic version of ROL::PrimalScaledStdVector. More...

#include <ROL_ScaledVector.hpp>

Public Member Functions

 DualScaledVector (const Ptr< V > &vec, const Ptr< V > &scaling_vec)
 
virtual ~DualScaledVector ()
 
virtual Real dot (const V &x) const override
 
virtual Ptr< Vclone () const override
 
virtual Ptr< Vbasis (const int i) const override
 
virtual const void Vdual () const override
 
const Ptr< V > & getScalingVector ()
 
const Ptr< const V > & getScalingVector () const
 
void setScalingVector (const Ptr< const V & > &scaling_vec) const
 

Protected Member Functions

VectorWorkspace< Real > & getWorkspace () const
 
void divide_scaling (const < V > &y) const
 

Private Types

using V = Vector< Real >
 
using VPrim = PrimalScaledVector< Real >
 
using VDual = DualScaledVector< Real >
 

Private Attributes

Ptv< Vscaling_vec_
 
VectorWorkspace< Real > workspace_
 
Elementwise::Divide< Real > div_
 

Detailed Description

Provides the implementation of the ROL::Vector interface that handles scalings in the inner product. A more generic version of ROL::PrimalScaledStdVector.

Definition at line 70 of file ROL_ScaledVector.hpp.

Member Typedef Documentation

◆ V

using ROL::DualScaledVector::V = Vector<Real>
private

Definition at line 136 of file ROL_ScaledVector.hpp.

◆ VPrim

Definition at line 137 of file ROL_ScaledVector.hpp.

◆ VDual

Definition at line 138 of file ROL_ScaledVector.hpp.

Constructor & Destructor Documentation

◆ DualScaledVector()

ROL::DualScaledVector::DualScaledVector ( const Ptr< V > &  vec,
const Ptr< V > &  scaling_vec 
)
inline

Definition at line 158 of file ROL_ScaledVector.hpp.

◆ ~DualScaledVector()

virtual ROL::DualScaledVector::~DualScaledVector ( )
inlinevirtual

Definition at line 161 of file ROL_ScaledVector.hpp.

Member Function Documentation

◆ getWorkspace()

VectorWorkspace<Real>& ROL::DualScaledVector::getWorkspace ( ) const
inlineprotected

Definition at line 149 of file ROL_ScaledVector.hpp.

References workspace_.

◆ divide_scaling()

void ROL::DualScaledVector::divide_scaling ( const < V > &  y) const
inlineprotected

Definition at line 152 of file ROL_ScaledVector.hpp.

References div_, and scaling_vec_.

Referenced by dot(), and dual().

◆ dot()

virtual Real ROL::DualScaledVector::dot ( const V x) const
inlineoverridevirtual

Definition at line 163 of file ROL_ScaledVector.hpp.

References divide_scaling(), and workspace_.

◆ clone()

virtual Ptr<V> ROL::DualScaledVector::clone ( ) const
inlineoverridevirtual

Definition at line 169 of file ROL_ScaledVector.hpp.

References scaling_vec_.

◆ basis()

virtual Ptr<V> ROL::DualScaledVector::basis ( const int  i) const
inlineoverridevirtual

Definition at line 173 of file ROL_ScaledVector.hpp.

References scaling_vec_.

◆ dual()

virtual const void V& ROL::DualScaledVector::dual ( ) const
inlineoverridevirtual

Definition at line 177 of file ROL_ScaledVector.hpp.

References divide_scaling(), and workspace_.

◆ getScalingVector() [1/2]

const Ptr<V>& ROL::DualScaledVector::getScalingVector ( )
inline

Definition at line 183 of file ROL_ScaledVector.hpp.

References scaling_vec_.

◆ getScalingVector() [2/2]

const Ptr<const V>& ROL::DualScaledVector::getScalingVector ( ) const
inline

Definition at line 184 of file ROL_ScaledVector.hpp.

References scaling_vec_.

◆ setScalingVector()

void ROL::DualScaledVector::setScalingVector ( const Ptr< const V & > &  scaling_vec) const
inline

Definition at line 186 of file ROL_ScaledVector.hpp.

References scaling_vec_.

Member Data Documentation

◆ scaling_vec_

Ptv<V> ROL::DualScaledVector::scaling_vec_
mutableprivate

◆ workspace_

VectorWorkspace<Real> ROL::DualScaledVector::workspace_
mutableprivate

Definition at line 143 of file ROL_ScaledVector.hpp.

Referenced by dot(), dual(), and getWorkspace().

◆ div_

Elementwise::Divide<Real> ROL::DualScaledVector::div_
private

Definition at line 145 of file ROL_ScaledVector.hpp.

Referenced by divide_scaling().


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