ReFRACtor
nlls_solver_gsl_sm.h
Go to the documentation of this file.
1 #ifndef NLLS_SOLVER_GSL_SM_H
2 #define NLLS_SOLVER_GSL_SM_H
3 
4 #include <gsl/gsl_multifit_nlinear.h>
5 #include <nlls_solver.h>
6 
7 
8 namespace FullPhysics {
9 
10 
11 /******************************************************************
12  This class is the base class for the solvers of the NLLS
13  problem that are small-to-medium is size. It requires the
14  newer GSL library that has solvers for small-to-medium and
15  large problem.
16 *******************************************************************/
18  public NLLSSolver {
19 
20 public:
21 
22 //-----------------------------------------------------------------------
48 //-----------------------------------------------------------------------
49  NLLSSolverGSLSM( const boost::shared_ptr<NLLSProblem>& p, int32_t max_cost_function_calls,
50  gsl_multifit_nlinear_parameters fdf_params=gsl_multifit_nlinear_default_parameters(),
51  double x_tol=1.0e-6, double g_tol=6.0555e-06, double f_tol=0.0, bool vrbs=false )
52  : NLLSSolver(p,max_cost_function_calls,vrbs),
53  FDF_params(fdf_params),
55  {}
56 
57 
58  virtual ~NLLSSolverGSLSM()
59  {}
60 
61 
62  virtual void solve();
63 
64 
65 //-----------------------------------------------------------------------
67 //-----------------------------------------------------------------------
68 
69  virtual void print(std::ostream& Os) const
70  { Os << "NLLSSolverGSLSM"; }
71 
72 
73 protected:
74 
75 
76  double X_tol;
77  double G_tol;
78  double F_tol;
79 
80  gsl_multifit_nlinear_parameters FDF_params;
81 
82 
83  virtual const gsl_multifit_nlinear_type* get_gsl_multifit_nlinear_solver()
84  { return gsl_multifit_nlinear_trust; /*default*/ }
85 
86 
87 }; // class NLLSProblemGSLSM
88 
89 }
90 
91 
92 #endif
virtual void solve()
The method that solves the optimization problem.
The base class for the solvers of the Nonlinear-Least-Squares Problem.
Definition: nlls_solver.h:24
NLLSSolverGSLSM(const boost::shared_ptr< NLLSProblem > &p, int32_t max_cost_function_calls, gsl_multifit_nlinear_parameters fdf_params=gsl_multifit_nlinear_default_parameters(), double x_tol=1.0e-6, double g_tol=6.0555e-06, double f_tol=0.0, bool vrbs=false)
Initializes the solver.
gsl_multifit_nlinear_parameters FDF_params
virtual void print(std::ostream &Os) const
Print description of object.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual const gsl_multifit_nlinear_type * get_gsl_multifit_nlinear_solver()

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:10