expo_control_type structure#
#include <galahad_expo.h> struct expo_control_type { // components bool f_indexing; ipc_ error; ipc_ out; ipc_ print_level; ipc_ start_print; ipc_ stop_print; ipc_ print_gap; ipc_ max_it; ipc_ max_eval; ipc_ alive_unit; char alive_file[31]; ipc_ update_multipliers_itmin; rpc_ update_multipliers_tol; rpc_ infinity; rpc_ stop_abs_p; rpc_ stop_rel_p; rpc_ stop_abs_d; rpc_ stop_rel_d; rpc_ stop_abs_c; rpc_ stop_rel_c; rpc_ stop_s; rpc_ initial_mu; rpc_ mu_reduce; rpc_ obj_unbounded; rpc_ try_advanced_start; rpc_ try_sqp_start; rpc_ stop_advanced_start; rpc_ cpu_time_limit; rpc_ clock_time_limit; bool hessian_available; bool subproblem_direct; bool space_critical; bool deallocate_error_fatal; char prefix[31]; struct bsc_control_type bsc_control; struct tru_control_type tru_control; struct ssls_control_type ssls_control; };
detailed documentation#
control derived type as a C struct
components#
bool f_indexing
use C or Fortran sparse matrix indexing
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.
\(\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
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_ max_it
the maximum number of iterations permitted
ipc_ max_eval
the maximum number of function evaluations permitted
ipc_ alive_unit
removal of the file alive_file from unit alive_unit terminates execution
char alive_file[31]
see alive_unit
ipc_ 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
rpc_ update_multipliers_tol
see update_multipliers_itmin
rpc_ infinity
any bound larger than infinity in modulus will be regarded as infinite
rpc_ stop_abs_p
the required absolute and relative accuracies for the primal infeasibility
rpc_ stop_rel_p
see stop_abs_p
rpc_ stop_abs_d
the required absolute and relative accuracies for the dual infeasibility
rpc_ stop_rel_d
see stop_abs_d
rpc_ stop_abs_c
the required absolute and relative accuracies for complementary slackness
rpc_ stop_rel_c
see stop_abs_c
rpc_ stop_s
the smallest the norm of the step can be before termination
rpc_ initial_mu
initial value for the penalty parameter (<=0 means set automatically)
rpc_ mu_reduce
the amount by which the penalty parameter is decreased
rpc_ obj_unbounded
the smallest value the objective function may take before the problem is marked as unbounded
rpc_ 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)
rpc_ 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)
rpc_ stop_advanced_start
stop the advanced start search once the residuals small tham .stop_advanced_start
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 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
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’
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