10#ifndef ROL_POLYHEDRALPROJECTION_DEF_H
11#define ROL_POLYHEDRALPROJECTION_DEF_H
15template<
typename Real>
17 : bnd_(bnd), con_(nullPtr) {}
19template<
typename Real>
26 : bnd_(bnd), con_(con) {
31 if (
con_ != nullPtr) {
32 rcon_ = makePtr<ReducedLinearConstraint<Real>>(con,bnd,
xprim_);
37template<
typename Real>
39 if (con_ == nullPtr) {
47template<
typename Real>
49 if (con_ == nullPtr) {
50 bnd_->pruneActive(v,x);
53 rcon_->setX(makePtrFromRef(x));
56 ns_->apply(v,*xprim_,tol);
60template<
typename Real>
65template<
typename Real>
70template<
typename Real>
75template<
typename Real>
Provides the interface to apply upper and lower bound constraints.
Defines the general constraint operator interface.
Ptr< ReducedLinearConstraint< Real > > rcon_
const Ptr< BoundConstraint< Real > > getBoundConstraint(void) const
const Ptr< Constraint< Real > > con_
Ptr< Vector< Real > > xprim_
virtual void project(Vector< Real > &x, std::ostream &stream=std::cout)
Ptr< Vector< Real > > mul_
const Ptr< Vector< Real > > getResidual(void) const
Ptr< Vector< Real > > xdual_
const Ptr< Vector< Real > > getMultiplier(void) const
virtual void applyJacobian(Vector< Real > &v, const Vector< Real > &x)
Ptr< Vector< Real > > res_
Ptr< NullSpaceOperator< Real > > ns_
PolyhedralProjection(const Ptr< BoundConstraint< Real > > &bnd)
const Ptr< Constraint< Real > > getLinearConstraint(void) const
Defines the linear algebra or vector space interface.
virtual ROL::Ptr< Vector > clone() const =0
Clone to make a new (uninitialized) vector.