10 #ifndef ROL_RANGE_SPACE_OPERATOR_H
11 #define ROL_RANGE_SPACE_OPERATOR_H
27 const Ptr<Constraint<Real>>
con_;
28 const Ptr<Vector<Real>>
x_;
30 mutable Ptr<Vector<Real>>
b1_;
31 mutable Ptr<Vector<Real>>
b2_;
32 mutable Ptr<Vector<Real>>
mul_;
39 :
con_(con),
x_(dom->clone()) {
41 b1_ = dom->dual().clone();
43 mul_ = ran->dual().clone();
void applyAdjoint(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply adjoint of linear operator.
Projects on to the null space of a linear constraint.
Ptr< Vector< Real > > b2_
Defines the linear algebra or vector space interface.
RangeSpaceOperator(const Ptr< Constraint< Real >> &con, const Ptr< const Vector< Real >> &dom, const Ptr< const Vector< Real >> &ran)
const Ptr< Vector< Real > > x_
void applyInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply inverse of linear operator.
virtual void update(const Vector< Real > &x, bool flag=true, int iter=-1)
Update linear operator.
const Ptr< Constraint< Real > > con_
virtual ~RangeSpaceOperator()
Provides the interface to apply a linear operator.
virtual void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
Ptr< Vector< Real > > b1_
void applyAdjointInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply adjoint of the inverse linear operator.
Defines the general constraint operator interface.
Ptr< Vector< Real > > mul_