Go to the documentation of this file.
44 #ifndef ROL_CAUCHYPOINT_H
45 #define ROL_CAUCHYPOINT_H
54 #include "ROL_ParameterList.hpp"
62 ROL::Ptr<Vector<Real> >
g_;
63 ROL::Ptr<Vector<Real> >
p_;
64 ROL::Ptr<Vector<Real> >
Hp_;
79 Real TRsafe = parlist.sublist(
"Step").sublist(
"Trust Region").get(
"Safeguard Size",oe2);
80 eps_ = TRsafe*ROL_EPSILON<Real>();
121 Real tol = std::sqrt(ROL_EPSILON<Real>());
128 Real gnorm = s.
dual().norm();
129 Real gg = gnorm*gnorm;
130 Real alpha = del/gnorm;
131 if ( gBg > ROL_EPSILON<Real>() ) {
132 alpha = std::min(gg/gBg, del/gnorm);
141 pRed_ = alpha*(gg - static_cast<Real>(0.5)*alpha*gBg);
virtual void scale(const Real alpha)=0
Compute where .
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
CauchyPoint(ROL::ParameterList &parlist)
ROL::Ptr< Vector< Real > > g_
virtual void primalTransform(Vector< Real > &tv, const Vector< Real > &v)
Provides the interface to evaluate trust-region model functions.
void cauchypoint_unc(Vector< Real > &s, Real &snorm, int &iflag, int &iter, const Real del, TrustRegionModel< Real > &model)
void run(Vector< Real > &s, Real &snorm, int &iflag, int &iter, const Real del, TrustRegionModel< Real > &model)
Provides interface for and implements trust-region subproblem solvers.
void setPredictedReduction(const Real pRed)
ROL::Ptr< Vector< Real > > p_
virtual void dualTransform(Vector< Real > &tv, const Vector< Real > &v)
Defines the linear algebra or vector space interface.
Provides interface for the Cauchy point trust-region subproblem solver.
Contains definitions of custom data types in ROL.
virtual Real norm() const =0
Returns where .
virtual void set(const Vector &x)
Set where .
virtual const Ptr< const Vector< Real > > getGradient(void) const
void initialize(const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g)
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis,...
ROL::Ptr< Vector< Real > > Hp_
virtual void initialize(const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g)
virtual void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &s, Real &tol)
Apply Hessian approximation to vector.