expo_control_type structure#

    struct expo_control_type{T,INT}
      f_indexing::Bool
      error::INT
      out::INT
      print_level::INT
      start_print::INT
      stop_print::INT
      print_gap::INT
      max_it::INT
      max_eval::INT
      alive_unit::INT
      alive_file::NTuple{31,Cchar}
      update_multipliers_itmin::INT
      update_multipliers_tol::T
      infinity::T
      stop_abs_p::T
      stop_rel_p::T
      stop_abs_d::T
      stop_rel_d::T
      stop_abs_c::T
      stop_rel_c::T
      stop_s::T
      initial_mu::T
      mu_reduce::T
      minimum_weight::T
      obj_unbounded::T
      try_advanced_start::T
      try_sqp_start::T
      stop_advanced_start::T
      cpu_time_limit::T
      clock_time_limit::T
      hessian_available::Bool
      subproblem_direct::Bool
      space_critical::Bool
      deallocate_error_fatal::Bool
      prefix::NTuple{31,Cchar}
      bsc_control::bsc_control_type
      tru_control::tru_control_type{T,INT}
      ssls_control::ssls_control_type{T,INT}

detailed documentation#

control derived type as a Julia structure

components#

Bool f_indexing

use C or Fortran sparse matrix indexing

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.

  • \(\leq\) 0 gives no output,

  • = 1 gives a one-line summary for every iteration,

  • = 2 gives a summary of the inner iteration for each iteration,

  • \(\geq\) 3 gives 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 max_it

the maximum number of iterations permitted

INT max_eval

the maximum number of function evaluations permitted

INT alive_unit

removal of the file alive_file from unit alive_unit terminates execution

char alive_file[31]

see alive_unit

INT update_multipliers_itmin

update the Lagrange multipliers/dual variables from iteration .update_multipliers_itmin (<0 means never) and once the primal infeasibility is below .update_multipliers_tol

T  update_multipliers_tol

see update_multipliers_itmin

T infinity
T stop_abs_p

the required absolute and relative accuracies for the primal infeasibility (1)

T stop_rel_p

see stop_abs_p

T stop_abs_d

the required absolute and relative accuracies for the dual infeasibility (2)

T stop_rel_d

see stop_abs_d

T stop_abs_c

the required absolute and relative accuracies for the complementary slackness (3)

T stop_rel_c

see stop_abs_c

T stop_s

the smallest the norm of the step can be before termination

T initial_mu

initial value for the penalty parameter (<=0 means set automatically)

T mu_reduce

the amount by which the penalty parameter is decreased

T obj_unbounded

the smallest value the objective function may take before the problem is marked as unbounded

T try_advanced_start

try an advanced start at the end of every iteration when the KKT residuals are smaller than .try_advanced_start (-ve means never)

T try_sqp_start

try an advanced SQP start at the end of every iteration when the KKT residuals are smaller than .try_sqp_start (-ve means never)

T stop_advanced_start

stop the advanced start search once the residuals small tham .stop_advanced_start

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 hessian_available

is the Hessian matrix of second derivatives available or is access only via matrix-vector products (coming soon)?

Bool subproblem_direct

use a direct (factorization) or (preconditioned) iterative method (coming soon) to find the search direction

Bool space_critical

if .space_critical 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’

struct bsc_control_type bsc_control

control parameters for BSC

struct tru_control_type tru_control

control parameters for TRU

struct ssls_control_type ssls_control

control parameters for SSLS