lpa_control_type structure#

#include <galahad_lpa.h>

struct lpa_control_type {
    // components

    bool f_indexing;
    ipc_ error;
    ipc_ out;
    ipc_ print_level;
    ipc_ start_print;
    ipc_ stop_print;
    ipc_ maxit;
    ipc_ max_iterative_refinements;
    ipc_ min_real_factor_size;
    ipc_ min_integer_factor_size;
    ipc_ random_number_seed;
    ipc_ sif_file_device;
    ipc_ qplib_file_device;
    rpc_ infinity;
    rpc_ tol_data;
    rpc_ feas_tol;
    rpc_ relative_pivot_tolerance;
    rpc_ growth_limit;
    rpc_ zero_tolerance;
    rpc_ change_tolerance;
    rpc_ identical_bounds_tol;
    rpc_ cpu_time_limit;
    rpc_ clock_time_limit;
    bool scale;
    bool dual;
    bool warm_start;
    bool steepest_edge;
    bool space_critical;
    bool deallocate_error_fatal;
    bool generate_sif_file;
    bool generate_qplib_file;
    char sif_file_name[31];
    char qplib_file_name[31];
    char prefix[31];
};

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 is specified by print_level (>= 2 turns on LA04 output)

ipc_ start_print

any printing will start on this iteration

ipc_ stop_print

any printing will stop on this iteration

ipc_ maxit

at most maxit inner iterations are allowed

ipc_ max_iterative_refinements

maximum number of iterative refinements allowed

ipc_ min_real_factor_size

initial size for real array for the factors and other data

ipc_ min_integer_factor_size

initial size for integer array for the factors and other data

ipc_ random_number_seed

the initial seed used when generating random numbers

ipc_ sif_file_device

specifies the unit number to write generated SIF file describing the current problem

ipc_ qplib_file_device

specifies the unit number to write generated QPLIB file describing the current problem

rpc_ infinity

any bound larger than infinity in modulus will be regarded as infinite

rpc_ tol_data

the tolerable relative perturbation of the data (A,g,..) defining the problem

rpc_ feas_tol

any constraint violated by less than feas_tol will be considered to be satisfied

rpc_ relative_pivot_tolerance

pivot threshold used to control the selection of pivot elements in the matrix factorization. Any potential pivot which is less than the largest entry in its row times the threshold is excluded as a candidate

rpc_ growth_limit

limit to control growth in the upated basis factors. A refactorization occurs if the growth exceeds this limit

rpc_ zero_tolerance

any entry in the basis smaller than this is considered zero

rpc_ change_tolerance

any solution component whose change is smaller than a tolerence times the largest change may be considered to be zero

rpc_ identical_bounds_tol

any pair of constraint bounds (c_l,c_u) or (x_l,x_u) that are closer than identical_bounds_tol will be reset to the average of their values

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 scale

if .scale is true, the problem will be automatically scaled prior to solution. This may improve computation time and accuracy

bool dual

should the dual problem be solved rather than the primal?

bool warm_start

should a warm start using the data in C_stat and X_stat be attempted?

bool steepest_edge

should steepest-edge weights be used to detetrmine the variable leaving the basis?

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

bool generate_sif_file

if .generate_sif_file is .true. if a SIF file describing the current problem is to be generated

bool generate_qplib_file

if .generate_qplib_file is .true. if a QPLIB file describing the current problem is to be generated

char sif_file_name[31]

name of generated SIF file containing input problem

char qplib_file_name[31]

name of generated QPLIB file containing input problem

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’