lms_control_type structure#

#include <galahad_lms.h>

struct lms_control_type {
    // fields

    bool f_indexing;
    ipc_ error;
    ipc_ out;
    ipc_ print_level;
    ipc_ memory_length;
    ipc_ method;
    bool any_method;
    bool space_critical;
    bool deallocate_error_fatal;
    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

unit for error messages

ipc_ out

unit for monitor output

ipc_ print_level

controls level of diagnostic output

ipc_ memory_length

limited memory length

ipc_ method

limited-memory formula required (others may be added in due course):

  • 1 BFGS (default).

  • 2 Symmetric Rank-One (SR1).

  • 3 The inverse of the BFGS formula.

  • 4 The inverse of the shifted BFGS formula. This should be used instead of .method = 3 whenever a shift is planned.

bool any_method

allow space to permit different methods if required (less efficient)

bool space_critical

if space is critical, ensure allocated arrays are no bigger than needed

bool deallocate_error_fatal

exit if any deallocation fails

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’