44 #ifndef ROL_TRUSTREGIONMODEL_H 45 #define ROL_TRUSTREGIONMODEL_H 69 Teuchos::RCP<Objective<Real> >
obj_;
70 Teuchos::RCP<const Vector<Real> >
x_,
g_;
71 Teuchos::RCP<Vector<Real> >
dual_;
83 obj_ = Teuchos::rcpFromRef(obj);
84 x_ = Teuchos::rcpFromRef(x);
85 g_ = Teuchos::rcpFromRef(g);
93 const bool useSecantPrecond,
const bool useSecantHessVec)
95 obj_ = Teuchos::rcpFromRef(obj);
96 x_ = Teuchos::rcpFromRef(x);
97 g_ = Teuchos::rcpFromRef(g);
108 dual_->scale(static_cast<Real>(0.5));
118 obj_->hessVec(g,s,*
x_,tol);
128 obj_->hessVec(hv,v,*
x_,tol);
137 obj_->invHessVec(hv,v,*
x_,tol);
146 obj_->precond(Pv,v,*
x_,tol);
162 virtual const Teuchos::RCP<const Vector<Real> >
getGradient(
void)
const {
166 virtual const Teuchos::RCP<const Vector<Real> >
getIterate(
void)
const {
170 virtual const Teuchos::RCP<Objective<Real> >
getObjective(
void)
const {
175 return Teuchos::null;
Provides the interface to evaluate objective functions.
const bool useSecantHessVec_
virtual void plus(const Vector &x)=0
Compute , where .
TrustRegionModel(Objective< Real > &obj, const Vector< Real > &x, const Vector< Real > &g, const Teuchos::RCP< Secant< Real > > &secant, const bool useSecantPrecond, const bool useSecantHessVec)
virtual ~TrustRegionModel()
virtual Teuchos::RCP< Vector > clone() const =0
Clone to make a new (uninitialized) vector.
virtual const Teuchos::RCP< BoundConstraint< Real > > getBoundConstraint(void) const
Provides the interface to evaluate trust-region model functions.
Defines the linear algebra or vector space interface.
virtual void updatePredictedReduction(Real &pred, const Vector< Real > &s)
virtual void dualTransform(Vector< Real > &tv, const Vector< Real > &v)
virtual void update(const Vector< Real > &x, bool flag=true, int iter=-1)
Update objective function.
virtual const Vector & dual() const
Return dual representation of , for example, the result of applying a Riesz map, or change of basis...
virtual Real value(const Vector< Real > &s, Real &tol)
Compute value.
virtual const Teuchos::RCP< const Vector< Real > > getGradient(void) const
Provides interface for and implements limited-memory secant operators.
const bool useSecantPrecond_
virtual void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &s, Real &tol)
Apply Hessian approximation to vector.
virtual void invHessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &s, Real &tol)
Apply inverse Hessian approximation to vector.
virtual void gradient(Vector< Real > &g, const Vector< Real > &s, Real &tol)
Compute gradient.
Teuchos::RCP< Objective< Real > > obj_
virtual void set(const Vector &x)
Set where .
virtual void updateActualReduction(Real &ared, const Vector< Real > &s)
Teuchos::RCP< Secant< Real > > secant_
Teuchos::RCP< const Vector< Real > > g_
virtual void precond(Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &s, Real &tol)
Apply preconditioner to vector.
TrustRegionModel(Objective< Real > &obj, const Vector< Real > &x, const Vector< Real > &g, const bool init=true)
Teuchos::RCP< const Vector< Real > > x_
Teuchos::RCP< Vector< Real > > dual_
virtual void primalTransform(Vector< Real > &tv, const Vector< Real > &v)
virtual const Teuchos::RCP< Objective< Real > > getObjective(void) const
virtual const Teuchos::RCP< const Vector< Real > > getIterate(void) const