NonLinearLSQ Computes a fit using a Levenberg-Marquardt algorithm.  
 More...
#include <NonLinearLSQ.h>
 | 
| virtual  | ~NonLinearLSQ () | 
|   | Destructor.  
  | 
|   | 
| virtual int  | nSize () const =0 | 
|   | 
| virtual int  | nParms () const =0 | 
|   | 
| void  | setMaxIters (int m) | 
|   | Sets the maximum number of iterations.  
  | 
|   | 
| int  | maxIters () const | 
|   | Maximum number iterations for valid solution.  
  | 
|   | 
| virtual NLVector  | guess ()=0 | 
|   | 
| virtual NLVector  | f_x (const NLVector &x)=0 | 
|   | 
| virtual NLMatrix  | df_x (const NLVector &x)=0 | 
|   | 
| virtual double  | absErr () const | 
|   | 
| virtual double  | relErr () const | 
|   | 
| int  | curvefit () | 
|   | 
| int  | status () const | 
|   | Return status of last fit processing.  
  | 
|   | 
| bool  | success () const | 
|   | Determine success from last fit processing.  
  | 
|   | 
| bool  | success (int status) const | 
|   | Check status for success of the given condition  
  
  | 
|   | 
| std::string  | statusstr () const | 
|   | Return error message pertaining to last fit procesing.  
  | 
|   | 
| std::string  | statusstr (int status) const | 
|   | Return error message given status condition.  
  | 
|   | 
| virtual int  | checkIteration (const int Iter, const NLVector &fitcoefs, const NLVector &uncerts, double cplxconj, int Istatus) | 
|   | Default interation test simply returns input status.  
  | 
|   | 
| NLVector  | coefs () const | 
|   | Return coefficients from last fit processing.  
  | 
|   | 
| NLVector  | uncert () const | 
|   | Return uncertainties from last fit processing.  
  | 
|   | 
| int  | nIterations () const | 
|   | Return number of iterations from last fit processing.  
  | 
|   | 
 | 
| NLVector  | gslToNlsq (const gsl_vector *v) const | 
|   | 
| NLMatrix  | gslToNlsq (const gsl_matrix *m) const | 
|   | 
| gsl_vector *  | NlsqTogsl (const NLVector &v, gsl_vector *gv=0) const | 
|   | 
| gsl_matrix *  | NlsqTogsl (const NLMatrix &m, gsl_matrix *gm=0) const | 
|   | 
| NLVector  | getUncertainty (const gsl_matrix *m) const | 
|   | 
 | 
| static int  | f (const gsl_vector *x, void *params, gsl_vector *fx) | 
|   | 
| static int  | df (const gsl_vector *x, void *params, gsl_matrix *J) | 
|   | 
| static int  | fdf (const gsl_vector *x, void *params, gsl_vector *fx, gsl_matrix *J) | 
|   | 
NonLinearLSQ Computes a fit using a Levenberg-Marquardt algorithm. 
This virtual base class uses the GSL toolkit to apply the Levenberg-Marquardt algorithm to fit data to a non-linear equation using least squares.
- Author
 - 2007-11-15 Kris Becker 
 
Definition at line 42 of file NonLinearLSQ.h.
 
◆ NLMatrix
      
        
          | typedef TNT::Array2D<double> Isis::NonLinearLSQ::NLMatrix | 
        
      
 
 
◆ NLVector
      
        
          | typedef TNT::Array1D<double> Isis::NonLinearLSQ::NLVector | 
        
      
 
 
◆ NonLinearLSQ()
  
  
      
        
          | Isis::NonLinearLSQ::NonLinearLSQ  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ ~NonLinearLSQ()
  
  
      
        
          | virtual Isis::NonLinearLSQ::~NonLinearLSQ  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inlinevirtual   | 
  
 
 
◆ Abort()
  
  
      
        
          | void Isis::NonLinearLSQ::Abort  | 
          ( | 
          const std::string & |           reason = "" | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
 
◆ absErr()
  
  
      
        
          | virtual double Isis::NonLinearLSQ::absErr  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlinevirtual   | 
  
 
 
◆ checkIteration()
  
  
      
        
          | virtual int Isis::NonLinearLSQ::checkIteration  | 
          ( | 
          const int |           Iter,  | 
         
        
           | 
           | 
          const NLVector & |           fitcoefs,  | 
         
        
           | 
           | 
          const NLVector & |           uncerts,  | 
         
        
           | 
           | 
          double |           cplxconj,  | 
         
        
           | 
           | 
          int |           Istatus ) | 
         
       
   | 
  
inlinevirtual   | 
  
 
 
◆ coefs()
  
  
      
        
          | NLVector Isis::NonLinearLSQ::coefs  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ curvefit()
      
        
          | int Isis::NonLinearLSQ::curvefit  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ df()
  
  
      
        
          | int Isis::NonLinearLSQ::df  | 
          ( | 
          const gsl_vector * |           x,  | 
         
        
           | 
           | 
          void * |           params,  | 
         
        
           | 
           | 
          gsl_matrix * |           J ) | 
         
       
   | 
  
staticprivate   | 
  
 
 
◆ df_x()
  
  
      
        
          | virtual NLMatrix Isis::NonLinearLSQ::df_x  | 
          ( | 
          const NLVector & |           x | ) | 
           | 
         
       
   | 
  
pure virtual   | 
  
 
 
◆ doContinue()
  
  
      
        
          | bool Isis::NonLinearLSQ::doContinue  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlineprotected   | 
  
 
 
◆ f()
  
  
      
        
          | int Isis::NonLinearLSQ::f  | 
          ( | 
          const gsl_vector * |           x,  | 
         
        
           | 
           | 
          void * |           params,  | 
         
        
           | 
           | 
          gsl_vector * |           fx ) | 
         
       
   | 
  
staticprivate   | 
  
 
 
◆ f_x()
  
  
      
        
          | virtual NLVector Isis::NonLinearLSQ::f_x  | 
          ( | 
          const NLVector & |           x | ) | 
           | 
         
       
   | 
  
pure virtual   | 
  
 
 
◆ fdf()
  
  
      
        
          | int Isis::NonLinearLSQ::fdf  | 
          ( | 
          const gsl_vector * |           x,  | 
         
        
           | 
           | 
          void * |           params,  | 
         
        
           | 
           | 
          gsl_vector * |           fx,  | 
         
        
           | 
           | 
          gsl_matrix * |           J ) | 
         
       
   | 
  
staticprivate   | 
  
 
 
◆ getUncertainty()
  
  
      
        
          | NonLinearLSQ::NLVector Isis::NonLinearLSQ::getUncertainty  | 
          ( | 
          const gsl_matrix * |           m | ) | 
           const | 
         
       
   | 
  
private   | 
  
 
 
◆ gslToNlsq() [1/2]
  
  
      
        
          | NonLinearLSQ::NLMatrix Isis::NonLinearLSQ::gslToNlsq  | 
          ( | 
          const gsl_matrix * |           m | ) | 
           const | 
         
       
   | 
  
private   | 
  
 
 
◆ gslToNlsq() [2/2]
  
  
      
        
          | NonLinearLSQ::NLVector Isis::NonLinearLSQ::gslToNlsq  | 
          ( | 
          const gsl_vector * |           v | ) | 
           const | 
         
       
   | 
  
private   | 
  
 
 
◆ guess()
  
  
      
        
          | virtual NLVector Isis::NonLinearLSQ::guess  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
pure virtual   | 
  
 
 
◆ maxIters()
  
  
      
        
          | int Isis::NonLinearLSQ::maxIters  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ nIterations()
  
  
      
        
          | int Isis::NonLinearLSQ::nIterations  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ NlsqTogsl() [1/2]
  
  
      
        
          | gsl_matrix * Isis::NonLinearLSQ::NlsqTogsl  | 
          ( | 
          const NLMatrix & |           m,  | 
         
        
           | 
           | 
          gsl_matrix * |           gm = 0 ) const | 
         
       
   | 
  
private   | 
  
 
 
◆ NlsqTogsl() [2/2]
  
  
      
        
          | gsl_vector * Isis::NonLinearLSQ::NlsqTogsl  | 
          ( | 
          const NLVector & |           v,  | 
         
        
           | 
           | 
          gsl_vector * |           gv = 0 ) const | 
         
       
   | 
  
private   | 
  
 
 
◆ nParms()
  
  
      
        
          | virtual int Isis::NonLinearLSQ::nParms  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
pure virtual   | 
  
 
 
◆ nSize()
  
  
      
        
          | virtual int Isis::NonLinearLSQ::nSize  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
pure virtual   | 
  
 
 
◆ relErr()
  
  
      
        
          | virtual double Isis::NonLinearLSQ::relErr  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inlinevirtual   | 
  
 
 
◆ setMaxIters()
  
  
      
        
          | void Isis::NonLinearLSQ::setMaxIters  | 
          ( | 
          int |           m | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ status()
  
  
      
        
          | int Isis::NonLinearLSQ::status  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ statusstr() [1/2]
  
  
      
        
          | std::string Isis::NonLinearLSQ::statusstr  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ statusstr() [2/2]
  
  
      
        
          | std::string Isis::NonLinearLSQ::statusstr  | 
          ( | 
          int |           status | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ success() [1/2]
  
  
      
        
          | bool Isis::NonLinearLSQ::success  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ success() [2/2]
  
  
      
        
          | bool Isis::NonLinearLSQ::success  | 
          ( | 
          int |           status | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ Terminate()
  
  
      
        
          | void Isis::NonLinearLSQ::Terminate  | 
          ( | 
          const std::string & |           message = "" | ) | 
           | 
         
       
   | 
  
protected   | 
  
 
 
◆ uncert()
  
  
      
        
          | NLVector Isis::NonLinearLSQ::uncert  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
 
◆ _fitParms
  
  
      
        
          | NLVector Isis::NonLinearLSQ::_fitParms | 
         
       
   | 
  
private   | 
  
 
 
◆ _maxIters
  
  
      
        
          | int Isis::NonLinearLSQ::_maxIters | 
         
       
   | 
  
private   | 
  
 
 
◆ _nIters
  
  
      
        
          | int Isis::NonLinearLSQ::_nIters | 
         
       
   | 
  
private   | 
  
 
 
◆ _status
  
  
      
        
          | int Isis::NonLinearLSQ::_status | 
         
       
   | 
  
private   | 
  
 
 
◆ _uncert
  
  
      
        
          | NLVector Isis::NonLinearLSQ::_uncert | 
         
       
   | 
  
private   | 
  
 
 
◆ _userMessage
  
  
      
        
          | std::string Isis::NonLinearLSQ::_userMessage | 
         
       
   | 
  
private   | 
  
 
 
◆ _userTerminated
  
  
      
        
          | bool Isis::NonLinearLSQ::_userTerminated | 
         
       
   | 
  
private   | 
  
 
 
The documentation for this class was generated from the following files: