ugo_control_type structure#
#include <galahad_ugo.h> struct ugo_control_type { // components ipc_ error; ipc_ out; ipc_ print_level; ipc_ start_print; ipc_ stop_print; ipc_ print_gap; ipc_ maxit; ipc_ initial_points; ipc_ storage_increment; ipc_ buffer; ipc_ lipschitz_estimate_used; ipc_ next_interval_selection; ipc_ refine_with_newton; ipc_ alive_unit; char alive_file[31]; rpc_ stop_length; rpc_ small_g_for_newton; rpc_ small_g; rpc_ obj_sufficient; rpc_ global_lipschitz_constant; rpc_ reliability_parameter; rpc_ lipschitz_lower_bound; rpc_ cpu_time_limit; rpc_ clock_time_limit; bool second_derivative_available; bool space_critical; bool deallocate_error_fatal; char prefix[31]; };
detailed documentation#
control derived type as a C struct
components#
ipc_ error
error and warning diagnostics occur on stream error
ipc_ out
general output occurs on stream out
ipc_ print_level
the level of output required. Possible values are:
\(\leq\) 0 no output,
1 a one-line summary for every improvement
2 a summary of each iteration
\(\geq\) 3 increasingly verbose (debugging) output
ipc_ start_print
any printing will start on this iteration
ipc_ stop_print
any printing will stop on this iteration
ipc_ print_gap
the number of iterations between printing
ipc_ maxit
the maximum number of iterations allowed
ipc_ initial_points
the number of initial (uniformly-spaced) evaluation points (<2 reset to 2)
ipc_ storage_increment
incremenets of storage allocated (less that 1000 will be reset to 1000)
ipc_ buffer
unit for any out-of-core writing when expanding arrays
ipc_ lipschitz_estimate_used
what sort of Lipschitz constant estimate will be used:
1 = global contant provided
2 = global contant estimated
3 = local costants estimated
ipc_ next_interval_selection
how is the next interval for examination chosen:
1 = traditional
2 = local_improvement
ipc_ refine_with_newton
try refine_with_newton Newton steps from the vacinity of the global minimizer to try to improve the estimate
ipc_ alive_unit
removal of the file alive_file from unit alive_unit terminates execution
char alive_file[31]
see alive_unit
rpc_ stop_length
overall convergence tolerances. The iteration will terminate when the step is less than .stop_length
rpc_ small_g_for_newton
if the absolute value of the gradient is smaller than small_g_for_newton, the next evaluation point may be at a Newton estimate of a local minimizer
rpc_ small_g
if the absolute value of the gradient at the end of the interval search is smaller than small_g, no Newton serach is necessary
rpc_ obj_sufficient
stop if the objective function is smaller than a specified value
rpc_ global_lipschitz_constant
the global Lipschitz constant for the gradient (-ve means unknown)
rpc_ reliability_parameter
the reliability parameter that is used to boost insufficiently large estimates of the Lipschitz constant (-ve means that default values will be chosen depending on whether second derivatives are provided or not)
rpc_ lipschitz_lower_bound
a lower bound on the Lipscitz constant for the gradient (not zero unless the function is constant)
rpc_ cpu_time_limit
the maximum CPU time allowed (-ve means infinite)
rpc_ clock_time_limit
the maximum elapsed clock time allowed (-ve means infinite)
bool second_derivative_available
if .second_derivative_available is true, the user must provide them when requested. The package is generally more effective if second derivatives are available.
bool space_critical
if .space_critical is true, every effort will be made to use as little space as possible. This may result in longer computation time
bool deallocate_error_fatal
if .deallocate_error_fatal is true, any array/pointer deallocation error will terminate execution. Otherwise, computation will continue
char prefix[31]
all output lines will be prefixed by .prefix(2:LEN(TRIM(.prefix))-1) where .prefix contains the required string enclosed in quotes, e.g. “string” or ‘string’