10 #ifndef ROL_LINEAROPERATORPRODUCT_H
11 #define ROL_LINEAROPERATORPRODUCT_H
34 ROL::Ptr<std::vector<ROL::Ptr<OP> > >
ops_;
40 ops_ = ROL::makePtr<std::vector<OP> >>();
48 ops_ = ROL::makePtr<std::vector<OP> >>();
56 (*ops_)[i]->update(x,flag,
true);
63 (*ops_)[i]->apply(Hv,Hv,tol);
70 (*ops_)[i]->applyInverse(Hv,Hv,tol);
78 #endif // ROL_LINEAROPERATORPRODUCT_H
virtual void apply(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply linear operator.
virtual void update(const Vector< Real > &x, bool flag=true, int iter=-1)
Update linear operator.
LinearOperatorSum(ROL::Ptr< OP > &A, ROL::Ptr< OP > &B, ROL::Ptr< OP > &C)
Defines the linear algebra or vector space interface.
LinearOperator< Real > OP
virtual void applyInverse(Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Apply inverse of linear operator.
Provides the interface to the sequential application of linear operators.
std::vector< ROL::Ptr< OP > >::size_type size_type
Provides the interface to apply a linear operator.
LinearOperatorSum(ROL::Ptr< OP > &A, ROL::Ptr< OP > &B)
virtual void set(const Vector &x)
Set where .
ROL::Ptr< std::vector< ROL::Ptr< OP > > > ops_