RVL::LinCombLinearOp< Scalar > Class Template Reference

LinCombLinearOp is a concrete class implementing a linear combination with weights $ w_1, w_2 $ of two linear operators $ Op_1 $ and $ Op_2 $, that is, $w_1 Op_1 + w_2 Op_2$. More...

#include <linop_base.hh>

Inheritance diagram for RVL::LinCombLinearOp< Scalar >:

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

Public Member Functions

 LinCombLinearOp (Scalar _w1, LinearOp< Scalar > const &_op1, Scalar _w2, LinearOp< Scalar > const &_op2)
 LinCombLinearOp (LinCombLinearOp const &op)
 ~LinCombLinearOp ()
const Space< Scalar > & getDomain () const
const Space< Scalar > & getRange () const
ostream & write (ostream &str) const

Protected Member Functions

virtual LinearOp< Scalar > * clone () const
void apply (const Vector< Scalar > &x, Vector< Scalar > &y) const
void applyAdj (const Vector< Scalar > &x, Vector< Scalar > &y) const

Detailed Description

template<class Scalar>
class RVL::LinCombLinearOp< Scalar >

LinCombLinearOp is a concrete class implementing a linear combination with weights $ w_1, w_2 $ of two linear operators $ Op_1 $ and $ Op_2 $, that is, $w_1 Op_1 + w_2 Op_2$.

The constructor checks that the two argument operators share domain and range spaces, then creates the requested linear combination. Combinations of more operators can be built by recursively combining pairs.

Definition at line 927 of file linop_base.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::LinCombLinearOp< Scalar >::LinCombLinearOp ( Scalar  _w1,
LinearOp< Scalar > const &  _op1,
Scalar  _w2,
LinearOp< Scalar > const &  _op2 
)

Definition at line 973 of file linop_base.hh.

template<class Scalar>
RVL::LinCombLinearOp< Scalar >::LinCombLinearOp ( LinCombLinearOp< Scalar > const &  op  ) 

Definition at line 998 of file linop_base.hh.

template<class Scalar>
RVL::LinCombLinearOp< Scalar >::~LinCombLinearOp (  ) 

Definition at line 1001 of file linop_base.hh.


Member Function Documentation

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

Implements RVL::Operator< Scalar >.

Definition at line 939 of file linop_base.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 943 of file linop_base.hh.

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

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

Implements RVL::LinearOp< Scalar >.

Definition at line 957 of file linop_base.hh.

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

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

Implements RVL::Operator< Scalar >.

Definition at line 1003 of file linop_base.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 1007 of file linop_base.hh.

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

Implements RVL::Writeable.

Definition at line 1011 of file linop_base.hh.


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