ugo_control_type structure#

    struct ugo_control_type{T}
      error::Int32
      out::Int32
      print_level::Int32
      start_print::Int32
      stop_print::Int32
      print_gap::Int32
      maxit::Int32
      initial_points::Int32
      storage_increment::Int32
      buffer::Int32
      lipschitz_estimate_used::Int32
      next_interval_selection::Int32
      refine_with_newton::Int32
      alive_unit::Int32
      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#

Int32 error

error and warning diagnostics occur on stream error

Int32 out

general output occurs on stream out

Int32 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

Int32 start_print

any printing will start on this iteration

Int32 stop_print

any printing will stop on this iteration

Int32 print_gap

the number of iterations between printing

Int32 maxit

the maximum number of iterations allowed

Int32 initial_points

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

Int32 storage_increment

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

Int32 buffer

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

Int32 lipschitz_estimate_used

what sort of Lipschitz constant estimate will be used:

  • 1 = global contant provided

  • 2 = global contant estimated

  • 3 = local costants estimated

Int32 next_interval_selection

how is the next interval for examination chosen:

  • 1 = traditional

  • 2 = local_improvement

Int32 refine_with_newton

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

Int32 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’