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’