RVL::ConstLinOpValOp< Scalar > Class Template Reference

Given a linear operator F on x1, ConstLinOpValOp provides a LinOpValOp where F is considered constant wrt x0. More...

#include <op.hh>

Inheritance diagram for RVL::ConstLinOpValOp< Scalar >:

RVL::LinOpValOp< Scalar > RVL::OperatorProductDomain< Scalar > RVL::Operator< Scalar > RVL::Writeable List of all members.

Public Member Functions

 ConstLinOpValOp (LinearOp< Scalar > const &_lop, Space< Scalar > const &_NLsp)
 ConstLinOpValOp (ConstLinOpValOp< Scalar > const &lovo)
ProductSpace< Scalar > const & getProductDomain () const
Space< Scalar > const & getRange () const
ostream & write (ostream &str) const

Protected Member Functions

void apply0 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, Vector< Scalar > &y) const
void applyAdj0 (const Vector< Scalar > &x0, const Vector< Scalar > &y, Vector< Scalar > &x1) const
 $x_1 = F^*(x_0)y$
void applyPartialDeriv0 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dx0, Vector< Scalar > &dy) const
void applyAdjPartialDeriv0 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, Vector< Scalar > &dx0) const
void applyPartialDeriv20 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dx00, const Vector< Scalar > &dx01, Vector< Scalar > &dy) const
void applyAdjPartialDeriv20 (const Vector< Scalar > &x0, const Vector< Scalar > &x1, const Vector< Scalar > &dy, const Vector< Scalar > &dx01, Vector< Scalar > &dx00) const
OperatorProductDomain< Scalar > * clonePD () const

Detailed Description

template<class Scalar>
class RVL::ConstLinOpValOp< Scalar >

Given a linear operator F on x1, ConstLinOpValOp provides a LinOpValOp where F is considered constant wrt x0.

Domain is assumed to be product space of two spaces, mainly spaces related to nonlinear and linear parameters x0, x1 resp. To construct this type of LinOpValOp only the LinearOp and a space relating to x0 are required. Note that the range is assumed to be naturally the range of F.

Definition at line 930 of file op.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::ConstLinOpValOp< Scalar >::ConstLinOpValOp ( LinearOp< Scalar > const &  _lop,
Space< Scalar > const &  _NLsp 
)

Definition at line 988 of file op.hh.

template<class Scalar>
RVL::ConstLinOpValOp< Scalar >::ConstLinOpValOp ( ConstLinOpValOp< Scalar > const &  lovo  ) 

Definition at line 991 of file op.hh.


Member Function Documentation

template<class Scalar>
void RVL::ConstLinOpValOp< Scalar >::apply0 ( const Vector< Scalar > &  x0,
const Vector< Scalar > &  x1,
Vector< Scalar > &  y 
) const [protected, virtual]

Implements RVL::LinOpValOp< Scalar >.

Definition at line 939 of file op.hh.

template<class Scalar>
void RVL::ConstLinOpValOp< Scalar >::applyAdj0 ( const Vector< Scalar > &  x0,
const Vector< Scalar > &  y,
Vector< Scalar > &  x1 
) const [protected, virtual]

$x_1 = F^*(x_0)y$

Implements RVL::LinOpValOp< Scalar >.

Definition at line 946 of file op.hh.

template<class Scalar>
void RVL::ConstLinOpValOp< Scalar >::applyPartialDeriv0 ( const Vector< Scalar > &  x0,
const Vector< Scalar > &  x1,
const Vector< Scalar > &  dx0,
Vector< Scalar > &  dy 
) const [protected, virtual]

Implements RVL::LinOpValOp< Scalar >.

Definition at line 952 of file op.hh.

References RVL::Vector< Scalar >::zero().

template<class Scalar>
void RVL::ConstLinOpValOp< Scalar >::applyAdjPartialDeriv0 ( const Vector< Scalar > &  x0,
const Vector< Scalar > &  x1,
const Vector< Scalar > &  dy,
Vector< Scalar > &  dx0 
) const [protected, virtual]

Implements RVL::LinOpValOp< Scalar >.

Definition at line 959 of file op.hh.

References RVL::Vector< Scalar >::zero().

template<class Scalar>
void RVL::ConstLinOpValOp< 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 from RVL::LinOpValOp< Scalar >.

Definition at line 966 of file op.hh.

References RVL::Vector< Scalar >::zero().

template<class Scalar>
void RVL::ConstLinOpValOp< 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 from RVL::LinOpValOp< Scalar >.

Definition at line 974 of file op.hh.

References RVL::Vector< Scalar >::zero().

template<class Scalar>
OperatorProductDomain<Scalar>* RVL::ConstLinOpValOp< Scalar >::clonePD (  )  const [protected, virtual]

Implements RVL::OperatorProductDomain< Scalar >.

Definition at line 982 of file op.hh.

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

Implements RVL::OperatorProductDomain< Scalar >.

Definition at line 994 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 995 of file op.hh.

template<class Scalar>
ostream& RVL::ConstLinOpValOp< Scalar >::write ( ostream &  str  )  const [virtual]

Implements RVL::Writeable.

Definition at line 997 of file op.hh.


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