44#ifndef ROL_TYPEBINDICATOROBJECTIVE_H
45#define ROL_TYPEBINDICATOROBJECTIVE_H
60template<
typename Real>
63 const Ptr<PolyhedralProjection<Real>>
proj_;
64 const Ptr<Vector<Real>>
res_;
82 :
proj_(proj),
res_(proj->getResidual()->clone()) {}
87 bool isBndFeasible =
proj_->getBoundConstraint()->isFeasible(x);
88 bool isConFeasible =
true;
89 if (
res_ != nullPtr) {
90 proj_->getLinearConstraint()->value(*
res_,x,tol);
91 if (
res_->norm() > eps) isConFeasible =
false;
Objective_SerialSimOpt(const Ptr< Obj > &obj, const V &ui) z0 zero)()
Provides the interface to apply upper and lower bound constraints.
Defines the general constraint operator interface.
const Ptr< Vector< Real > > res_
void prox(Vector< Real > &Pv, const Vector< Real > &v, Real t, Real &tol)
const Ptr< PolyhedralProjection< Real > > proj_
Real value(const Vector< Real > &x, Real &tol)
TypeBIndicatorObjective(const Ptr< PolyhedralProjection< Real > > &proj)
TypeBIndicatorObjective(const Vector< Real > &xprim, const Vector< Real > &xdual, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &con, const Vector< Real > &mul, const Vector< Real > &res, ParameterList &list) proj_(PolyhedralProjectionFactory< Real >(xprim
TypeBIndicatorObjective(const Ptr< BoundConstraint< Real > > &bnd)
Defines the linear algebra or vector space interface.
virtual void set(const Vector &x)
Set where .
Real ROL_EPSILON(void)
Platform-dependent machine epsilon.
Ptr< PolyhedralProjection< Real > > PolyhedralProjectionFactory(const Vector< Real > &xprim, const Vector< Real > &xdual, const Ptr< BoundConstraint< Real > > &bnd, const Ptr< Constraint< Real > > &con, const Vector< Real > &mul, const Vector< Real > &res, ParameterList &list)