10#ifndef ROL_PRIMALDUALINTERIORPOINTREDUCEDRESIDUAL_H
11#define ROL_PRIMALDUALINTERIORPOINTREDUCEDRESIDUAL_H
79 typedef ROL::ParameterList
PL;
100 ROL::Ptr<const V>
x_;
101 ROL::Ptr<const V>
l_;
121 const ROL::Ptr<CON> &con,
123 ROL::Ptr<V> &scratch ) :
130 ROL::Ptr<BND> bnd =
penalty_->getBoundConstraint();
131 xl_ = bnd->getLowerBound();
132 xu_ = bnd->getUpperBound();
136 const PV &x_pv =
dynamic_cast<const PV&
>(x);
149 const PV &x_pv =
dynamic_cast<const PV&
>(x);
156 obj_->update(*
x_,flag,iter);
157 con_->update(*
x_,flag,iter);
165 PV &c_pv =
dynamic_cast<PV&
>(c);
166 const PV &x_pv =
dynamic_cast<const PV&
>(x);
173 ROL::Ptr<V> cx = c_pv.
get(
OPT);
183 con_->value(*cl_,*
x_,tol);
191 PV &jv_pv =
dynamic_cast<PV&
>(jv);
192 const PV &v_pv =
dynamic_cast<const PV&
>(v);
193 const PV &x_pv =
dynamic_cast<const PV&
>(x);
196 ROL::Ptr<V> jvx = jv_pv.
get(
OPT);
200 ROL::Ptr<const V> vx = v_pv.
get(
OPT);
201 ROL::Ptr<const V> vl = v_pv.
get(
EQUAL);
207 obj_->hessVec(*jvx,*vx,*
x_,tol);
216 Elementwise::DivideAndInvert<Real> divinv;
217 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.