#include <polyop.hh>
Inheritance diagram for RVL::PolynomialOperator< Scalar >:
Public Member Functions | |
PolynomialOperator (const std::valarray< Scalar > &_coef, Space< Scalar > &_spc) | |
PolynomialOperator (const PolynomialOperator< Scalar > &s) | |
~PolynomialOperator () | |
virtual const Space< Scalar > & | getDomain () const |
access to domain, range | |
virtual const Space< Scalar > & | getRange () const |
virtual void | write (RVLException &e) const |
virtual ostream & | write (ostream &str) const |
Protected Member Functions | |
virtual void | apply (const Vector< Scalar > &x, Vector< Scalar > &y) const |
![]() | |
virtual void | applyDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const |
![]() | |
virtual void | applyAdjDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) const |
![]() | |
void | applyInverseDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) const |
Since this is a diagonal operator, the inverse of the derivative amounts to performing elementwise division. | |
void | applyAdjInverseDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const |
Diagonal op => symetric. | |
virtual Operator< Scalar > * | clone () const |
virtual copy contructor, also accessible only through OperatorEvaluation. | |
Protected Attributes | |
Space< Scalar > & | spc |
std::valarray< Scalar > | coef |
The coefficients are in ascending order of power (. Powers are computed elementwise, and the Vector::linComb method is used for addition and scaling.
Definition at line 48 of file polyop.hh.
RVL::PolynomialOperator< Scalar >::PolynomialOperator | ( | const std::valarray< Scalar > & | _coef, | |
Space< Scalar > & | _spc | |||
) |
RVL::PolynomialOperator< Scalar >::PolynomialOperator | ( | const PolynomialOperator< Scalar > & | s | ) |
RVL::PolynomialOperator< Scalar >::~PolynomialOperator | ( | ) |
virtual void RVL::PolynomialOperator< Scalar >::apply | ( | const Vector< Scalar > & | x, | |
Vector< Scalar > & | y | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 59 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::coef, RVL::Vector< Scalar >::eval(), and RVL::Vector< Scalar >::linComb().
virtual void RVL::PolynomialOperator< Scalar >::applyDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 77 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::coef, RVL::Vector< Scalar >::eval(), RVL::Vector< Scalar >::linComb(), and RVL::Vector< Scalar >::zero().
Referenced by RVL::PolynomialOperator< Scalar >::applyAdjDeriv().
virtual void RVL::PolynomialOperator< Scalar >::applyAdjDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 100 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::applyDeriv().
void RVL::PolynomialOperator< Scalar >::applyInverseDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx | |||
) | const [protected, virtual] |
Since this is a diagonal operator, the inverse of the derivative amounts to performing elementwise division.
Implements RVL::OperatorWithInvertibleDeriv< Scalar >.
Definition at line 109 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::coef, RVL::Vector< Scalar >::eval(), RVL::Vector< Scalar >::linComb(), and RVL::Vector< Scalar >::zero().
Referenced by RVL::PolynomialOperator< Scalar >::applyAdjInverseDeriv().
void RVL::PolynomialOperator< Scalar >::applyAdjInverseDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
Diagonal op => symetric.
Implements RVL::OperatorWithInvertibleDeriv< Scalar >.
Definition at line 133 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::applyInverseDeriv().
virtual Operator<Scalar>* RVL::PolynomialOperator< Scalar >::clone | ( | ) | const [protected, virtual] |
virtual copy contructor, also accessible only through OperatorEvaluation.
Usually implemented with operator new and copy constructor of concrete child class.
Implements RVL::Operator< Scalar >.
Definition at line 144 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::PolynomialOperator().
virtual const Space<Scalar>& RVL::PolynomialOperator< Scalar >::getDomain | ( | ) | const [virtual] |
access to domain, range
Implements RVL::Operator< Scalar >.
Definition at line 154 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::spc.
virtual const Space<Scalar>& RVL::PolynomialOperator< Scalar >::getRange | ( | ) | const [virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 155 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::spc.
virtual void RVL::PolynomialOperator< Scalar >::write | ( | RVLException & | e | ) | const [virtual] |
Reimplemented from RVL::Writeable.
Definition at line 157 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::coef.
virtual ostream& RVL::PolynomialOperator< Scalar >::write | ( | ostream & | str | ) | const [virtual] |
Implements RVL::Writeable.
Definition at line 164 of file polyop.hh.
References RVL::PolynomialOperator< Scalar >::coef.
Space<Scalar>& RVL::PolynomialOperator< Scalar >::spc [protected] |
Definition at line 51 of file polyop.hh.
Referenced by RVL::PolynomialOperator< Scalar >::getDomain(), and RVL::PolynomialOperator< Scalar >::getRange().
std::valarray<Scalar> RVL::PolynomialOperator< Scalar >::coef [protected] |
Definition at line 52 of file polyop.hh.
Referenced by RVL::PolynomialOperator< Scalar >::apply(), RVL::PolynomialOperator< Scalar >::applyDeriv(), RVL::PolynomialOperator< Scalar >::applyInverseDeriv(), and RVL::PolynomialOperator< Scalar >::write().