#include <op.hh>
Inheritance diagram for RVL::LinOpValOp< Scalar >:
Protected Member Functions | |
virtual void | apply0 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, Vector< Scalar > &y) const =0 |
![]() | |
virtual void | applyAdj0 (const Vector< Scalar > &x0, const Vector< Scalar > &y, Vector< Scalar > &x1) const =0 |
![]() ![]() | |
virtual void | applyPartialDeriv0 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dx0, Vector< Scalar > &dy) const =0 |
![]() | |
virtual void | applyAdjPartialDeriv0 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, Vector< Scalar > &dx0) const =0 |
adjoint of ![]() | |
virtual void | applyAdjPartialDeriv1 (const Vector< Scalar > &x0, const Vector< Scalar > &dx0, const Vector< Scalar > &dy, Vector< Scalar > &x1) const |
adjoint of ![]() | |
virtual void | applyPartialDeriv20 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dx00, const Vector< Scalar > &dx01, Vector< Scalar > &dy) const |
virtual void | applyAdjPartialDeriv20 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, const Vector< Scalar > &dx01, Vector< Scalar > &dx00) const |
void | apply (Vector< Scalar > const &x, Vector< Scalar > &y) const |
void | applyPartialDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dxi, Vector< Scalar > &dy) const |
void | applyAdjPartialDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dxi) const |
void | applyPartialDeriv2 (int i, int j, const Vector< Scalar > &x, const Vector< Scalar > &dxi, const Vector< Scalar > &dxj, Vector< Scalar > &dy) const |
void | applyAdjPartialDeriv2 (int i, int j, const Vector< Scalar > &x, const Vector< Scalar > &dy, const Vector< Scalar > &dxj, Vector< Scalar > &dxi) const |
Static Protected Member Functions | |
static void | export_apply0 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &x1, Vector< Scalar > &y) |
static void | export_applyAdj0 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &y, Vector< Scalar > &x1) |
static void | export_applyPartialDeriv0 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dx0, Vector< Scalar > &dy) |
static void | export_applyAdjPartialDeriv0 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, Vector< Scalar > &dx0) |
static void | export_applyAdjPartialDeriv1 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, Vector< Scalar > &dx0) |
static void | export_applyPartialDeriv20 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dx00, const Vector< Scalar > &dx01, Vector< Scalar > &dy) |
static void | export_applyAdjPartialDeriv20 (LinOpValOp< Scalar > const &op, const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, const Vector< Scalar > &dx01, Vector< Scalar > &dx00) |
Friends | |
class | LinearRestrictOp< Scalar > |
The only essential additional attribute is an adjoint application method for the last component. Currently restricted to two components (either or both of which may themselves be products of course). Concrete implementations of some methods provided.
In comments below will write rather than
to emphasize assumed linearity of
in 2nd arg.
Definition at line 694 of file op.hh.
virtual void RVL::LinOpValOp< Scalar >::apply0 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | x1, | |||
Vector< Scalar > & | y | |||
) | const [protected, pure virtual] |
virtual void RVL::LinOpValOp< Scalar >::applyAdj0 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | y, | |||
Vector< Scalar > & | x1 | |||
) | const [protected, pure virtual] |
= adjoint of
Implemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Referenced by RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv(), and RVL::LinOpValOp< Scalar >::export_applyAdj0().
virtual void RVL::LinOpValOp< Scalar >::applyPartialDeriv0 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dx0, | |||
Vector< Scalar > & | dy | |||
) | const [protected, pure virtual] |
Implemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Referenced by RVL::LinOpValOp< Scalar >::applyPartialDeriv(), RVL::LinOpValOp< Scalar >::applyPartialDeriv2(), and RVL::LinOpValOp< Scalar >::export_applyPartialDeriv0().
virtual void RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv0 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx0 | |||
) | const [protected, pure virtual] |
adjoint of
Implemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Referenced by RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv(), RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv2(), and RVL::LinOpValOp< Scalar >::export_applyAdjPartialDeriv0().
virtual void RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv1 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | dx0, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | x1 | |||
) | const [protected, virtual] |
adjoint of needed in definition of 2nd deriv
Definition at line 724 of file op.hh.
Referenced by RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv2(), and RVL::LinOpValOp< Scalar >::export_applyAdjPartialDeriv1().
virtual void RVL::LinOpValOp< Scalar >::applyPartialDeriv20 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dx00, | |||
const Vector< Scalar > & | dx01, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
Reimplemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Definition at line 735 of file op.hh.
Referenced by RVL::LinOpValOp< Scalar >::applyPartialDeriv2(), and RVL::LinOpValOp< Scalar >::export_applyPartialDeriv20().
virtual void RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv20 | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dy, | |||
const Vector< Scalar > & | dx01, | |||
Vector< Scalar > & | dx00 | |||
) | const [protected, virtual] |
Reimplemented in RVL::ConstLinOpValOp< Scalar >, RVL::TangentMap< Scalar >, RVL::CompLOVOp< Scalar >, and RVL::LinCompLOVOp< Scalar >.
Definition at line 747 of file op.hh.
Referenced by RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv2(), and RVL::LinOpValOp< Scalar >::export_applyAdjPartialDeriv20().
static void RVL::LinOpValOp< Scalar >::export_apply0 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | x1, | |||
Vector< Scalar > & | y | |||
) | [static, protected] |
Definition at line 758 of file op.hh.
References RVL::LinOpValOp< Scalar >::apply0().
Referenced by RVL::LinCompLOVOp< Scalar >::apply0(), and RVL::CompLOVOp< Scalar >::apply0().
static void RVL::LinOpValOp< Scalar >::export_applyAdj0 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | y, | |||
Vector< Scalar > & | x1 | |||
) | [static, protected] |
Definition at line 765 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyAdj0().
Referenced by RVL::LinCompLOVOp< Scalar >::applyAdj0(), and RVL::CompLOVOp< Scalar >::applyAdj0().
static void RVL::LinOpValOp< Scalar >::export_applyPartialDeriv0 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dx0, | |||
Vector< Scalar > & | dy | |||
) | [static, protected] |
Definition at line 772 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyPartialDeriv0().
Referenced by RVL::LinCompLOVOp< Scalar >::applyPartialDeriv0(), and RVL::CompLOVOp< Scalar >::applyPartialDeriv0().
static void RVL::LinOpValOp< Scalar >::export_applyAdjPartialDeriv0 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx0 | |||
) | [static, protected] |
Definition at line 780 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv0().
Referenced by RVL::LinCompLOVOp< Scalar >::applyAdjPartialDeriv0(), and RVL::CompLOVOp< Scalar >::applyAdjPartialDeriv0().
static void RVL::LinOpValOp< Scalar >::export_applyAdjPartialDeriv1 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx0 | |||
) | [static, protected] |
Definition at line 788 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv1().
static void RVL::LinOpValOp< Scalar >::export_applyPartialDeriv20 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dx00, | |||
const Vector< Scalar > & | dx01, | |||
Vector< Scalar > & | dy | |||
) | [static, protected] |
Definition at line 796 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyPartialDeriv20().
Referenced by RVL::LinCompLOVOp< Scalar >::applyPartialDeriv20(), and RVL::CompLOVOp< Scalar >::applyPartialDeriv20().
static void RVL::LinOpValOp< Scalar >::export_applyAdjPartialDeriv20 | ( | LinOpValOp< Scalar > const & | op, | |
const Vector< Scalar > & | x0, | |||
const Vector< Scalar > & | x1, | |||
const Vector< Scalar > & | dy, | |||
const Vector< Scalar > & | dx01, | |||
Vector< Scalar > & | dx00 | |||
) | [static, protected] |
Definition at line 805 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv20().
Referenced by RVL::LinCompLOVOp< Scalar >::applyAdjPartialDeriv20(), and RVL::CompLOVOp< Scalar >::applyAdjPartialDeriv20().
void RVL::LinOpValOp< Scalar >::apply | ( | Vector< Scalar > const & | x, | |
Vector< Scalar > & | y | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
Definition at line 814 of file op.hh.
References RVL::LinOpValOp< Scalar >::apply0().
void RVL::LinOpValOp< Scalar >::applyPartialDeriv | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dxi, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
Implements RVL::OperatorProductDomain< Scalar >.
Definition at line 826 of file op.hh.
References RVL::LinOpValOp< Scalar >::apply0(), and RVL::LinOpValOp< Scalar >::applyPartialDeriv0().
void RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv | ( | int | i, | |
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dxi | |||
) | const [protected, virtual] |
Implements RVL::OperatorProductDomain< Scalar >.
Definition at line 843 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyAdj0(), and RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv0().
void RVL::LinOpValOp< Scalar >::applyPartialDeriv2 | ( | int | i, | |
int | j, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dxi, | |||
const Vector< Scalar > & | dxj, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
Reimplemented from RVL::OperatorProductDomain< Scalar >.
Definition at line 863 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyPartialDeriv0(), RVL::LinOpValOp< Scalar >::applyPartialDeriv20(), and RVL::Vector< Scalar >::zero().
void RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv2 | ( | int | i, | |
int | j, | |||
const Vector< Scalar > & | x, | |||
const Vector< Scalar > & | dy, | |||
const Vector< Scalar > & | dxj, | |||
Vector< Scalar > & | dxi | |||
) | const [protected, virtual] |
Reimplemented from RVL::OperatorProductDomain< Scalar >.
Definition at line 892 of file op.hh.
References RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv0(), RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv1(), RVL::LinOpValOp< Scalar >::applyAdjPartialDeriv20(), and RVL::Vector< Scalar >::zero().
friend class LinearRestrictOp< Scalar > [friend] |