#include <op.hh>
Inheritance diagram for RVL::OperatorProductDomain< Scalar >:
Public Member Functions | |
OperatorProductDomain () | |
OperatorProductDomain (const OperatorProductDomain< Scalar > &) | |
virtual | ~OperatorProductDomain () |
virtual const ProductSpace< Scalar > & | getProductDomain () const =0 |
access to domain as ProductSpace | |
const Space< Scalar > & | getDomain () const |
access to domain as Space - delegates to getProductDomain | |
Protected Member Functions | |
virtual void | applyPartialDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dxi, Vector< Scalar > &dy) const =0 |
![]() ![]() | |
virtual void | applyDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const |
applyDeriv() is implemented in terms of applyPartialDeriv(). | |
virtual void | applyAdjPartialDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dxi) const =0 |
![]() ![]() | |
virtual void | applyAdjDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) const |
applyAdjDeriv() is implemented in terms of applyAdjPartialDeriv(). | |
virtual void | applyPartialDeriv2 (int i, int j, const Vector< Scalar > &x, const Vector< Scalar > &dxi, const Vector< Scalar > &dxj, Vector< Scalar > &dy) const |
![]() ![]() | |
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 applyPartialDeriv2(). | |
virtual void | applyAdjPartialDeriv2 (int i, int j, const Vector< Scalar > &x, const Vector< Scalar > &dy, const Vector< Scalar > &dxj, Vector< Scalar > &dxi) const |
![]() ![]() ![]() | |
virtual void | applyAdjDeriv2 (const Vector< Scalar > &x, const Vector< Scalar > &dy, const Vector< Scalar > &dx1, Vector< Scalar > &dx0) const |
applyAdjDeriv2() is implemented in terms of applyAdjPartialDeriv2(). | |
virtual OperatorProductDomain< Scalar > * | clonePD () const =0 |
Primary clone method returns object of this type; parent clone method delegates. | |
Operator< Scalar > * | clone () const |
Static Protected Member Functions | |
static void | export_applyPartialDeriv (OperatorProductDomain< Scalar > const &f, int i, const Vector< Scalar > &x, const Vector< Scalar > &dxi, Vector< Scalar > &dy) |
static void | export_applyAdjPartialDeriv (OperatorProductDomain< Scalar > const &f, int i, const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dxi) |
static void | export_applyPartialDeriv2 (OperatorProductDomain< Scalar > const &f, int i, int j, const Vector< Scalar > &x, const Vector< Scalar > &dxi, const Vector< Scalar > &dxj, Vector< Scalar > &dy) |
static void | export_applyAdjPartialDeriv2 (OperatorProductDomain< Scalar > const &f, int i, int j, const Vector< Scalar > &x, const Vector< Scalar > &dy, const Vector< Scalar > &dxj, Vector< Scalar > &dxi) |
Friends | |
class | OperatorEvaluation< Scalar > |
class | RestrictOp< Scalar > |
Partial derivatives are defined, as is access to the domain as a ProductSpace. As for the parent class, all functions which may change the internal state are protected, accessed only by the corresponding OperatorProductDomainEvaluation objects, which act on independent captive instances.
Definition at line 298 of file op.hh.
RVL::OperatorProductDomain< Scalar >::OperatorProductDomain | ( | ) |
RVL::OperatorProductDomain< Scalar >::OperatorProductDomain | ( | const OperatorProductDomain< Scalar > & | ) |
virtual RVL::OperatorProductDomain< Scalar >::~OperatorProductDomain | ( | ) | [virtual] |
virtual void RVL::OperatorProductDomain< Scalar >::applyPartialDeriv | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dxi, | |||
Vector< Scalar > & | dy | |||
) | const [protected, pure virtual] |
virtual void RVL::OperatorProductDomain< Scalar >::applyDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
applyDeriv() is implemented in terms of applyPartialDeriv().
Default implementation supplied, which may be overridden.
Implements RVL::Operator< Scalar >.
Definition at line 315 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::applyPartialDeriv(), and RVL::Vector< Scalar >::linComb().
virtual void RVL::OperatorProductDomain< Scalar >::applyAdjPartialDeriv | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dxi | |||
) | const [protected, pure virtual] |
virtual void RVL::OperatorProductDomain< Scalar >::applyAdjDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx | |||
) | const [protected, virtual] |
applyAdjDeriv() is implemented in terms of applyAdjPartialDeriv().
Default implementation supplied, which may be overridden.
Implements RVL::Operator< Scalar >.
Definition at line 342 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::applyAdjPartialDeriv(), and RVL::Components< Scalar >::getSize().
virtual void RVL::OperatorProductDomain< Scalar >::applyPartialDeriv2 | ( | int | i, | |
int | j, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dxi, | |||
const Vector< Scalar > & | dxj, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
, where
NOTE: as is the case for applyDeriv2, default implementation is supplied and throws exception.
Reimplemented in RVL::LinOpValOp< Scalar >.
Definition at line 360 of file op.hh.
References RVL::Writeable::write().
Referenced by RVL::OperatorProductDomain< Scalar >::export_applyPartialDeriv2().
virtual void RVL::OperatorProductDomain< 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 applyPartialDeriv2().
Default implementation supplied, which may be overridden.
Reimplemented from RVL::Operator< Scalar >.
Definition at line 376 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::getProductDomain(), RVL::Vector< Scalar >::linComb(), and RVL::Vector< Scalar >::zero().
virtual void RVL::OperatorProductDomain< Scalar >::applyAdjPartialDeriv2 | ( | int | i, | |
int | j, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dy, | |||
const Vector< Scalar > & | dxj, | |||
Vector< Scalar > & | dxi | |||
) | const [protected, virtual] |
, where
NOTES: (1) adjoint of linear map
(2) as is the case for applyDeriv2, default implementation is supplied and throws exception.
Reimplemented in RVL::LinOpValOp< Scalar >.
Definition at line 405 of file op.hh.
References RVL::Writeable::write().
Referenced by RVL::OperatorProductDomain< Scalar >::export_applyAdjPartialDeriv2().
virtual void RVL::OperatorProductDomain< Scalar >::applyAdjDeriv2 | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dy, | |||
const Vector< Scalar > & | dx1, | |||
Vector< Scalar > & | dx0 | |||
) | const [protected, virtual] |
applyAdjDeriv2() is implemented in terms of applyAdjPartialDeriv2().
Default implementation supplied, which may be overridden.
Reimplemented from RVL::Operator< Scalar >.
Definition at line 421 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::getProductDomain(), and RVL::Vector< Scalar >::zero().
static void RVL::OperatorProductDomain< Scalar >::export_applyPartialDeriv | ( | OperatorProductDomain< Scalar > const & | f, | |
int | i, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dxi, | |||
Vector< Scalar > & | dy | |||
) | [static, protected] |
Definition at line 445 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::applyPartialDeriv().
Referenced by RVL::RestrictOp< Scalar >::applyDeriv().
static void RVL::OperatorProductDomain< Scalar >::export_applyAdjPartialDeriv | ( | OperatorProductDomain< Scalar > const & | f, | |
int | i, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dxi | |||
) | [static, protected] |
Definition at line 459 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::applyAdjPartialDeriv().
Referenced by RVL::RestrictOp< Scalar >::applyAdjDeriv().
static void RVL::OperatorProductDomain< Scalar >::export_applyPartialDeriv2 | ( | OperatorProductDomain< Scalar > const & | f, | |
int | i, | |||
int | j, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dxi, | |||
const Vector< Scalar > & | dxj, | |||
Vector< Scalar > & | dy | |||
) | [static, protected] |
Definition at line 473 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::applyPartialDeriv2().
Referenced by RVL::RestrictOp< Scalar >::applyDeriv2().
static void RVL::OperatorProductDomain< Scalar >::export_applyAdjPartialDeriv2 | ( | OperatorProductDomain< Scalar > const & | f, | |
int | i, | |||
int | j, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dy, | |||
const Vector< Scalar > & | dxj, | |||
Vector< Scalar > & | dxi | |||
) | [static, protected] |
Definition at line 488 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::applyAdjPartialDeriv2().
Referenced by RVL::RestrictOp< Scalar >::applyAdjDeriv2().
virtual OperatorProductDomain<Scalar>* RVL::OperatorProductDomain< Scalar >::clonePD | ( | ) | const [protected, pure virtual] |
Primary clone method returns object of this type; parent clone method delegates.
Implemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Referenced by RVL::OperatorProductDomain< Scalar >::clone().
Operator<Scalar>* RVL::OperatorProductDomain< Scalar >::clone | ( | ) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 506 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::clonePD().
virtual const ProductSpace<Scalar>& RVL::OperatorProductDomain< Scalar >::getProductDomain | ( | ) | const [pure virtual] |
access to domain as ProductSpace
Implemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Referenced by RVL::OperatorProductDomain< Scalar >::applyAdjDeriv2(), RVL::OperatorProductDomain< Scalar >::applyDeriv2(), RVL::OperatorProductDomain< Scalar >::getDomain(), and RVL::OperatorEvaluation< Scalar >::getProductDomain().
const Space<Scalar>& RVL::OperatorProductDomain< Scalar >::getDomain | ( | ) | const [virtual] |
access to domain as Space - delegates to getProductDomain
Implements RVL::Operator< Scalar >.
Definition at line 517 of file op.hh.
References RVL::OperatorProductDomain< Scalar >::getProductDomain().
friend class OperatorEvaluation< Scalar > [friend] |
friend class RestrictOp< Scalar > [friend] |