ROL
ROL::DualScaledVector< Real > Class Template 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>

Inheritance diagram for ROL::DualScaledVector< Real >:

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 void const 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

template<typename Real>
class ROL::DualScaledVector< Real >

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 99 of file ROL_ScaledVector.hpp.

Member Typedef Documentation

◆ V

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

Definition at line 101 of file ROL_ScaledVector.hpp.

◆ VPrim

template<typename Real>
using ROL::DualScaledVector< Real >::VPrim = PrimalScaledVector<Real>
private

Definition at line 102 of file ROL_ScaledVector.hpp.

◆ VDual

template<typename Real>
using ROL::DualScaledVector< Real >::VDual = DualScaledVector<Real>
private

Definition at line 103 of file ROL_ScaledVector.hpp.

Constructor & Destructor Documentation

◆ DualScaledVector()

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

Definition at line 123 of file ROL_ScaledVector.hpp.

References scaling_vec_.

◆ ~DualScaledVector()

template<typename Real>
virtual ROL::DualScaledVector< Real >::~DualScaledVector ( )
inlinevirtual

Definition at line 126 of file ROL_ScaledVector.hpp.

Member Function Documentation

◆ getWorkspace()

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

◆ divide_scaling()

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

Definition at line 117 of file ROL_ScaledVector.hpp.

References div_, and scaling_vec_.

Referenced by dot(), ROL::InactiveSet_DualVector< Real >::dot(), and dual().

◆ dot()

template<typename Real>
virtual Real ROL::DualScaledVector< Real >::dot ( const V & x) const
inlineoverridevirtual

Reimplemented in ROL::InactiveSet_DualVector< Real >.

Definition at line 128 of file ROL_ScaledVector.hpp.

References divide_scaling(), and workspace_.

◆ clone()

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

Reimplemented in ROL::InactiveSet_DualVector< Real >.

Definition at line 134 of file ROL_ScaledVector.hpp.

References clone(), and scaling_vec_.

Referenced by clone().

◆ basis()

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

Reimplemented in ROL::InactiveSet_DualVector< Real >.

Definition at line 138 of file ROL_ScaledVector.hpp.

References basis(), and scaling_vec_.

Referenced by basis().

◆ dual()

template<typename Real>
virtual void const V & ROL::DualScaledVector< Real >::dual ( ) const
inlineoverridevirtual

Reimplemented in ROL::InactiveSet_DualVector< Real >.

Definition at line 142 of file ROL_ScaledVector.hpp.

References divide_scaling(), and workspace_.

◆ getScalingVector() [1/2]

◆ getScalingVector() [2/2]

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

Definition at line 149 of file ROL_ScaledVector.hpp.

References scaling_vec_.

◆ setScalingVector()

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

Definition at line 151 of file ROL_ScaledVector.hpp.

References scaling_vec_.

Member Data Documentation

◆ scaling_vec_

◆ workspace_

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

Definition at line 108 of file ROL_ScaledVector.hpp.

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

◆ div_

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

Definition at line 110 of file ROL_ScaledVector.hpp.

Referenced by divide_scaling().


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