ugo_control_type structure#

    struct ugo_control_type{T,INT}
      error::INT
      out::INT
      print_level::INT
      start_print::INT
      stop_print::INT
      print_gap::INT
      maxit::INT
      initial_points::INT
      storage_increment::INT
      buffer::INT
      lipschitz_estimate_used::INT
      next_interval_selection::INT
      refine_with_newton::INT
      alive_unit::INT
      alive_file::NTuple{31,Cchar}
      stop_length::T
      small_g_for_newton::T
      small_g::T
      obj_sufficient::T
      global_lipschitz_constant::T
      reliability_parameter::T
      lipschitz_lower_bound::T
      cpu_time_limit::T
      clock_time_limit::T
      second_derivative_available::Bool
      space_critical::Bool
      deallocate_error_fatal::Bool
      prefix::NTuple{31,Cchar}

detailed documentation#

control derived type as a Julia structure

components#

INT error

error and warning diagnostics occur on stream error

INT out

general output occurs on stream out

INT 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

INT start_print

any printing will start on this iteration

INT stop_print

any printing will stop on this iteration

INT print_gap

the number of iterations between printing

INT maxit

the maximum number of iterations allowed

INT initial_points

the number of initial (uniformly-spaced) evaluation points (<2 reset to 2)

INT storage_increment

incremenets of storage allocated (less that 1000 will be reset to 1000)

INT buffer

unit for any out-of-core writing when expanding arrays

INT lipschitz_estimate_used

what sort of Lipschitz constant estimate will be used:

  • 1 = global contant provided

  • 2 = global contant estimated

  • 3 = local costants estimated

INT next_interval_selection

how is the next interval for examination chosen:

  • 1 = traditional

  • 2 = local_improvement

INT refine_with_newton

try refine_with_newton Newton steps from the vacinity of the global minimizer to try to improve the estimate

INT alive_unit

removal of the file alive_file from unit alive_unit terminates execution

NTuple{31,Cchar} alive_file

see alive_unit

T stop_length

overall convergence tolerances. The iteration will terminate when the step is less than .stop_length

T 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

T 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

T obj_sufficient

stop if the objective function is smaller than a specified value

T global_lipschitz_constant

the global Lipschitz constant for the gradient (-ve means unknown)

T 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)

T lipschitz_lower_bound

a lower bound on the Lipscitz constant for the gradient (not zero unless the function is constant)

T cpu_time_limit

the maximum CPU time allowed (-ve means infinite)

T 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

NTuple{31,Cchar} prefix

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’