44 #ifndef ROL_CAUCHYPOINT_H 45 #define ROL_CAUCHYPOINT_H 55 #include "Teuchos_ParameterList.hpp" 63 Teuchos::RCP<Vector<Real> >
g_;
64 Teuchos::RCP<Vector<Real> >
p_;
65 Teuchos::RCP<Vector<Real> >
Hp_;
80 Real TRsafe = parlist.sublist(
"Step").sublist(
"Trust Region").get(
"Safeguard Size",oe2);
81 eps_ = TRsafe*ROL_EPSILON<Real>();
122 Real tol = std::sqrt(ROL_EPSILON<Real>());
129 Real gnorm = s.
dual().norm();
130 Real gg = gnorm*gnorm;
131 Real alpha = del/gnorm;
132 if ( gBg > ROL_EPSILON<Real>() ) {
133 alpha = std::min(gg/gBg, del/gnorm);
142 pRed_ = alpha*(gg -
static_cast<Real
>(0.5)*alpha*gBg);
virtual void scale(const Real alpha)=0
Compute where .
CauchyPoint(Teuchos::ParameterList &parlist)
virtual void initialize(const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g)
Teuchos::RCP< Vector< Real > > p_
Contains definitions of custom data types in ROL.
virtual Teuchos::RCP< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
Provides interface for and implements trust-region subproblem solvers.
Provides the interface to evaluate trust-region model functions.
Contains definitions for helper functions in ROL.
Defines the linear algebra or vector space interface.
virtual void dualTransform(Vector< Real > &tv, const Vector< Real > &v)
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
virtual const Teuchos::RCP< const Vector< Real > > getGradient(void) const
void setPredictedReduction(const Real pRed)
Teuchos::RCP< Vector< Real > > Hp_
void initialize(const Vector< Real > &x, const Vector< Real > &s, const Vector< Real > &g)
Teuchos::RCP< Vector< Real > > g_
virtual void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &s, Real &tol)
Apply Hessian approximation to vector.
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)