Mantid
Loading...
Searching...
No Matches
Public Attributes | List of all members
Mantid::CurveFitting::NLLS::nlls_options Struct Reference

#include <Workspaces.h>

Public Attributes

bool calculate_svd_J = false
 
double eta_success_but_reduce = 1.0e-8
 
double eta_successful = 1.0e-8
 a potential iterate will only be accepted if the actual decrease f - f(x_new) is larger than .eta_successful times that predicted by a quadratic model of the decrease. More...
 
double eta_too_successful = TWO
 
double eta_very_successful = POINT9
 
bool exact_second_derivatives = false
 shall we use explicit second derivatives, or approximate using a secant method More...
 
double hybrid_switch = 0.1
 if model=7, then the value with which we switch on second derivatives More...
 
int hybrid_switch_its = 1
 how many successive iterations does the above condition need to hold before we switch? More...
 
double hybrid_tol = 2.0
 what's the tolerance such that ||J^T f || < tol * 0.5 ||f||^2 triggers a switch More...
 
double initial_radius = HUNDRED
 if relative_tr_radius /= 1, then set the initial value for the trust-region radius (-ve => ||g_0||) More...
 
double initial_radius_scale = 1.0
 if relative_tr_radius == 1, then pick a scaling parameter Madsen, Nielsen and Tingleff say pick this to be 1e-6, say, if x_0 is good, otherwise 1e-3 or even 1 would be good starts... More...
 
int lls_solver = 1
 which linear least squares solver should we use? More...
 
double maximum_radius = 1.0e8
 maximum permitted trust-region radius More...
 
int maxit = 100
 the maximum number of iterations performed More...
 
int model = 3
 specify the model used. More...
 
int more_sorensen_maxits = 500
 M O R E - S O R E N S E N C O N T R O L S. More...
 
double more_sorensen_shift = 1e-13
 
double more_sorensen_tiny = 10.0 * std::numeric_limits<double>::epsilon()
 
double more_sorensen_tol = 1e-3
 
int nlls_method = 4
 specify the method used to solve the trust-region sub problem 1 Powell's dogleg 2 AINT method (of Yuji Nat.) 3 More-Sorensen 4 Galahad's DTRS More...
 
bool output_progress_vectors = false
 Shall we output progess vectors at termination of the routine? More...
 
double radius_increase = TWO
 on very successful iterations, the trust-region radius will be increased by the factor .radius_increase, while if the iteration is unsuccessful, the radius will be decreased by a factor .radius_reduce but no more than .radius_reduce_max More...
 
double radius_reduce = HALF
 
double radius_reduce_max = SIXTEENTH
 
int relative_tr_radius = 0
 should we scale the initial trust region radius? More...
 
int scale = 1
 scale the variables? 0 - no scaling 1 - use the scaling in GSL (W s.t. More...
 
double scale_max = 1e11
 
double scale_min = 1e-11
 
bool scale_require_increase = false
 
bool scale_trim_max = true
 
bool scale_trim_min = true
 
double stop_g_absolute = TEN_M5
 overall convergence tolerances. More...
 
double stop_g_relative = TEN_M8
 
bool subproblem_eig_fact = false
 use a factorization (dsyev) to find the smallest eigenvalue for the subproblem solve? (alternative is an iterative method (dsyevx) More...
 
int tr_update_strategy = 1
 Trust region update strategy 1 - usual step function 2 - continuous method of Hans Bruun Nielsen (IMM-REP-1999-05) More...
 

Detailed Description

Definition at line 33 of file Workspaces.h.

Member Data Documentation

◆ calculate_svd_J

bool Mantid::CurveFitting::NLLS::nlls_options::calculate_svd_J = false

◆ eta_success_but_reduce

double Mantid::CurveFitting::NLLS::nlls_options::eta_success_but_reduce = 1.0e-8

Definition at line 89 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ eta_successful

double Mantid::CurveFitting::NLLS::nlls_options::eta_successful = 1.0e-8

a potential iterate will only be accepted if the actual decrease f - f(x_new) is larger than .eta_successful times that predicted by a quadratic model of the decrease.

The trust-region radius will be increased if this relative decrease is greater than .eta_very_successful but smaller than .eta_too_successful

Definition at line 88 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ eta_too_successful

double Mantid::CurveFitting::NLLS::nlls_options::eta_too_successful = TWO

Definition at line 91 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ eta_very_successful

double Mantid::CurveFitting::NLLS::nlls_options::eta_very_successful = POINT9

Definition at line 90 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ exact_second_derivatives

bool Mantid::CurveFitting::NLLS::nlls_options::exact_second_derivatives = false

shall we use explicit second derivatives, or approximate using a secant method

Definition at line 113 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::NLLS_workspace::initialize().

◆ hybrid_switch

double Mantid::CurveFitting::NLLS::nlls_options::hybrid_switch = 0.1

if model=7, then the value with which we switch on second derivatives

Definition at line 109 of file Workspaces.h.

◆ hybrid_switch_its

int Mantid::CurveFitting::NLLS::nlls_options::hybrid_switch_its = 1

how many successive iterations does the above condition need to hold before we switch?

Definition at line 147 of file Workspaces.h.

◆ hybrid_tol

double Mantid::CurveFitting::NLLS::nlls_options::hybrid_tol = 2.0

what's the tolerance such that ||J^T f || < tol * 0.5 ||f||^2 triggers a switch

Definition at line 143 of file Workspaces.h.

◆ initial_radius

double Mantid::CurveFitting::NLLS::nlls_options::initial_radius = HUNDRED

if relative_tr_radius /= 1, then set the initial value for the trust-region radius (-ve => ||g_0||)

Definition at line 77 of file Workspaces.h.

Referenced by Mantid::CurveFitting::FuncMinimisers::TrustRegionMinimizer::initialize().

◆ initial_radius_scale

double Mantid::CurveFitting::NLLS::nlls_options::initial_radius_scale = 1.0

if relative_tr_radius == 1, then pick a scaling parameter Madsen, Nielsen and Tingleff say pick this to be 1e-6, say, if x_0 is good, otherwise 1e-3 or even 1 would be good starts...

Definition at line 73 of file Workspaces.h.

◆ lls_solver

int Mantid::CurveFitting::NLLS::nlls_options::lls_solver = 1

which linear least squares solver should we use?

Definition at line 56 of file Workspaces.h.

◆ maximum_radius

double Mantid::CurveFitting::NLLS::nlls_options::maximum_radius = 1.0e8

maximum permitted trust-region radius

Definition at line 80 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ maxit

int Mantid::CurveFitting::NLLS::nlls_options::maxit = 100

the maximum number of iterations performed

Definition at line 38 of file Workspaces.h.

Referenced by Mantid::CurveFitting::FuncMinimisers::TrustRegionMinimizer::initialize(), and Mantid::CurveFitting::NLLS::NLLS_workspace::initialize().

◆ model

int Mantid::CurveFitting::NLLS::nlls_options::model = 3

specify the model used.

Possible values are

0 dynamic (not yet implemented) 1 Gauss-Newton (no 2nd derivatives) 2 second-order (exact Hessian) 3 hybrid (using Madsen, Nielsen and Tingleff's method)

Definition at line 46 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::evaluateModel(), and Mantid::CurveFitting::NLLS::NLLS_workspace::initialize().

◆ more_sorensen_maxits

int Mantid::CurveFitting::NLLS::nlls_options::more_sorensen_maxits = 500

M O R E - S O R E N S E N C O N T R O L S.

Definition at line 134 of file Workspaces.h.

◆ more_sorensen_shift

double Mantid::CurveFitting::NLLS::nlls_options::more_sorensen_shift = 1e-13

Definition at line 135 of file Workspaces.h.

◆ more_sorensen_tiny

double Mantid::CurveFitting::NLLS::nlls_options::more_sorensen_tiny = 10.0 * std::numeric_limits<double>::epsilon()

Definition at line 136 of file Workspaces.h.

◆ more_sorensen_tol

double Mantid::CurveFitting::NLLS::nlls_options::more_sorensen_tol = 1e-3

Definition at line 137 of file Workspaces.h.

◆ nlls_method

int Mantid::CurveFitting::NLLS::nlls_options::nlls_method = 4

specify the method used to solve the trust-region sub problem 1 Powell's dogleg 2 AINT method (of Yuji Nat.) 3 More-Sorensen 4 Galahad's DTRS

Definition at line 53 of file Workspaces.h.

◆ output_progress_vectors

bool Mantid::CurveFitting::NLLS::nlls_options::output_progress_vectors = false

Shall we output progess vectors at termination of the routine?

Definition at line 152 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::NLLS_workspace::initialize().

◆ radius_increase

double Mantid::CurveFitting::NLLS::nlls_options::radius_increase = TWO

on very successful iterations, the trust-region radius will be increased by the factor .radius_increase, while if the iteration is unsuccessful, the radius will be decreased by a factor .radius_reduce but no more than .radius_reduce_max

Definition at line 99 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::NLLS_workspace::initialize(), and Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ radius_reduce

double Mantid::CurveFitting::NLLS::nlls_options::radius_reduce = HALF

Definition at line 100 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ radius_reduce_max

double Mantid::CurveFitting::NLLS::nlls_options::radius_reduce_max = SIXTEENTH

Definition at line 101 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().

◆ relative_tr_radius

int Mantid::CurveFitting::NLLS::nlls_options::relative_tr_radius = 0

should we scale the initial trust region radius?

Definition at line 67 of file Workspaces.h.

◆ scale

int Mantid::CurveFitting::NLLS::nlls_options::scale = 1

scale the variables? 0 - no scaling 1 - use the scaling in GSL (W s.t.

W_ii = ||J(i,:)||_2^2) tiny values get set to one 2 - scale using the approx to the Hessian (W s.t. W = ||H(i,:)||_2^2

Definition at line 125 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::applyScaling(), and Mantid::CurveFitting::FuncMinimisers::TrustRegionMinimizer::calculateStep().

◆ scale_max

double Mantid::CurveFitting::NLLS::nlls_options::scale_max = 1e11

Definition at line 126 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::applyScaling().

◆ scale_min

double Mantid::CurveFitting::NLLS::nlls_options::scale_min = 1e-11

Definition at line 127 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::applyScaling().

◆ scale_require_increase

bool Mantid::CurveFitting::NLLS::nlls_options::scale_require_increase = false

Definition at line 130 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::applyScaling().

◆ scale_trim_max

bool Mantid::CurveFitting::NLLS::nlls_options::scale_trim_max = true

Definition at line 129 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::applyScaling().

◆ scale_trim_min

bool Mantid::CurveFitting::NLLS::nlls_options::scale_trim_min = true

Definition at line 128 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::applyScaling().

◆ stop_g_absolute

double Mantid::CurveFitting::NLLS::nlls_options::stop_g_absolute = TEN_M5

overall convergence tolerances.

The iteration will terminate when the norm of the gradient of the objective function is smaller than MAX( .stop_g_absolute, .stop_g_relative * norm of the initial gradient or if the step is less than .stop_s

Definition at line 63 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::testConvergence().

◆ stop_g_relative

double Mantid::CurveFitting::NLLS::nlls_options::stop_g_relative = TEN_M8

Definition at line 64 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::testConvergence().

◆ subproblem_eig_fact

bool Mantid::CurveFitting::NLLS::nlls_options::subproblem_eig_fact = false

use a factorization (dsyev) to find the smallest eigenvalue for the subproblem solve? (alternative is an iterative method (dsyevx)

Definition at line 118 of file Workspaces.h.

◆ tr_update_strategy

int Mantid::CurveFitting::NLLS::nlls_options::tr_update_strategy = 1

Trust region update strategy 1 - usual step function 2 - continuous method of Hans Bruun Nielsen (IMM-REP-1999-05)

Definition at line 106 of file Workspaces.h.

Referenced by Mantid::CurveFitting::NLLS::updateTrustRegionRadius().


The documentation for this struct was generated from the following file: