44 #ifndef ROL_SCALED_OBJECTIVE_DEF_HPP
45 #define ROL_SCALED_OBJECTIVE_DEF_HPP
49 template<
typename Real>
51 obj_->update(x,type,iter);
54 template<
typename Real>
57 obj_->setParameter(param);
60 template<
typename Real>
62 return scale_ *
obj_->value(x,tol);
65 template<
typename Real>
67 obj_->gradient(g,x,tol);
71 template<
typename Real>
73 obj_->hessVec(hv,v,x,tol);
77 template<
typename Real>
79 obj_->invHessVec(hv,v,x,tol);
80 hv.
scale(static_cast<Real>(1)/scale_);
83 template<
typename Real>
85 obj_->precond(Pv,v,x,tol);
86 Pv.
scale(static_cast<Real>(1)/scale_);
virtual void scale(const Real alpha)=0
Compute where .
Real value(const Vector< Real > &x, Real &tol) override
Compute value.
void precond(Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply preconditioner to vector.
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
Update objective function.
void setParameter(const std::vector< Real > ¶m) override
Defines the linear algebra or vector space interface.
void invHessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply inverse Hessian approximation to vector.
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply Hessian approximation to vector.
virtual void setParameter(const std::vector< Real > ¶m)
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
Compute gradient.