#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().
1.4.7