#include <blockop.hh>
Inheritance diagram for RVL::BlockOperator< Scalar >:
Public Member Functions | |
BlockOperator () | |
BlockOperator (const BlockOperator< Scalar > &) | |
virtual | ~BlockOperator () |
virtual const ProductSpace< Scalar > & | getProductRange () const =0 |
access to range as ProductSpace | |
const Space< Scalar > & | getRange () const |
access to range as Space - delegates to getProductRange | |
Protected Member Functions | |
virtual void | applyComponent (int i, const Vector< Scalar > &x, Vector< Scalar > &yi) const =0 |
virtual void | apply (Vector< Scalar > const &x, Vector< Scalar > &y) const |
virtual void | applyComponentDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dyi) const =0 |
, where , | |
virtual void | applyDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const |
applyDeriv() is implemented in terms of applyComponentDeriv(). | |
virtual void | applyComponentAdjDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dyi, Vector< Scalar > &dx) const =0 |
, where | |
virtual void | applyAdjDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) const |
applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv(). | |
virtual void | applyComponentDeriv2 (int i, const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dx1, Vector< Scalar > &dyi) const =0 |
, where , | |
virtual void | applyDeriv2 (const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dx1, Vector< Scalar > &dy) const |
applyDeriv2() is implemented in terms of applyComponentDeriv(). | |
virtual void | applyComponentAdjDeriv2 (int i, const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dyi, Vector< Scalar > &dx1) const =0 |
, where | |
virtual void | applyAdjDeriv2 (const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dy, Vector< Scalar > &dx1) const |
applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv(). | |
virtual BlockOperator< Scalar > * | cloneBlockOp () const =0 |
Primary clone method returns object of this type; parent clone method delegates. | |
Operator< Scalar > * | clone () const |
Friends | |
class | OperatorEvaluation< Scalar > |
Partial derivatives are defined componentwise, as is access to the domain and range as ProductSpaces. As for the parent class, all functions which may change the internal state are protected, accessed only by the corresponding OperatorEvaluation objects, which act on independent captive instances.
Definition at line 48 of file blockop.hh.
RVL::BlockOperator< Scalar >::BlockOperator | ( | ) |
Definition at line 186 of file blockop.hh.
RVL::BlockOperator< Scalar >::BlockOperator | ( | const BlockOperator< Scalar > & | ) |
Definition at line 187 of file blockop.hh.
virtual RVL::BlockOperator< Scalar >::~BlockOperator | ( | ) | [virtual] |
Definition at line 188 of file blockop.hh.
virtual void RVL::BlockOperator< Scalar >::applyComponent | ( | int | i, | |
const Vector< Scalar > & | x, | |||
Vector< Scalar > & | yi | |||
) | const [protected, pure virtual] |
virtual void RVL::BlockOperator< Scalar >::apply | ( | Vector< Scalar > const & | x, | |
Vector< Scalar > & | y | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 58 of file blockop.hh.
References RVL::BlockOperator< Scalar >::applyComponent().
virtual void RVL::BlockOperator< Scalar >::applyComponentDeriv | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dx, | |||
Vector< Scalar > & | dyi | |||
) | const [protected, pure virtual] |
, where ,
Implemented in RVL::TensorOp< Scalar >.
Referenced by RVL::BlockOperator< Scalar >::applyDeriv().
virtual void RVL::BlockOperator< Scalar >::applyDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
applyDeriv() is implemented in terms of applyComponentDeriv().
Default implementation supplied, which may be overridden.
Implements RVL::Operator< Scalar >.
Definition at line 81 of file blockop.hh.
References RVL::BlockOperator< Scalar >::applyComponentDeriv(), and RVL::Components< Scalar >::getSize().
virtual void RVL::BlockOperator< Scalar >::applyComponentAdjDeriv | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dyi, | |||
Vector< Scalar > & | dx | |||
) | const [protected, pure virtual] |
, where
Implemented in RVL::TensorOp< Scalar >.
Referenced by RVL::BlockOperator< Scalar >::applyAdjDeriv().
virtual void RVL::BlockOperator< Scalar >::applyAdjDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx | |||
) | const [protected, virtual] |
applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv().
Default implementation supplied, which may be overridden.
Implements RVL::Operator< Scalar >.
Definition at line 104 of file blockop.hh.
References RVL::BlockOperator< Scalar >::applyComponentAdjDeriv(), RVL::Components< Scalar >::getSize(), and RVL::Vector< Scalar >::linComb().
virtual void RVL::BlockOperator< Scalar >::applyComponentDeriv2 | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dx0, | |||
const Vector< Scalar > & | dx1, | |||
Vector< Scalar > & | dyi | |||
) | const [protected, pure virtual] |
, where ,
Implemented in RVL::TensorOp< Scalar >.
Referenced by RVL::BlockOperator< Scalar >::applyDeriv2().
virtual void RVL::BlockOperator< Scalar >::applyDeriv2 | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx0, | |||
const Vector< Scalar > & | dx1, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
applyDeriv2() is implemented in terms of applyComponentDeriv().
Default implementation supplied, which may be overridden.
Reimplemented from RVL::Operator< Scalar >.
Definition at line 135 of file blockop.hh.
References RVL::BlockOperator< Scalar >::applyComponentDeriv2(), and RVL::Components< Scalar >::getSize().
virtual void RVL::BlockOperator< Scalar >::applyComponentAdjDeriv2 | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dx0, | |||
const Vector< Scalar > & | dyi, | |||
Vector< Scalar > & | dx1 | |||
) | const [protected, pure virtual] |
, where
Implemented in RVL::TensorOp< Scalar >.
Referenced by RVL::BlockOperator< Scalar >::applyAdjDeriv2().
virtual void RVL::BlockOperator< Scalar >::applyAdjDeriv2 | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx0, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx1 | |||
) | const [protected, virtual] |
applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv().
Default implementation supplied, which may be overridden.
Reimplemented from RVL::Operator< Scalar >.
Definition at line 159 of file blockop.hh.
References RVL::BlockOperator< Scalar >::applyComponentAdjDeriv2(), RVL::Components< Scalar >::getSize(), and RVL::Vector< Scalar >::linComb().
virtual BlockOperator<Scalar>* RVL::BlockOperator< Scalar >::cloneBlockOp | ( | ) | const [protected, pure virtual] |
Primary clone method returns object of this type; parent clone method delegates.
Implemented in RVL::TensorOp< Scalar >.
Referenced by RVL::BlockOperator< Scalar >::clone().
Operator<Scalar>* RVL::BlockOperator< Scalar >::clone | ( | ) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 182 of file blockop.hh.
References RVL::BlockOperator< Scalar >::cloneBlockOp().
virtual const ProductSpace<Scalar>& RVL::BlockOperator< Scalar >::getProductRange | ( | ) | const [pure virtual] |
access to range as ProductSpace
Implemented in RVL::TensorOp< Scalar >.
Referenced by RVL::BlockOperator< Scalar >::getRange().
const Space<Scalar>& RVL::BlockOperator< Scalar >::getRange | ( | ) | const [virtual] |
access to range as Space - delegates to getProductRange
Implements RVL::Operator< Scalar >.
Definition at line 193 of file blockop.hh.
References RVL::BlockOperator< Scalar >::getProductRange().
friend class OperatorEvaluation< Scalar > [friend] |