ROL
ROL::Bundle_U< Real > Class Template Referenceabstract

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

#include <ROL_Bundle_U.hpp>

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 59 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 93 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

◆ initialize()

template<typename Real>
virtual 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

◆ distanceMeasure()

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

◆ 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 )

◆ computeAlpha()

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

◆ alpha()

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

◆ size()

template<typename Real>
unsigned ROL::Bundle_U< Real >::size ( void ) const

◆ 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()

template<typename Real>
const Real ROL::Bundle_U< Real >::GiGj ( const unsigned i,
const unsigned j ) const
protected

◆ 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

◆ 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 64 of file ROL_Bundle_U.hpp.

◆ linearizationErrors_

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

Definition at line 65 of file ROL_Bundle_U.hpp.

◆ distanceMeasures_

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

Definition at line 66 of file ROL_Bundle_U.hpp.

◆ dualVariables_

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

Definition at line 68 of file ROL_Bundle_U.hpp.

◆ tG_

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

Definition at line 70 of file ROL_Bundle_U.hpp.

◆ eG_

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

Definition at line 71 of file ROL_Bundle_U.hpp.

◆ yG_

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

Definition at line 72 of file ROL_Bundle_U.hpp.

◆ gx_

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

Definition at line 73 of file ROL_Bundle_U.hpp.

◆ ge_

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

Definition at line 74 of file ROL_Bundle_U.hpp.

◆ size_

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

Definition at line 76 of file ROL_Bundle_U.hpp.

◆ maxSize_

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

Definition at line 78 of file ROL_Bundle_U.hpp.

◆ remSize_

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

Definition at line 79 of file ROL_Bundle_U.hpp.

◆ coeff_

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

Definition at line 80 of file ROL_Bundle_U.hpp.

◆ omega_

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

Definition at line 81 of file ROL_Bundle_U.hpp.

◆ isInitialized_

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

Definition at line 83 of file ROL_Bundle_U.hpp.


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