10 #ifndef ROL_CHAIN_RULE_CONSTRAINT_HPP
11 #define ROL_CHAIN_RULE_CONSTRAINT_HPP
29 template<
typename Real>
38 y_(lag_inner.dual().clone()),
39 Jiv_(lag_inner.dual().clone()),
40 aJol_(lag_inner.dual().clone()),
66 Real& tol )
override {
74 Real& tol )
override {
83 Real& tol )
override {
93 Real& tol )
override {
107 Ptr<Vector<Real>>
y_;
117 #endif // ROL_CHAIN_RULE_CONSTRAINT_HPP
virtual void value(Vector< Real > &c, const Vector< Real > &x, Real &tol) override
Evaluate the constraint operator at .
virtual void update(const Vector< Real > &x, bool flag, int iter=-1)
Update constraint functions. x is the optimization variable, flag = true if optimization variable is ...
virtual void plus(const Vector &x)=0
Compute , where .
Ptr< Vector< Real > > HolJiv_
Ptr< Vector< Real > > HiaJol_
Defines the linear algebra or vector space interface.
virtual void applyAdjointJacobian(Vector< Real > &ajl, const Vector< Real > &l, const Vector< Real > &x, Real &tol) override
Apply the adjoint of the the constraint Jacobian at , , to vector .
virtual void update(const Vector< Real > &x, UpdateType type, int iter=-1)
Update constraint function.
virtual void applyAdjointHessian(Vector< Real > &ahlv, const Vector< Real > &l, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the derivative of the adjoint of the constraint Jacobian at to vector in direction ...
const Ptr< Constraint< Real > > outer_con_
Ptr< Vector< Real > > Jiv_
Defines a constaint formed through function composition .
virtual void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) override
Apply the constraint Jacobian at , , to vector .
Ptr< Vector< Real > > aJol_
ChainRuleConstraint(const Ptr< Constraint< Real >> &outer_con, const Ptr< Constraint< Real >> &inner_con, const Vector< Real > &x, const Vector< Real > &lag_inner)
const Ptr< Constraint< Real > > inner_con_
virtual ~ChainRuleConstraint()=default
Defines the general constraint operator interface.