#include <linop_base.hh>
Inheritance diagram for RVL::SymmetricBilinearOp< Scalar >:
Public Member Functions | |
void * | operator new (size_t size) |
virtual | ~SymmetricBilinearOp () |
virtual Space< Scalar > const & | getDomain () const =0 |
virtual Space< Scalar > const & | getRange () const =0 |
void | applyOp (Vector< Scalar > const &x0, Vector< Scalar > const &x1, Vector< Scalar > &y) const |
This function assigns to ![]() ![]() | |
void | applyAdjOp (Vector< Scalar > const &x0, Vector< Scalar > const &y, Vector< Scalar > &x1) const |
This function assigns to ![]() ![]() | |
Protected Member Functions | |
virtual void | apply (const Vector< Scalar > &x0, const Vector< Scalar > &x1, Vector< Scalar > &y) const =0 |
virtual void | applyAdj (const Vector< Scalar > &x0, const Vector< Scalar > &y, Vector< Scalar > &x1) const =0 |
virtual SymmetricBilinearOp< Scalar > * | clone () const =0 |
Symmetric merely in the sense that only one of two possible adjoints is supplied, the other one being presumed to be the same. Symmetry should be tested for any child class. Could eventually be made a child of OpProdDom, just as LinearOp is now an op.
Definition at line 1034 of file linop_base.hh.
virtual RVL::SymmetricBilinearOp< Scalar >::~SymmetricBilinearOp | ( | ) | [virtual] |
Definition at line 1058 of file linop_base.hh.
virtual void RVL::SymmetricBilinearOp< Scalar >::apply | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | x1, | |||
Vector< Scalar > & | y | |||
) | const [protected, pure virtual] |
Implemented in RVL::Deriv2Evaluation< Scalar >.
Referenced by RVL::SymmetricBilinearOp< Scalar >::applyOp().
virtual void RVL::SymmetricBilinearOp< Scalar >::applyAdj | ( | const Vector< Scalar > & | x0, | |
const Vector< Scalar > & | y, | |||
Vector< Scalar > & | x1 | |||
) | const [protected, pure virtual] |
Implemented in RVL::Deriv2Evaluation< Scalar >.
Referenced by RVL::SymmetricBilinearOp< Scalar >::applyAdjOp().
virtual SymmetricBilinearOp<Scalar>* RVL::SymmetricBilinearOp< Scalar >::clone | ( | ) | const [protected, pure virtual] |
Implemented in RVL::Deriv2Evaluation< Scalar >.
void* RVL::SymmetricBilinearOp< Scalar >::operator new | ( | size_t | size | ) |
Definition at line 1051 of file linop_base.hh.
virtual Space<Scalar> const& RVL::SymmetricBilinearOp< Scalar >::getDomain | ( | ) | const [pure virtual] |
Implemented in RVL::Deriv2Evaluation< Scalar >.
Referenced by RVL::SymmetricBilinearOp< Scalar >::applyAdjOp(), and RVL::SymmetricBilinearOp< Scalar >::applyOp().
virtual Space<Scalar> const& RVL::SymmetricBilinearOp< Scalar >::getRange | ( | ) | const [pure virtual] |
Implemented in RVL::Deriv2Evaluation< Scalar >.
Referenced by RVL::SymmetricBilinearOp< Scalar >::applyAdjOp(), and RVL::SymmetricBilinearOp< Scalar >::applyOp().
void RVL::SymmetricBilinearOp< Scalar >::applyOp | ( | Vector< Scalar > const & | x0, | |
Vector< Scalar > const & | x1, | |||
Vector< Scalar > & | y | |||
) | const |
This function assigns to the value
.
Asserted to be same as value of . Output vector
may not be aliased with input vectors
. Applies standard sanity test, then delegates to protected apply method.
Definition at line 1069 of file linop_base.hh.
References RVL::SymmetricBilinearOp< Scalar >::apply(), RVL::SymmetricBilinearOp< Scalar >::getDomain(), RVL::SymmetricBilinearOp< Scalar >::getRange(), RVL::Vector< Scalar >::getSpace(), and RVL::Writeable::write().
void RVL::SymmetricBilinearOp< Scalar >::applyAdjOp | ( | Vector< Scalar > const & | x0, | |
Vector< Scalar > const & | y, | |||
Vector< Scalar > & | x1 | |||
) | const |
This function assigns to the value
, defined by.
\[ x_1, A^*(x_0,y) = A(x_0,x_1), y \]
Since is asserted to be symmetric, this definition of the adjoint coincides with the other obvious definition. Applies standard sanity test, then delegates to protected applyAdj method.
Definition at line 1156 of file linop_base.hh.
References RVL::SymmetricBilinearOp< Scalar >::applyAdj(), RVL::SymmetricBilinearOp< Scalar >::getDomain(), RVL::SymmetricBilinearOp< Scalar >::getRange(), RVL::Vector< Scalar >::getSpace(), and RVL::Writeable::write().