10#ifndef ROL_REDUCE_LINEAR_CONSTRAINT_DEF_H
11#define ROL_REDUCE_LINEAR_CONSTRAINT_DEF_H
15template<
typename Real>
25template<
typename Real>
30template<
typename Real>
35template<
typename Real>
40template<
typename Real>
45template<
typename Real>
48 nsop_->apply(x,y,tol);
51template<
typename Real>
56template<
typename Real>
59 Ptr<Vector<Real>> ran = c->clone();
61 Real cnorm = ran->norm();
62 if ( cnorm >
static_cast<Real
>(1e-4)*tol ) {
64 Ptr<Vector<Real>> xzero =
x_->clone(); xzero->zero();
65 lcon_->value(*ran,*xzero,tol);
66 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.