10 #ifndef ROL_SLACKLESSOBJECTIVE_HPP
11 #define ROL_SLACKLESSOBJECTIVE_HPP
24 template<
typename Real>
27 const Ptr<Objective<Real>>
obj_;
46 void setParameter(
const std::vector<Real> ¶m)
override;
58 #endif // ROL_SLACKLESSOBJECTIVE_HPP
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol) override
Compute gradient.
Real dirDeriv(const Vector< Real > &x, const Vector< Real > &d, Real &tol) override
Compute directional derivative.
Provides the interface to evaluate objective functions.
void setParameter(const std::vector< Real > ¶m) override
void update(const Vector< Real > &x, UpdateType type, int iter=-1) override
Update objective function.
void zeroSlack(Vector< Real > &x) const
Defines the linear algebra or vector space interface.
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply Hessian approximation to vector.
void precond(Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply preconditioner to vector.
Real value(const Vector< Real > &x, Real &tol) override
Compute value.
Ptr< Vector< Real > > getOpt(Vector< Real > &xs) const
This class strips out the slack variables from objective evaluations to create the new objective ...
SlacklessObjective(const Ptr< Objective< Real >> &obj)
Ptr< Objective< Real > > getObjective(void) const
const Ptr< Objective< Real > > obj_
void invHessVec(Vector< Real > &ihv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply inverse Hessian approximation to vector.