44#ifndef ROL_PRIMALDUALINTERIORPOINTREDUCEDRESIDUAL_H
45#define ROL_PRIMALDUALINTERIORPOINTREDUCEDRESIDUAL_H
113 typedef ROL::ParameterList
PL;
134 ROL::Ptr<const V>
x_;
135 ROL::Ptr<const V>
l_;
155 const ROL::Ptr<CON> &con,
157 ROL::Ptr<V> &scratch ) :
164 ROL::Ptr<BND> bnd =
penalty_->getBoundConstraint();
165 xl_ = bnd->getLowerBound();
166 xu_ = bnd->getUpperBound();
170 const PV &x_pv =
dynamic_cast<const PV&
>(x);
183 const PV &x_pv =
dynamic_cast<const PV&
>(x);
190 obj_->update(*
x_,flag,iter);
191 con_->update(*
x_,flag,iter);
199 PV &c_pv =
dynamic_cast<PV&
>(c);
200 const PV &x_pv =
dynamic_cast<const PV&
>(x);
207 ROL::Ptr<V> cx = c_pv.
get(
OPT);
217 con_->value(*cl_,*
x_,tol);
225 PV &jv_pv =
dynamic_cast<PV&
>(jv);
226 const PV &v_pv =
dynamic_cast<const PV&
>(v);
227 const PV &x_pv =
dynamic_cast<const PV&
>(x);
230 ROL::Ptr<V> jvx = jv_pv.
get(
OPT);
234 ROL::Ptr<const V> vx = v_pv.
get(
OPT);
235 ROL::Ptr<const V> vl = v_pv.
get(
EQUAL);
241 obj_->hessVec(*jvx,*vx,*
x_,tol);
250 Elementwise::DivideAndInvert<Real> divinv;
251 Elementwise::Multiply<Real> mult;
Provides the interface to apply upper and lower bound constraints.
Defines the general constraint operator interface.
Provides the interface to evaluate the Interior Pointy log barrier penalty function with upper and lo...
Provides the interface to apply a linear operator.
Provides the interface to evaluate objective functions.
Defines the linear algebra of vector space on a generic partitioned vector.
std::vector< PV >::size_type size_type
ROL::Ptr< const Vector< Real > > get(size_type i) const
Symmetrized form of the KKT operator for the Type-EB problem with equality and bound multipliers.
void applyJacobian(V &jv, const V &v, const V &x, Real &tol)
Apply the constraint Jacobian at , , to vector .
const ROL::Ptr< const V > maskU_
void update(const Vector< Real > &x, bool flag=true, int iter=-1)
Update constraint functions. x is the optimization variable, flag = true if optimization variable i...
PartitionedVector< Real > PV
void value(V &c, const V &x, Real &tol)
Evaluate the constraint operator at .
static const size_type OPT
int getNumberFunctionEvaluations(void) const
PrimalDualInteriorPointResidual(const ROL::Ptr< PENALTY > &penalty, const ROL::Ptr< CON > &con, const V &x, ROL::Ptr< V > &scratch)
const ROL::Ptr< CON > con_
static const size_type EQUAL
static const size_type UPPER
InteriorPointPenalty< Real > PENALTY
Elementwise::ValueSet< Real > ValueSet
int getNumberGradientEvaluations(void) const
LinearOperator< Real > LOP
static const size_type LOWER
const ROL::Ptr< OBJ > obj_
BoundConstraint< Real > BND
int getNumberConstraintEvaluations(void) const
const ROL::Ptr< const V > maskL_
const ROL::Ptr< PENALTY > penalty_
Defines the linear algebra or vector space interface.