ROL
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
ROL::Bundle< Real > Class Template Referenceabstract

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

#include <ROL_Bundle.hpp>

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

Public Member Functions

virtual ~Bundle (void)
 
 Bundle (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< Teuchos::RCP< Vector< Real > > > subgradients_
 
std::vector< Real > linearizationErrors_
 
std::vector< Real > distanceMeasures_
 
std::vector< Real > dualVariables_
 
Teuchos::RCP< Vector< Real > > tG_
 
Teuchos::RCP< Vector< Real > > eG_
 
Teuchos::RCP< Vector< Real > > yG_
 
Teuchos::RCP< Vector< Real > > gx_
 
Teuchos::RCP< Vector< Real > > ge_
 
unsigned size_
 
unsigned maxSize_
 
unsigned remSize_
 
Real coeff_
 
Real omega_
 
bool isInitialized_
 

Detailed Description

template<class Real>
class ROL::Bundle< Real >

Provides the interface for and implements a bundle.

Definition at line 62 of file ROL_Bundle.hpp.

Constructor & Destructor Documentation

◆ ~Bundle()

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

Definition at line 124 of file ROL_Bundle.hpp.

◆ Bundle()

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

Definition at line 126 of file ROL_Bundle.hpp.

Member Function Documentation

◆ remove()

template<class Real >
void ROL::Bundle< Real >::remove ( const std::vector< unsigned > &  ind)
inlineprivate

Definition at line 88 of file ROL_Bundle.hpp.

References ROL::Bundle< Real >::size_.

◆ add()

template<class Real >
void ROL::Bundle< Real >::add ( const Vector< Real > &  g,
const Real  le,
const Real  dm 
)
inlineprivate

Definition at line 111 of file ROL_Bundle.hpp.

References ROL::Bundle< Real >::size_.

Referenced by ROL::Bundle< Real >::reset().

◆ initialize()

template<class Real >
virtual void ROL::Bundle< Real >::initialize ( const Vector< Real > &  g)
inlinevirtual

◆ solveDual()

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

◆ linearizationError()

template<class Real >
const Real ROL::Bundle< Real >::linearizationError ( const unsigned  i) const
inline

Definition at line 168 of file ROL_Bundle.hpp.

◆ distanceMeasure()

template<class Real >
const Real ROL::Bundle< Real >::distanceMeasure ( const unsigned  i) const
inline

Definition at line 172 of file ROL_Bundle.hpp.

◆ subgradient()

template<class Real >
const Vector<Real>& ROL::Bundle< Real >::subgradient ( const unsigned  i) const
inline

◆ getDualVariable()

template<class Real >
const Real ROL::Bundle< Real >::getDualVariable ( const unsigned  i) const
inline

◆ setDualVariable()

template<class Real >
void ROL::Bundle< Real >::setDualVariable ( const unsigned  i,
const Real  val 
)
inline

◆ resetDualVariables()

template<class Real >
void ROL::Bundle< Real >::resetDualVariables ( void  )
inline

Definition at line 188 of file ROL_Bundle.hpp.

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

◆ computeAlpha()

template<class Real >
const Real ROL::Bundle< Real >::computeAlpha ( const Real  dm,
const Real  le 
) const
inline

Definition at line 193 of file ROL_Bundle.hpp.

References ROL::Bundle< Real >::alpha().

Referenced by ROL::Bundle< Real >::alpha().

◆ alpha()

template<class Real >
const Real ROL::Bundle< Real >::alpha ( const unsigned  i) const
inline

◆ size()

template<class Real >
unsigned ROL::Bundle< Real >::size ( void  ) const
inline

◆ aggregate()

template<class Real >
void ROL::Bundle< Real >::aggregate ( Vector< Real > &  aggSubGrad,
Real &  aggLinErr,
Real &  aggDistMeas 
) const
inline

◆ reset()

template<class Real >
void ROL::Bundle< Real >::reset ( const Vector< Real > &  g,
const Real  le,
const Real  dm 
)
inline

Definition at line 235 of file ROL_Bundle.hpp.

References ROL::Bundle< Real >::add(), and ROL::Bundle< Real >::size_.

◆ update()

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

Definition at line 262 of file ROL_Bundle.hpp.

References ROL::Vector< Real >::dual(), and ROL::Bundle< Real >::size_.

◆ GiGj()

template<class Real >
const Real ROL::Bundle< Real >::GiGj ( const unsigned  i,
const unsigned  j 
) const
inlineprotected

◆ dotGi()

template<class Real >
const Real ROL::Bundle< Real >::dotGi ( const unsigned  i,
const Vector< Real > &  x 
) const
inlineprotected

◆ addGi()

template<class Real >
void ROL::Bundle< Real >::addGi ( const unsigned  i,
const Real  a,
Vector< Real > &  x 
) const
inlineprotected

◆ evaluateObjective()

template<class Real >
Real ROL::Bundle< Real >::evaluateObjective ( std::vector< Real > &  g,
const std::vector< Real > &  x,
const Real  t 
) const
inlineprotected

◆ solveDual_dim1()

template<class Real >
unsigned ROL::Bundle< Real >::solveDual_dim1 ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprotected

Definition at line 327 of file ROL_Bundle.hpp.

References ROL::Bundle< Real >::setDualVariable().

Referenced by ROL::Bundle_AS< Real >::solveDual().

◆ solveDual_dim2()

template<class Real >
unsigned ROL::Bundle< Real >::solveDual_dim2 ( const Real  t,
const unsigned  maxit = 1000,
const Real  tol = 1.e-8 
)
inlineprotected

Member Data Documentation

◆ subgradients_

template<class Real >
std::vector<Teuchos::RCP<Vector<Real> > > ROL::Bundle< Real >::subgradients_
private

Definition at line 67 of file ROL_Bundle.hpp.

◆ linearizationErrors_

template<class Real >
std::vector<Real> ROL::Bundle< Real >::linearizationErrors_
private

Definition at line 68 of file ROL_Bundle.hpp.

◆ distanceMeasures_

template<class Real >
std::vector<Real> ROL::Bundle< Real >::distanceMeasures_
private

Definition at line 69 of file ROL_Bundle.hpp.

◆ dualVariables_

template<class Real >
std::vector<Real> ROL::Bundle< Real >::dualVariables_
private

Definition at line 71 of file ROL_Bundle.hpp.

◆ tG_

template<class Real >
Teuchos::RCP<Vector<Real> > ROL::Bundle< Real >::tG_
private

◆ eG_

template<class Real >
Teuchos::RCP<Vector<Real> > ROL::Bundle< Real >::eG_
private

◆ yG_

template<class Real >
Teuchos::RCP<Vector<Real> > ROL::Bundle< Real >::yG_
private

◆ gx_

template<class Real >
Teuchos::RCP<Vector<Real> > ROL::Bundle< Real >::gx_
private

◆ ge_

template<class Real >
Teuchos::RCP<Vector<Real> > ROL::Bundle< Real >::ge_
private

Definition at line 77 of file ROL_Bundle.hpp.

◆ size_

template<class Real >
unsigned ROL::Bundle< Real >::size_
private

◆ maxSize_

template<class Real >
unsigned ROL::Bundle< Real >::maxSize_
private

Definition at line 81 of file ROL_Bundle.hpp.

Referenced by ROL::Bundle< Real >::initialize().

◆ remSize_

template<class Real >
unsigned ROL::Bundle< Real >::remSize_
private

Definition at line 82 of file ROL_Bundle.hpp.

◆ coeff_

template<class Real >
Real ROL::Bundle< Real >::coeff_
private

Definition at line 83 of file ROL_Bundle.hpp.

◆ omega_

template<class Real >
Real ROL::Bundle< Real >::omega_
private

Definition at line 84 of file ROL_Bundle.hpp.

◆ isInitialized_

template<class Real >
bool ROL::Bundle< Real >::isInitialized_
private

Definition at line 86 of file ROL_Bundle.hpp.


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