10 #ifndef ROL_PATHBASEDTARGETLEVEL_U_H
11 #define ROL_PATHBASEDTARGETLEVEL_U_H
21 template<
typename Real>
40 delta_ = parlist.sublist(
"Step").sublist(
"Line Search").sublist(
"Line-Search Method").sublist(
"Path-Based Target Level").get(
"Target Relaxation Parameter",p1);
41 bound_ = parlist.sublist(
"Step").sublist(
"Line Search").sublist(
"Line-Search Method").sublist(
"Path-Based Target Level").get(
"Upper Bound on Path Length",one);
50 void run( Real &alpha, Real &fval,
int &ls_neval,
int &ls_ngrad,
53 Real tol = std::sqrt(ROL_EPSILON<Real>()),
zero(0), half(0.5);
74 alpha = (fval -
target_)/std::abs(gs);
82 sigma_ += alpha*std::sqrt(std::abs(gs));
Provides interface for and implements line searches.
virtual void initialize(const Vector< Real > &x, const Vector< Real > &g)
Provides the interface to evaluate objective functions.
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
virtual Real value(const Vector< Real > &x, Real &tol)=0
Compute value.
void initialize(const Vector< Real > &x, const Vector< Real > &g) override
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) override
Ptr< Vector< Real > > xnew_
Defines the linear algebra or vector space interface.
virtual void update(const Vector< Real > &x, UpdateType type, int iter=-1)
Update objective function.
Objective_SerialSimOpt(const Ptr< Obj > &obj, const V &ui) z0_ zero()
Provides an implementation of path-based target leve line search.
Real ROL_OVERFLOW(void)
Platform-dependent maximum double.
PathBasedTargetLevel_U(ParameterList &parlist)