RVL::StdLeastSquaresFcnlGN< Scalar > Class Template Reference

StdLeastSquaresFcnlGN creates a least squares objective function from an operator and a data vector. More...

#include <ls.hh>

Inheritance diagram for RVL::StdLeastSquaresFcnlGN< Scalar >:

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

Public Member Functions

 StdLeastSquaresFcnlGN (Operator< Scalar > const &oper, Vector< Scalar > const &d)
 Usual constructor.
 StdLeastSquaresFcnlGN (const StdLeastSquaresFcnlGN< Scalar > &JJ)
 Copy constructor.
virtual ~StdLeastSquaresFcnlGN ()
Space< Scalar > const & getDomain () const
Scalar getMaxStep (const Vector< Scalar > &x, const Vector< Scalar > &dx) const
ostream & write (ostream &str) const

Protected Member Functions

void apply (Vector< Scalar > const &x, Scalar &val) const
void applyGradient (Vector< Scalar > const &x, Vector< Scalar > &g) const
void applyHessian (Vector< Scalar > const &x, Vector< Scalar > const &dx, Vector< Scalar > &dy) const
virtual Functional< Scalar > * clone () const

Detailed Description

template<class Scalar>
class RVL::StdLeastSquaresFcnlGN< Scalar >

StdLeastSquaresFcnlGN creates a least squares objective function from an operator and a data vector.

This is a so called bridge class, i.e. it exists merely to make objects of some class behave like objects of another class. The input objects are an operator \form::25 (an instance of Operator) and a vector $ d $ (an instance of Vector). The class uses a reference to this object to construct the least squares functinal $ x \mapsto \frac{1}{2} \|A[x]-d\|^2 \equiv J[x] $, its gradient $ x \mapsto DA[x]^T(A[x]-d) = \nabla J[x] $ and the Gauss-Newton approximation to its Hessian operator $ x \mapsto DA[x]^TDA[x] $ and presents the result as an instance of the Functional interface.

Defines differentiable function only if Scalar is a real type, so this property is tested at compile time.

Definition at line 608 of file ls.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::StdLeastSquaresFcnlGN< Scalar >::StdLeastSquaresFcnlGN ( Operator< Scalar > const &  oper,
Vector< Scalar > const &  d 
)

Usual constructor.

Definition at line 661 of file ls.hh.

template<class Scalar>
RVL::StdLeastSquaresFcnlGN< Scalar >::StdLeastSquaresFcnlGN ( const StdLeastSquaresFcnlGN< Scalar > &  JJ  ) 

Copy constructor.

Definition at line 670 of file ls.hh.

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

Definition at line 678 of file ls.hh.


Member Function Documentation

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

Implements RVL::Functional< Scalar >.

Definition at line 622 of file ls.hh.

References RVL::Functional< Scalar >::export_apply().

template<class Scalar>
void RVL::StdLeastSquaresFcnlGN< Scalar >::applyGradient ( Vector< Scalar > const &  x,
Vector< Scalar > &  g 
) const [protected, virtual]

Implements RVL::Functional< Scalar >.

Definition at line 632 of file ls.hh.

References RVL::Functional< Scalar >::export_applyGradient().

template<class Scalar>
void RVL::StdLeastSquaresFcnlGN< Scalar >::applyHessian ( Vector< Scalar > const &  x,
Vector< Scalar > const &  dx,
Vector< Scalar > &  dy 
) const [protected, virtual]

Implements RVL::Functional< Scalar >.

Definition at line 642 of file ls.hh.

References RVL::Functional< Scalar >::export_applyHessian().

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

Implements RVL::Functional< Scalar >.

Definition at line 654 of file ls.hh.

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

Implements RVL::Functional< Scalar >.

Definition at line 680 of file ls.hh.

template<class Scalar>
Scalar RVL::StdLeastSquaresFcnlGN< Scalar >::getMaxStep ( const Vector< Scalar > &  x,
const Vector< Scalar > &  dx 
) const [virtual]

Reimplemented from RVL::Functional< Scalar >.

Definition at line 682 of file ls.hh.

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

Implements RVL::Writeable.

Definition at line 693 of file ls.hh.


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