44#ifndef ROL_REDUCE_LINEAR_CONSTRAINT_DEF_H
45#define ROL_REDUCE_LINEAR_CONSTRAINT_DEF_H
49template<
typename Real>
59template<
typename Real>
64template<
typename Real>
69template<
typename Real>
74template<
typename Real>
79template<
typename Real>
82 nsop_->apply(x,y,tol);
85template<
typename Real>
90template<
typename Real>
93 Ptr<Vector<Real>> ran = c->clone();
95 Real cnorm = ran->norm();
96 if ( cnorm >
static_cast<Real
>(1e-4)*tol ) {
98 Ptr<Vector<Real>> xzero =
x_->clone(); xzero->zero();
99 lcon_->value(*ran,*xzero,tol);
100 ran->scale(
static_cast<Real
>(-1));
virtual void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
const Ptr< Constraint< Real > > lcon_
void project(Vector< Real > &x, const Vector< Real > &y) const
const Ptr< Vector< Real > > x_
const Ptr< NullSpaceOperator< Real > > nsop_
const Ptr< VectorController< Real > > storage_
Ptr< const Vector< Real > > getFeasibleVector(void) const
Ptr< Objective< Real > > transform(const Ptr< Objective< Real > > &obj) const
ReduceLinearConstraint(const Ptr< Constraint< Real > > &lcon, const Ptr< Vector< Real > > &x, const Ptr< const Vector< Real > > &c)
void feasible(const Ptr< const Vector< Real > > &c)
void project(Vector< Real > &x, const Vector< Real > &y) const
Ptr< Constraint< Real > > getLinearConstraint(void) const
Real ROL_EPSILON(void)
Platform-dependent machine epsilon.