ROL
ROL::Bundle_U< Real > Class Template Referenceabstract

Provides the interface for and implements a bundle. More...

#include <ROL_Bundle_U.hpp>

Inheritance diagram for ROL::Bundle_U< Real >:

Public Member Functions

virtual ~Bundle_U (void)
 Bundle_U (const unsigned maxSize=10, const Real coeff=0.0, const Real omega=2.0, const unsigned remSize=2)
virtual void initialize (const Vector< Real > &g)
virtual unsigned solveDual (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)=0
const Real linearizationError (const unsigned i) const
const Real distanceMeasure (const unsigned i) const
const Vector< Real > & subgradient (const unsigned i) const
const Real getDualVariable (const unsigned i) const
void setDualVariable (const unsigned i, const Real val)
void resetDualVariables (void)
const Real computeAlpha (const Real dm, const Real le) const
const Real alpha (const unsigned i) const
unsigned size (void) const
void aggregate (Vector< Real > &aggSubGrad, Real &aggLinErr, Real &aggDistMeas) const
void reset (const Vector< Real > &g, const Real le, const Real dm)
void update (const bool flag, const Real linErr, const Real distMeas, const Vector< Real > &g, const Vector< Real > &s)

Protected Member Functions

const Real GiGj (const unsigned i, const unsigned j) const
const Real dotGi (const unsigned i, const Vector< Real > &x) const
void addGi (const unsigned i, const Real a, Vector< Real > &x) const
Real evaluateObjective (std::vector< Real > &g, const std::vector< Real > &x, const Real t) const
unsigned solveDual_dim1 (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)
unsigned solveDual_dim2 (const Real t, const unsigned maxit=1000, const Real tol=1.e-8)

Private Member Functions

void remove (const std::vector< unsigned > &ind)
void add (const Vector< Real > &g, const Real le, const Real dm)

Private Attributes

std::vector< Ptr< Vector< Real > > > subgradients_
std::vector< Real > linearizationErrors_
std::vector< Real > distanceMeasures_
std::vector< Real > dualVariables_
Ptr< Vector< Real > > tG_
Ptr< Vector< Real > > eG_
Ptr< Vector< Real > > yG_
Ptr< Vector< Real > > gx_
Ptr< Vector< Real > > ge_
unsigned size_
unsigned maxSize_
unsigned remSize_
Real coeff_
Real omega_
bool isInitialized_

Detailed Description

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

Provides the interface for and implements a bundle.

Definition at line 25 of file ROL_Bundle_U.hpp.

Constructor & Destructor Documentation

◆ ~Bundle_U()

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

Definition at line 59 of file ROL_Bundle_U.hpp.

◆ Bundle_U()

template<typename Real>
ROL::Bundle_U< Real >::Bundle_U ( const unsigned maxSize = 10,
const Real coeff = 0.0,
const Real omega = 2.0,
const unsigned remSize = 2 )

Member Function Documentation

◆ remove()

template<typename Real>
void ROL::Bundle_U< Real >::remove ( const std::vector< unsigned > & ind)
private

◆ add()

template<typename Real>
void ROL::Bundle_U< Real >::add ( const Vector< Real > & g,
const Real le,
const Real dm )
private

Definition at line 42 of file ROL_Bundle_U_Def.hpp.

References distanceMeasures_, dualVariables_, linearizationErrors_, size_, subgradients_, and zero.

Referenced by reset().

◆ initialize()

template<typename Real>
void ROL::Bundle_U< Real >::initialize ( const Vector< Real > & g)
virtual

◆ solveDual()

template<typename Real>
virtual unsigned ROL::Bundle_U< Real >::solveDual ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
pure virtual

◆ linearizationError()

template<typename Real>
const Real ROL::Bundle_U< Real >::linearizationError ( const unsigned i) const

Definition at line 94 of file ROL_Bundle_U_Def.hpp.

References linearizationErrors_.

◆ distanceMeasure()

template<typename Real>
const Real ROL::Bundle_U< Real >::distanceMeasure ( const unsigned i) const

Definition at line 99 of file ROL_Bundle_U_Def.hpp.

References distanceMeasures_.

◆ subgradient()

template<typename Real>
const Vector< Real > & ROL::Bundle_U< Real >::subgradient ( const unsigned i) const

◆ getDualVariable()

template<typename Real>
const Real ROL::Bundle_U< Real >::getDualVariable ( const unsigned i) const

◆ setDualVariable()

template<typename Real>
void ROL::Bundle_U< Real >::setDualVariable ( const unsigned i,
const Real val )

◆ resetDualVariables()

template<typename Real>
void ROL::Bundle_U< Real >::resetDualVariables ( void )

Definition at line 119 of file ROL_Bundle_U_Def.hpp.

References dualVariables_, size_, and zero.

Referenced by ROL::Bundle_U_TT< Real >::solveDual_TT().

◆ computeAlpha()

template<typename Real>
const Real ROL::Bundle_U< Real >::computeAlpha ( const Real dm,
const Real le ) const

Definition at line 125 of file ROL_Bundle_U_Def.hpp.

References alpha(), coeff_, omega_, and ROL::ROL_EPSILON().

Referenced by alpha().

◆ alpha()

◆ size()

◆ aggregate()

template<typename Real>
void ROL::Bundle_U< Real >::aggregate ( Vector< Real > & aggSubGrad,
Real & aggLinErr,
Real & aggDistMeas ) const

◆ reset()

template<typename Real>
void ROL::Bundle_U< Real >::reset ( const Vector< Real > & g,
const Real le,
const Real dm )

◆ update()

template<typename Real>
void ROL::Bundle_U< Real >::update ( const bool flag,
const Real linErr,
const Real distMeas,
const Vector< Real > & g,
const Vector< Real > & s )

◆ GiGj()

◆ dotGi()

template<typename Real>
const Real ROL::Bundle_U< Real >::dotGi ( const unsigned i,
const Vector< Real > & x ) const
protected

◆ addGi()

template<typename Real>
void ROL::Bundle_U< Real >::addGi ( const unsigned i,
const Real a,
Vector< Real > & x ) const
protected

◆ evaluateObjective()

template<typename Real>
Real ROL::Bundle_U< Real >::evaluateObjective ( std::vector< Real > & g,
const std::vector< Real > & x,
const Real t ) const
protected

Definition at line 241 of file ROL_Bundle_U_Def.hpp.

References alpha(), dotGi(), eG_, gx_, size(), subgradient(), tG_, and yG_.

Referenced by ROL::Bundle_U_AS< Real >::solveDual_arbitrary().

◆ solveDual_dim1()

template<typename Real>
unsigned ROL::Bundle_U< Real >::solveDual_dim1 ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
protected

◆ solveDual_dim2()

template<typename Real>
unsigned ROL::Bundle_U< Real >::solveDual_dim2 ( const Real t,
const unsigned maxit = 1000,
const Real tol = 1.e-8 )
protected

Member Data Documentation

◆ subgradients_

template<typename Real>
std::vector<Ptr<Vector<Real> > > ROL::Bundle_U< Real >::subgradients_
private

Definition at line 30 of file ROL_Bundle_U.hpp.

Referenced by add(), aggregate(), Bundle_U(), initialize(), remove(), subgradient(), and update().

◆ linearizationErrors_

template<typename Real>
std::vector<Real> ROL::Bundle_U< Real >::linearizationErrors_
private

◆ distanceMeasures_

template<typename Real>
std::vector<Real> ROL::Bundle_U< Real >::distanceMeasures_
private

Definition at line 32 of file ROL_Bundle_U.hpp.

Referenced by add(), aggregate(), alpha(), Bundle_U(), distanceMeasure(), initialize(), remove(), and update().

◆ dualVariables_

template<typename Real>
std::vector<Real> ROL::Bundle_U< Real >::dualVariables_
private

◆ tG_

template<typename Real>
Ptr<Vector<Real> > ROL::Bundle_U< Real >::tG_
private

Definition at line 36 of file ROL_Bundle_U.hpp.

Referenced by aggregate(), evaluateObjective(), and initialize().

◆ eG_

template<typename Real>
Ptr<Vector<Real> > ROL::Bundle_U< Real >::eG_
private

Definition at line 37 of file ROL_Bundle_U.hpp.

Referenced by aggregate(), evaluateObjective(), and initialize().

◆ yG_

template<typename Real>
Ptr<Vector<Real> > ROL::Bundle_U< Real >::yG_
private

Definition at line 38 of file ROL_Bundle_U.hpp.

Referenced by aggregate(), evaluateObjective(), and initialize().

◆ gx_

template<typename Real>
Ptr<Vector<Real> > ROL::Bundle_U< Real >::gx_
private

Definition at line 39 of file ROL_Bundle_U.hpp.

Referenced by evaluateObjective(), initialize(), and solveDual_dim2().

◆ ge_

template<typename Real>
Ptr<Vector<Real> > ROL::Bundle_U< Real >::ge_
private

Definition at line 40 of file ROL_Bundle_U.hpp.

Referenced by initialize().

◆ size_

template<typename Real>
unsigned ROL::Bundle_U< Real >::size_
private

◆ maxSize_

template<typename Real>
unsigned ROL::Bundle_U< Real >::maxSize_
private

Definition at line 44 of file ROL_Bundle_U.hpp.

Referenced by Bundle_U(), initialize(), and reset().

◆ remSize_

template<typename Real>
unsigned ROL::Bundle_U< Real >::remSize_
private

Definition at line 45 of file ROL_Bundle_U.hpp.

Referenced by Bundle_U(), and reset().

◆ coeff_

template<typename Real>
Real ROL::Bundle_U< Real >::coeff_
private

Definition at line 46 of file ROL_Bundle_U.hpp.

Referenced by Bundle_U(), and computeAlpha().

◆ omega_

template<typename Real>
Real ROL::Bundle_U< Real >::omega_
private

Definition at line 47 of file ROL_Bundle_U.hpp.

Referenced by Bundle_U(), and computeAlpha().

◆ isInitialized_

template<typename Real>
bool ROL::Bundle_U< Real >::isInitialized_
private

Definition at line 49 of file ROL_Bundle_U.hpp.

Referenced by Bundle_U(), and initialize().


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