41 Ptr<const vector> xp =
dynamic_cast<const SV&
>(x).getVector();
43 return rt3_*(*xp)[0]*std::pow((*xp)[1],3)*((*xp)[0]-6)/81.0;
48 Ptr<const vector> xp =
dynamic_cast<const SV&
>(x).getVector();
50 Ptr<vector> gp =
dynamic_cast<SV&
>(g).getVector();
52 (*gp)[0] = 2*
rt3_*std::pow((*xp)[1],3)*((*xp)[0]-3)/81.0;
53 (*gp)[1] =
rt3_*(*xp)[0]*std::pow((*xp)[1],2)*((*xp)[0]-6)/27.0;
60 Ptr<const vector> xp =
dynamic_cast<const SV&
>(x).getVector();
61 Ptr<const vector> vp =
dynamic_cast<const SV&
>(v).getVector();
62 Ptr<vector> hvp =
dynamic_cast<SV&
>(hv).getVector();
64 Real a00 = pow((*xp)[1],3)/81.0;
65 Real a01 = pow((*xp)[1],2)*((*xp)[0]-3)/27.0;
66 Real a11 = (*xp)[1]*(std::pow((*xp)[0]-3,2)-9)/27.0;
68 (*hvp)[0] = a00*(*vp)[0] + a01*(*vp)[1];
69 (*hvp)[1] = a01*(*vp)[0] + a11*(*vp)[1];
91 Ptr<const vector> xp =
dynamic_cast<const SV&
>(x).getVector();
92 Ptr<vector> cp =
dynamic_cast<SV&
>(c).getVector();
94 (*cp)[0] = (*xp)[0]/
rt3_ - (*xp)[1];
95 (*cp)[1] = (*xp)[0] +
rt3_*(*xp)[1];
96 (*cp)[2] = -(*xp)[0] -
rt3_*(*xp)[1] + 6;
103 Ptr<const vector> vp =
dynamic_cast<const SV&
>(v).getVector();
104 Ptr<vector> jvp =
dynamic_cast<SV&
>(jv).getVector();
106 (*jvp)[0] = (*vp)[0]/
rt3_ - (*vp)[1];
107 (*jvp)[1] = (*vp)[0] +
rt3_*(*vp)[1];
108 (*jvp)[2] = -(*vp)[0] -
rt3_*(*vp)[1];
116 Ptr<const vector> vp =
dynamic_cast<const SV&
>(v).getVector();
117 Ptr<vector> ajvp =
dynamic_cast<SV&
>(ajv).getVector();
119 (*ajvp)[0] =
rt3_*(*vp)[0]/3 + (*vp)[1] - (*vp)[2];
120 (*ajvp)[1] = -(*vp)[0] +
rt3_*(*vp)[1] -
rt3_*(*vp)[2];
140 return makePtr<Objective_HS24<Real>>();
144 return makePtr<Constraint_HS24<Real>>();
149 Ptr<std::vector<Real>> lp = makePtr<std::vector<Real>>(2,0.0);
152 Ptr<std::vector<Real>> up = makePtr<std::vector<Real>>(2,ROL_INF<Real>());
154 Ptr<Vector<Real>> l = makePtr<StdVector<Real>>(lp);
155 Ptr<Vector<Real>> u = makePtr<StdVector<Real>>(up);
157 return makePtr<Bounds<Real>>(l,u);
161 Ptr<std::vector<Real> > x0p = makePtr<std::vector<Real>>(2);
165 return makePtr<StdVector<Real>>(x0p);
169 Ptr<std::vector<Real> > xp = makePtr<std::vector<Real>>(2);
171 (*xp)[1] = std::sqrt(3.0);
173 return makePtr<StdVector<Real>>(xp);
177 Ptr<std::vector<Real> > lp = makePtr<std::vector<Real>>(3,0.0);
178 return makePtr<StdVector<Real>>(lp);
183 Ptr<std::vector<Real> > lp = makePtr<std::vector<Real>>(3,0.0);
186 Ptr<std::vector<Real> > up = makePtr<std::vector<Real>>(3,ROL_INF<Real>());
188 Ptr<Vector<Real> > l = makePtr<StdVector<Real>>(lp);
189 Ptr<Vector<Real> > u = makePtr<StdVector<Real>>(up);
191 return makePtr<Bounds<Real>>(l,u);
199 #endif // ROL_HS24_HPP
Provides the interface to evaluate objective functions.
Ptr< Vector< Real > > getInitialGuess(void) const
virtual void scale(const Real alpha)=0
Compute where .
Ptr< Constraint< Real > > getInequalityConstraint(void) const
void hessVec(Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply Hessian approximation to vector.
Real value(const Vector< Real > &x, Real &tol)
Compute value.
void value(Vector< Real > &c, const Vector< Real > &x, Real &tol)
Evaluate the constraint operator at .
virtual void zero()
Set to zero vector.
Defines the linear algebra or vector space interface.
Ptr< Vector< Real > > getInequalityMultiplier(void) const
void applyAdjointHessian(Vector< Real > &ahuv, const Vector< Real > &u, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply the derivative of the adjoint of the constraint Jacobian at to vector in direction ...
void gradient(Vector< Real > &g, const Vector< Real > &x, Real &tol)
Compute gradient.
Contains definitions of test objective functions.
void applyJacobian(Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply the constraint Jacobian at , , to vector .
Ptr< BoundConstraint< Real > > getBoundConstraint(void) const
std::vector< Real > vector
std::vector< Real > vector
Ptr< Objective< Real > > getObjective(void) const
Ptr< Vector< Real > > getSolution(const int i=0) const
void applyAdjointJacobian(Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol)
Apply the adjoint of the the constraint Jacobian at , , to vector .
Defines the general constraint operator interface.
Ptr< BoundConstraint< Real > > getSlackBoundConstraint(void) const