#ifndef __SEQ_POLYMULTOP #define __SEQ_POLYMULTOP #include "seqspace.hh" #include "linop.hh" class PolyMultOp: public LinearOp { /** Defines multiplication by a (fixed) polynomial as a RVL::LinearOp. Uses SeqDC wrapper of std::list as coefficient sequence data structure, and std::list method to implement. */ private: SeqSpace dom; SeqDC fac; PolyMultOp(); protected: LinearOp * clone() const { return new PolyMultOp(*this); } void apply(Vector const & x, Vector & y) const; void applyAdj(Vector const & x, Vector & y) const; public: PolyMultOp(list const & a): dom(), fac() { AssignList f(a); f(fac); } PolyMultOp(PolyMultOp const & m): dom(), fac(m.fac) {} ~PolyMultOp() {} Space const & getDomain() const { return dom; } Space const & getRange() const { return dom; } ostream & write(ostream & str) const; }; #endif