ROL
ROL::LineSearch< Real > Class Template Referenceabstract

Provides interface for and implements line searches. More...

#include <ROL_LineSearch.hpp>

Inheritance diagram for ROL::LineSearch< Real >:

Public Member Functions

virtual ~LineSearch ()
 LineSearch (ROL::ParameterList &parlist)
virtual void initialize (const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g, Objective< Real > &obj, BoundConstraint< Real > &con)
virtual void run (Real &alpha, Real &fval, int &ls_neval, int &ls_ngrad, const Real &gs, const Vector< Real > &s, const Vector< Real > &x, Objective< Real > &obj, BoundConstraint< Real > &con)=0
void setData (Real &eps, const Vector< Real > &g)
void setMaxitUpdate (Real &alpha, Real &fnew, const Real &fold)

Protected Member Functions

virtual bool status (const ELineSearch type, int &ls_neval, int &ls_ngrad, const Real alpha, const Real fold, const Real sgold, const Real fnew, const Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con)
virtual Real getInitialAlpha (int &ls_neval, int &ls_ngrad, const Real fval, const Real gs, const Vector< Real > &x, const Vector< Real > &s, Objective< Real > &obj, BoundConstraint< Real > &con)
void setNextInitialAlpha (Real alpha)
void updateIterate (Vector< Real > &xnew, const Vector< Real > &x, const Vector< Real > &s, Real alpha, BoundConstraint< Real > &con)
bool useLocalMinimizer ()
bool takeNoStep ()

Private Attributes

ECurvatureCondition econd_
EDescent edesc_
bool useralpha_
bool usePrevAlpha_
Real alpha0_
Real alpha0bnd_
int maxit_
Real c1_
Real c2_
Real c3_
Real eps_
Real fmin_
Real alphaMin_
bool acceptMin_
bool itcond_
ROL::Ptr< Vector< Real > > xtst_
ROL::Ptr< Vector< Real > > d_
ROL::Ptr< Vector< Real > > g_
ROL::Ptr< Vector< Real > > grad_

Detailed Description

template<class Real>
class ROL::LineSearch< Real >

Provides interface for and implements line searches.

Definition at line 28 of file ROL_LineSearch.hpp.

Constructor & Destructor Documentation

◆ ~LineSearch()

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

Definition at line 57 of file ROL_LineSearch.hpp.

◆ LineSearch()

Member Function Documentation

◆ initialize()

◆ run()

template<class Real>
virtual void ROL::LineSearch< Real >::run ( Real & alpha,
Real & fval,
int & ls_neval,
int & ls_ngrad,
const Real & gs,
const Vector< Real > & s,
const Vector< Real > & x,
Objective< Real > & obj,
BoundConstraint< Real > & con )
pure virtual

◆ setData()

template<class Real>
void ROL::LineSearch< Real >::setData ( Real & eps,
const Vector< Real > & g )
inline

Definition at line 110 of file ROL_LineSearch.hpp.

References eps_, and grad_.

◆ setMaxitUpdate()

template<class Real>
void ROL::LineSearch< Real >::setMaxitUpdate ( Real & alpha,
Real & fnew,
const Real & fold )
inline

Definition at line 117 of file ROL_LineSearch.hpp.

References acceptMin_, alphaMin_, fmin_, itcond_, and setNextInitialAlpha().

◆ status()

◆ getInitialAlpha()

◆ setNextInitialAlpha()

template<class Real>
void ROL::LineSearch< Real >::setNextInitialAlpha ( Real alpha)
inlineprotected

Definition at line 263 of file ROL_LineSearch.hpp.

References alpha0_, and usePrevAlpha_.

Referenced by ROL::ScalarMinimizationLineSearch< Real >::run(), and setMaxitUpdate().

◆ updateIterate()

◆ useLocalMinimizer()

template<class Real>
bool ROL::LineSearch< Real >::useLocalMinimizer ( )
inlineprotected

Definition at line 281 of file ROL_LineSearch.hpp.

References acceptMin_, and itcond_.

◆ takeNoStep()

template<class Real>
bool ROL::LineSearch< Real >::takeNoStep ( )
inlineprotected

Definition at line 285 of file ROL_LineSearch.hpp.

References acceptMin_, and itcond_.

Member Data Documentation

◆ econd_

template<class Real>
ECurvatureCondition ROL::LineSearch< Real >::econd_
private

Definition at line 31 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), and status().

◆ edesc_

template<class Real>
EDescent ROL::LineSearch< Real >::edesc_
private

Definition at line 32 of file ROL_LineSearch.hpp.

Referenced by getInitialAlpha(), LineSearch(), and status().

◆ useralpha_

template<class Real>
bool ROL::LineSearch< Real >::useralpha_
private

Definition at line 34 of file ROL_LineSearch.hpp.

Referenced by getInitialAlpha(), and LineSearch().

◆ usePrevAlpha_

template<class Real>
bool ROL::LineSearch< Real >::usePrevAlpha_
private

Definition at line 35 of file ROL_LineSearch.hpp.

Referenced by getInitialAlpha(), LineSearch(), and setNextInitialAlpha().

◆ alpha0_

template<class Real>
Real ROL::LineSearch< Real >::alpha0_
private

Definition at line 36 of file ROL_LineSearch.hpp.

Referenced by getInitialAlpha(), LineSearch(), and setNextInitialAlpha().

◆ alpha0bnd_

template<class Real>
Real ROL::LineSearch< Real >::alpha0bnd_
private

Definition at line 37 of file ROL_LineSearch.hpp.

Referenced by getInitialAlpha(), and LineSearch().

◆ maxit_

template<class Real>
int ROL::LineSearch< Real >::maxit_
private

Definition at line 38 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), and status().

◆ c1_

template<class Real>
Real ROL::LineSearch< Real >::c1_
private

Definition at line 39 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), and status().

◆ c2_

template<class Real>
Real ROL::LineSearch< Real >::c2_
private

Definition at line 40 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), and status().

◆ c3_

template<class Real>
Real ROL::LineSearch< Real >::c3_
private

Definition at line 41 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), and status().

◆ eps_

template<class Real>
Real ROL::LineSearch< Real >::eps_
private

Definition at line 42 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), setData(), and status().

◆ fmin_

template<class Real>
Real ROL::LineSearch< Real >::fmin_
private

Definition at line 43 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), setMaxitUpdate(), and status().

◆ alphaMin_

template<class Real>
Real ROL::LineSearch< Real >::alphaMin_
private

Definition at line 44 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), setMaxitUpdate(), and status().

◆ acceptMin_

template<class Real>
bool ROL::LineSearch< Real >::acceptMin_
private

Definition at line 45 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), setMaxitUpdate(), takeNoStep(), and useLocalMinimizer().

◆ itcond_

template<class Real>
bool ROL::LineSearch< Real >::itcond_
private

Definition at line 46 of file ROL_LineSearch.hpp.

Referenced by LineSearch(), setMaxitUpdate(), status(), takeNoStep(), and useLocalMinimizer().

◆ xtst_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::LineSearch< Real >::xtst_
private

Definition at line 48 of file ROL_LineSearch.hpp.

Referenced by initialize(), and status().

◆ d_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::LineSearch< Real >::d_
private

Definition at line 49 of file ROL_LineSearch.hpp.

Referenced by getInitialAlpha(), initialize(), and status().

◆ g_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::LineSearch< Real >::g_
private

Definition at line 50 of file ROL_LineSearch.hpp.

Referenced by initialize(), and status().

◆ grad_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::LineSearch< Real >::grad_
private

Definition at line 51 of file ROL_LineSearch.hpp.

Referenced by initialize(), setData(), and status().


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