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 const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
virtual void scale(const Real alpha)=0
Compute where .
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
virtual void initialize(const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g)
Contains definitions of custom data types in ROL.
ROL::Ptr< Vector< Real > > p_
Provides interface for and implements trust-region subproblem solvers.
Provides the interface to evaluate trust-region model functions.
Defines the linear algebra or vector space interface.
virtual const Ptr< const Vector< Real > > getGradient(void) const
virtual void dualTransform(Vector< Real > &tv, const Vector< Real > &v)
CauchyPoint(ROL::ParameterList &parlist)
void setPredictedReduction(const Real pRed)
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.
ROL::Ptr< Vector< Real > > Hp_
ROL::Ptr< Vector< Real > > g_
Provides interface for the Cauchy point trust-region subproblem solver.
virtual void set(const Vector &x)
Set where .
virtual Real norm() const =0
Returns where .
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)
virtual void primalTransform(Vector< Real > &tv, const Vector< Real > &v)