RVL::BlockLinearOp< Scalar > Class Template Reference

Linear Operator defined with product range. More...

#include <blockop.hh>

Inheritance diagram for RVL::BlockLinearOp< Scalar >:

RVL::LinearOp< Scalar > RVL::Operator< Scalar > RVL::Writeable RVL::HessianEvaluation< Scalar > List of all members.

Public Member Functions

 BlockLinearOp ()
 BlockLinearOp (const BlockLinearOp< Scalar > &)
virtual ~BlockLinearOp ()
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
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 apply (int i, int j, const Vector< Scalar > &xj, Vector< Scalar > &yi) const =0
 apply A_{i,j}
virtual void apply (Vector< Scalar > const &x, Vector< Scalar > &y) const
virtual void applyAdj (int i, int j, const Vector< Scalar > &yi, Vector< Scalar > &xj) const =0
 apply A_{i,j}^*
virtual void applyAdj (const Vector< Scalar > &y, Vector< Scalar > &x) const
 applyAdj() is implemented in terms of applyComponentAdj().
virtual BlockLinearOp< Scalar > * cloneBlockLinearOp () const =0
 Primary clone method returns object of this type; parent clone method delegates.
LinearOp< Scalar > * clone () const

Friends

class BlockLinearOpBlock< Scalar >

Detailed Description

template<class Scalar>
class RVL::BlockLinearOp< Scalar >

Linear Operator defined with product range.

Y.H. at Oct 22, 2014 Since there is no LinOpProdDom, need class with product domain as well - WWS 03.03.15

Definition at line 590 of file blockop.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::BlockLinearOp< Scalar >::BlockLinearOp (  ) 

Definition at line 656 of file blockop.hh.

template<class Scalar>
RVL::BlockLinearOp< Scalar >::BlockLinearOp ( const BlockLinearOp< Scalar > &   ) 

Definition at line 657 of file blockop.hh.

template<class Scalar>
virtual RVL::BlockLinearOp< Scalar >::~BlockLinearOp (  )  [virtual]

Definition at line 658 of file blockop.hh.


Member Function Documentation

template<class Scalar>
virtual void RVL::BlockLinearOp< Scalar >::apply ( int  i,
int  j,
const Vector< Scalar > &  xj,
Vector< Scalar > &  yi 
) const [protected, pure virtual]

apply A_{i,j}

Implemented in RVL::HessianEvaluation< Scalar >.

Referenced by RVL::BlockLinearOp< Scalar >::apply().

template<class Scalar>
virtual void RVL::BlockLinearOp< Scalar >::apply ( Vector< Scalar > const &  x,
Vector< Scalar > &  y 
) const [protected, virtual]

Implements RVL::Operator< Scalar >.

Definition at line 601 of file blockop.hh.

References RVL::BlockLinearOp< Scalar >::apply().

template<class Scalar>
virtual void RVL::BlockLinearOp< Scalar >::applyAdj ( int  i,
int  j,
const Vector< Scalar > &  yi,
Vector< Scalar > &  xj 
) const [protected, pure virtual]

apply A_{i,j}^*

Implemented in RVL::HessianEvaluation< Scalar >.

Referenced by RVL::BlockLinearOp< Scalar >::applyAdj().

template<class Scalar>
virtual void RVL::BlockLinearOp< Scalar >::applyAdj ( const Vector< Scalar > &  y,
Vector< Scalar > &  x 
) const [protected, virtual]

applyAdj() is implemented in terms of applyComponentAdj().

Default implementation supplied, which may be overridden.

Implements RVL::LinearOp< Scalar >.

Definition at line 629 of file blockop.hh.

References RVL::BlockLinearOp< Scalar >::applyAdj(), and RVL::Components< Scalar >::getSize().

template<class Scalar>
virtual BlockLinearOp<Scalar>* RVL::BlockLinearOp< Scalar >::cloneBlockLinearOp (  )  const [protected, pure virtual]

Primary clone method returns object of this type; parent clone method delegates.

Implemented in RVL::HessianEvaluation< Scalar >.

Referenced by RVL::BlockLinearOp< Scalar >::clone().

template<class Scalar>
LinearOp<Scalar>* RVL::BlockLinearOp< Scalar >::clone (  )  const [protected, virtual]

Implements RVL::Operator< Scalar >.

Reimplemented in RVL::HessianEvaluation< Scalar >.

Definition at line 652 of file blockop.hh.

References RVL::BlockLinearOp< Scalar >::cloneBlockLinearOp().

template<class Scalar>
virtual const ProductSpace<Scalar>& RVL::BlockLinearOp< Scalar >::getProductDomain (  )  const [pure virtual]

access to domain as ProductSpace

Implemented in RVL::HessianEvaluation< Scalar >.

Referenced by RVL::BlockLinearOp< Scalar >::getDomain().

template<class Scalar>
const Space<Scalar>& RVL::BlockLinearOp< Scalar >::getDomain (  )  const [virtual]

access to domain as Space - delegates to getProductDomain

Implements RVL::Operator< Scalar >.

Reimplemented in RVL::HessianEvaluation< Scalar >.

Definition at line 663 of file blockop.hh.

References RVL::BlockLinearOp< Scalar >::getProductDomain().

template<class Scalar>
virtual const ProductSpace<Scalar>& RVL::BlockLinearOp< Scalar >::getProductRange (  )  const [pure virtual]

access to range as ProductSpace

Implemented in RVL::HessianEvaluation< Scalar >.

Referenced by RVL::BlockLinearOp< Scalar >::getRange().

template<class Scalar>
const Space<Scalar>& RVL::BlockLinearOp< Scalar >::getRange (  )  const [virtual]

access to range as Space - delegates to getProductRange

Implements RVL::Operator< Scalar >.

Reimplemented in RVL::HessianEvaluation< Scalar >.

Definition at line 669 of file blockop.hh.

References RVL::BlockLinearOp< Scalar >::getProductRange().


Friends And Related Function Documentation

template<class Scalar>
friend class BlockLinearOpBlock< Scalar > [friend]

Definition at line 592 of file blockop.hh.


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