SEC#

purpose#

The sec package builds and updates dense BFGS and SR1 secant approximations to a Hessian so that the approximation \(B\) satisfies the secant condition \(B s = y\) for given vectors \(s\) and \(y\).

Currently only the options and inform dictionaries are exposed; these are provided and used by other GALAHAD packages with Python interfaces. Please contact us if you would like full functionality!

See Section 4 of $GALAHAD/doc/sec.pdf for a brief description of the method employed and other details.

functions#

sec.initialize()#

Set default option values and initialize private data.

Returns:

optionsdict
dictionary containing default control options:
errorint

error and warning diagnostics occur on stream error.

outint

general output occurs on stream out.

print_levelint

the level of output required. Possible values are:

  • <1

    no output will occur.

  • >0

    debugging output will occur.

h_initialfloat

the initial Hessian approximation will be h_initial * \(I\).

update_skip_tolfloat

an update is skipped if the resulting matrix would have grown too much; specifically it is skipped when \(y^T s / y^T y \leq\) update_skip_tol.

prefixstr

all output lines will be prefixed by the string contained in quotes within prefix, e.g. ‘word’ (note the qutoes) will result in the prefix word.

[optional] sec.information()

Provide optional output information.

Returns:

informdict
dictionary containing output information:
statusint

the return status. Possible valuesa are:

  • 0

    successful update occurred.

  • -85

    an update is inappropriate and has been skipped.

sec.finalize()#

Deallocate all internal private storage.