1 #ifndef NLLS_SOLVER_LM_H 2 #define NLLS_SOLVER_LM_H 87 double dx_tol_abs=0.000001,
double dx_tol_rel=0.000001,
88 double g_tol_abs=0.000001,
double g_tol_rel=6.0555e-06,
106 virtual void solve();
119 virtual void print_state(std::ostream &ostr=std::cout);
126 virtual void print(std::ostream& Os)
const 127 { Os <<
"NLLSSolverLM"; }
134 static status_t test_dx_rel(
const Eigen::VectorXd& dx,
const Eigen::VectorXd& x,
double dx_tol_rel );
138 static status_t test_dx(
const Eigen::VectorXd& dx,
const Eigen::VectorXd& x,
double dx_tol_rel,
double dx_tol_abs );
140 static status_t test_grad_rel(
const Eigen::VectorXd&
g,
const Eigen::VectorXd& x,
double cost,
double g_tol_rel );
virtual void print_state(std::ostream &ostr=std::cout)
Prints solver state.
virtual void solve()
The method that solves the optimization problem.
static status_t test_dx(const Eigen::VectorXd &dx, const Eigen::VectorXd &x, double dx_tol_rel, double dx_tol_abs)
The base class for the solvers of the Nonlinear-Least-Squares Problem.
static status_t test_dx_abs(const Eigen::VectorXd &dx, double dx_tol_abs)
double tr_rad
A positive number and the initial trust region radius.
status_t
Enum type for the status of the iterative solver.
virtual status_t iterate()
static status_t test_grad_rel(const Eigen::VectorXd &g, const Eigen::VectorXd &x, double cost, double g_tol_rel)
static status_t test_dx_rel(const Eigen::VectorXd &dx, const Eigen::VectorXd &x, double dx_tol_rel)
double tr_rad_tol
A positive number and a tolerance for comparing to the trust region radius.
double min_W
A positive number and the smallest value for the diagonal entries of the diagonal weight matrix...
virtual void print(std::ostream &Os) const
Print description of object.
const Unit g("g", 1e-3 *kg)
Contains classes to abstract away details in various Spurr Radiative Transfer software.
static status_t test_grad_abs(const Eigen::VectorXd &g, double g_tol_abs)
virtual ~NLLSSolverLM()
Destructor.
NLLSSolverLM(const boost::shared_ptr< NLLSProblem > &p, int max_cost_function_calls, const NLLSSolverLM::Options &opt=NLLSSolverLM::Options(), double dx_tol_abs=0.000001, double dx_tol_rel=0.000001, double g_tol_abs=0.000001, double g_tol_rel=6.0555e-06, bool vrbs=false)
Constructor.
double cr_ratio_tol
A positive number and tolerance on the ratio of the actual to the predicted reduction of the value of...