44 #ifndef ROL_BOUND_CONSTRAINT_SIMOPT_H
45 #define ROL_BOUND_CONSTRAINT_SIMOPT_H
75 ROL::Ptr<BoundConstraint<Real> >
bnd1_;
76 ROL::Ptr<BoundConstraint<Real> >
bnd2_;
88 if (
bnd1_->isActivated() ||
bnd2_->isActivated() ) {
106 if (
bnd1_->isActivated() ) {
109 if (
bnd2_->isActivated() ) {
125 if (
bnd1_->isActivated() ) {
126 ROL::Ptr<Vector<Real> > x1 = xs.
get_1()->clone(); x1->set(*(xs.
get_1()));
130 if (
bnd2_->isActivated() ) {
131 ROL::Ptr<Vector<Real> > x2 = xs.
get_2()->clone(); x2->set(*(xs.
get_2()));
150 if (
bnd1_->isActivated() ) {
151 ROL::Ptr<Vector<Real> > x1 = xs.
get_1()->clone(); x1->set(*(xs.
get_1()));
152 bnd1_->projectInterior(*x1);
155 if (
bnd2_->isActivated() ) {
156 ROL::Ptr<Vector<Real> > x2 = xs.
get_2()->clone(); x2->set(*(xs.
get_2()));
157 bnd2_->projectInterior(*x2);
174 if (
bnd1_->isActivated() ) {
178 if (
bnd2_->isActivated() ) {
200 if (
bnd1_->isActivated() ) {
201 ROL::Ptr<Vector<Real> > v1 = vs.
get_1()->clone(); v1->set(*(vs.
get_1()));
202 bnd1_->pruneUpperActive(*v1,*(xs.
get_1()),eps);
205 if (
bnd2_->isActivated() ) {
206 ROL::Ptr<Vector<Real> > v2 = vs.
get_2()->clone(); v2->set(*(vs.
get_2()));
207 bnd2_->pruneUpperActive(*v2,*(xs.
get_2()),eps);
232 if (
bnd1_->isActivated() ) {
233 ROL::Ptr<Vector<Real> > v1 = vs.
get_1()->clone(); v1->set(*(vs.
get_1()));
237 if (
bnd2_->isActivated() ) {
238 ROL::Ptr<Vector<Real> > v2 = vs.
get_2()->clone(); v2->set(*(vs.
get_2()));
260 if (
bnd1_->isActivated() ) {
261 ROL::Ptr<Vector<Real> > v1 = vs.
get_1()->clone(); v1->set(*(vs.
get_1()));
262 bnd1_->pruneLowerActive(*v1,*(xs.
get_1()),eps);
265 if (
bnd2_->isActivated() ) {
266 ROL::Ptr<Vector<Real> > v2 = vs.
get_2()->clone(); v2->set(*(vs.
get_2()));
267 bnd2_->pruneLowerActive(*v2,*(xs.
get_2()),eps);
292 if (
bnd1_->isActivated() ) {
293 ROL::Ptr<Vector<Real> > v1 = vs.
get_1()->clone(); v1->set(*(vs.
get_1()));
297 if (
bnd2_->isActivated() ) {
298 ROL::Ptr<Vector<Real> > v2 = vs.
get_2()->clone(); v2->set(*(vs.
get_2()));
305 const ROL::Ptr<const Vector<Real>> l1 =
bnd1_->getLowerBound();
306 const ROL::Ptr<const Vector<Real>> l2 =
bnd2_->getLowerBound();
307 return ROL::makePtr<Vector_SimOpt<Real>>( ROL::constPtrCast<Vector<Real>>(l1),
312 const ROL::Ptr<const Vector<Real>> u1 =
bnd1_->getUpperBound();
313 const ROL::Ptr<const Vector<Real>> u2 =
bnd2_->getUpperBound();
314 return ROL::makePtr<Vector_SimOpt<Real>>( ROL::constPtrCast<Vector<Real>>(u1),
334 if (
bnd1_->isActivated() ) {
335 ROL::Ptr<Vector<Real> > v1 = vs.
get_1()->clone(); v1->set(*(vs.
get_1()));
339 if (
bnd2_->isActivated() ) {
340 ROL::Ptr<Vector<Real> > v2 = vs.
get_2()->clone(); v2->set(*(vs.
get_2()));
362 if (
bnd1_->isActivated() ) {
363 ROL::Ptr<Vector<Real> > v1 = vs.
get_1()->clone(); v1->set(*(vs.
get_1()));
367 if (
bnd2_->isActivated() ) {
368 ROL::Ptr<Vector<Real> > v2 = vs.
get_2()->clone(); v2->set(*(vs.
get_2()));