RVL::SymmetricBilinearOp< Scalar > Class Template Reference

for the moment, a standalone class. More...

#include <linop_base.hh>

Inheritance diagram for RVL::SymmetricBilinearOp< Scalar >:

RVL::Writeable RVL::Deriv2Evaluation< Scalar > List of all members.

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 $ y $ the value $ A(x_0,x_1)$.
void applyAdjOp (Vector< Scalar > const &x0, Vector< Scalar > const &y, Vector< Scalar > &x1) const
 This function assigns to $ x_1 $ the value $ A^*(x_0,y)$, defined by.

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

Detailed Description

template<typename Scalar>
class RVL::SymmetricBilinearOp< Scalar >

for the moment, a standalone class.

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.


Constructor & Destructor Documentation

template<typename Scalar>
virtual RVL::SymmetricBilinearOp< Scalar >::~SymmetricBilinearOp (  )  [virtual]

Definition at line 1058 of file linop_base.hh.


Member Function Documentation

template<typename Scalar>
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().

template<typename Scalar>
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().

template<typename Scalar>
virtual SymmetricBilinearOp<Scalar>* RVL::SymmetricBilinearOp< Scalar >::clone (  )  const [protected, pure virtual]

Implemented in RVL::Deriv2Evaluation< Scalar >.

template<typename Scalar>
void* RVL::SymmetricBilinearOp< Scalar >::operator new ( size_t  size  ) 

Definition at line 1051 of file linop_base.hh.

template<typename Scalar>
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().

template<typename Scalar>
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().

template<typename Scalar>
void RVL::SymmetricBilinearOp< Scalar >::applyOp ( Vector< Scalar > const &  x0,
Vector< Scalar > const &  x1,
Vector< Scalar > &  y 
) const

This function assigns to $ y $ the value $ A(x_0,x_1)$.

Asserted to be same as value of $ A(x_1,x_0)$. Output vector $ y $ may not be aliased with input vectors $ x_0, x_1 $. 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().

template<typename Scalar>
void RVL::SymmetricBilinearOp< Scalar >::applyAdjOp ( Vector< Scalar > const &  x0,
Vector< Scalar > const &  y,
Vector< Scalar > &  x1 
) const

This function assigns to $ x_1 $ the value $ A^*(x_0,y)$, defined by.

\[ x_1, A^*(x_0,y) = A(x_0,x_1), y \]

Since $ A $ 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().


The documentation for this class was generated from the following file:
Generated on 5 Jan 2017 for RVL by  doxygen 1.4.7