44 #ifndef ROL_OBJECTIVE_FROM_CONSTRAINT_H
45 #define ROL_OBJECTIVE_FROM_CONSTRAINT_H
66 ROL::Ptr<Constraint<Real> >
con_;
67 ROL::Ptr<Vector<Real> >
l_;
68 ROL::Ptr<Vector<Real> >
c_;
75 con_(con),
l_(l.clone()),
c_(l.dual().clone()) {
82 con_->update(x,flag,iter);
87 return l_->dot(
c_->dual());
91 con_->applyAdjointJacobian(g,*
l_,x,tol);
95 con_->applyAdjointHessian(hv,*
l_,v,x,tol);
106 #endif // ROL_OBJECTIVE_FROM_CONSTRAINT_H
void updateMultiplier(const Vector< Real > &l)
Provides the interface to evaluate objective functions.
Form an objective function from a ROL::Constraint and a vector in the dual constraint space ...
ROL::Ptr< Vector< Real > > c_
Real value(const Vector< Real > &x, Real &tol)
Compute value.
void update(const Vector< Real > &x, bool flag=true, int iter=-1)
Update objective function.
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol)
Compute gradient.
ROL::Ptr< Constraint< Real > > con_
Defines the linear algebra or vector space interface.
ROL::Ptr< Vector< Real > > l_
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply Hessian approximation to vector.
virtual ~ObjectiveFromConstraint()
ObjectiveFromConstraint(const ROL::Ptr< Constraint< Real > > &con, const Vector< Real > &l)
Defines the general constraint operator interface.