blls_control_type structure#

#include <galahad_blls.h>

struct blls_control_type {
    // components

    bool f_indexing;
    ipc_ error;
    ipc_ out;
    ipc_ print_level;
    ipc_ start_print;
    ipc_ stop_print;
    ipc_ print_gap;
    ipc_ maxit;
    ipc_ cold_start;
    ipc_ preconditioner;
    ipc_ ratio_cg_vs_sd;
    ipc_ change_max;
    ipc_ cg_maxit;
    ipc_ arcsearch_max_steps;
    ipc_ sif_file_device;
    rpc_ weight;
    rpc_ infinity;
    rpc_ stop_d;
    rpc_ identical_bounds_tol;
    rpc_ stop_cg_relative;
    rpc_ stop_cg_absolute;
    rpc_ alpha_max;
    rpc_ alpha_initial;
    rpc_ alpha_reduction;
    rpc_ arcsearch_acceptance_tol;
    rpc_ stabilisation_weight;
    rpc_ cpu_time_limit;
    bool direct_subproblem_solve;
    bool exact_arc_search;
    bool advance;
    bool space_critical;
    bool deallocate_error_fatal;
    bool generate_sif_file;
    char sif_file_name[31];
    char prefix[31];
    struct sbls_control_type sbls_control;
    struct convert_control_type convert_control;
};

detailed documentation#

control derived type as a C struct

components#

bool f_indexing

use C or Fortran sparse matrix indexing

ipc_ error

unit number for error and warning diagnostics

ipc_ out

general output unit number

ipc_ print_level

the level of output required

ipc_ start_print

on which iteration to start printing

ipc_ stop_print

on which iteration to stop printing

ipc_ print_gap

how many iterations between printing

ipc_ maxit

how many iterations to perform (-ve reverts to HUGE(1)-1)

ipc_ cold_start

cold_start should be set to 0 if a warm start is required (with variable assigned according to X_stat, see below), and to any other value if the values given in prob.X suffice

ipc_ preconditioner

the preconditioner (scaling) used. Possible values are: /li 0. no preconditioner. /li 1. a diagonal preconditioner that normalizes the rows of \(A\). /li anything else. a preconditioner supplied by the user either via a subroutine call of eval_prec} or via reverse communication.

ipc_ ratio_cg_vs_sd

the ratio of how many iterations use CGLS rather than steepest descent

ipc_ change_max

the maximum number of per-iteration changes in the working set permitted when allowing CGLS rather than steepest descent

ipc_ cg_maxit

how many CG iterations to perform per BLLS iteration (-ve reverts to n+1)

ipc_ arcsearch_max_steps

the maximum number of steps allowed in a piecewise arcsearch (-ve=infini

ipc_ sif_file_device

the unit number to write generated SIF file describing the current probl

rpc_ weight

the value of the non-negative regularization weight sigma, i.e., the quadratic objective function q(x) will be regularized by adding 1/2 weight ||x||^2; any value smaller than zero will be regarded as zero.

rpc_ infinity

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

rpc_ stop_d

the required accuracy for the dual infeasibility

rpc_ identical_bounds_tol

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

rpc_ stop_cg_relative

the CG iteration will be stopped as soon as the current norm of the preconditioned gradient is smaller than max( stop_cg_relative * initial preconditioned gradient, stop_cg_absolute)

rpc_ alpha_max

the largest permitted arc length during the piecewise line search

rpc_ alpha_initial

the initial arc length during the inexact piecewise line search

rpc_ alpha_reduction

the arc length reduction factor for the inexact piecewise line search

rpc_ arcsearch_acceptance_tol

the required relative reduction during the inexact piecewise line search

rpc_ stabilisation_weight

the stabilisation weight added to the search-direction subproblem

rpc_ cpu_time_limit

the maximum CPU time allowed (-ve = no limit)

bool direct_subproblem_solve

direct_subproblem_solve is true if the least-squares subproblem is to be solved using a matrix factorization, and false if conjugate gradients are to be preferred

bool exact_arc_search

exact_arc_search is true if an exact arc_search is required, and false if an approximation suffices

bool advance

advance is true if an inexact exact arc_search can increase steps as well as decrease them

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 times

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, a SIF file describing the current problem will be generated

char sif_file_name[31]

name (max 30 characters) of generated SIF file containing input problem

char prefix[31]

all output lines will be prefixed by a string (max 30 characters) prefix(2:LEN(TRIM(.prefix))-1) where prefix contains the required string enclosed in quotes, e.g. “string” or ‘string’

struct sbls_control_type sbls_control

control parameters for SBLS

struct convert_control_type convert_control

control parameters for CONVERT