callable functions#
function sha_initialize(T, INT, data, control, status)
Set default control values and initialize private data
Parameters:
| data | holds private internal data | 
| control | is a structure containing control information (see sha_control_type) | 
| status | is a scalar variable of type INT that gives the exit status from the package. Possible values are (currently): 
 | 
function sha_read_specfile(control, specfile)
Read the content of a specification file, and assign values associated with given keywords to the corresponding control parameters. An in-depth discussion of specification files is available, and a detailed list of keywords with associated default values is provided in $GALAHAD/src/sha/SHA.template. See also Table 2.1 in the Fortran documentation provided in $GALAHAD/doc/sha.pdf for a list of how these keywords relate to the components of the control structure.
Parameters:
| control | is a structure containing control information (see sha_control_type) | 
| specfile | is a one-dimensional array of type Vararg{Cchar} that must give the name of the specification file | 
function sha_analyse_matrix(T, INT, control, data, status, n, ne, row, col, m)
Analsyse the sparsity structure of \(H\) to generate information that will be used when estimating its values.
Parameters:
| control | is a structure whose members provide control paramters for the remaining prcedures (see sha_control_type) | 
| data | holds private internal data | 
| status | is a scalar variable of type INT that gives the exit status from the package. Possible values are: 
 | 
| n | is a scalar variable of type INT, that holds the number of variables | 
| ne | is a scalar variable of type INT, that holds the number of entries in the upper triangular part of \(H\). | 
| row | is a one-dimensional array of size ne and type INT, that holds the row indices of the upper triangular part of \(H\). | 
| col | is a one-dimensional array of size ne and type INT, that holds the column indices of the upper triangular part of \(H\). | 
| m | is a scalar variable of type INT, that gives the minimum number of \((s^{(k)},y^{(k)})\) pairs that will be needed to recover a good Hessian approximation. | 
function sha_recover_matrix(T, INT, data, status, ne, m, ls1, ls2, strans, ly1, ly2, ytrans, val, order)
Estimate the nonzero entries of the Hessian \(H\) by component-wise secant approximation.
Parameters:
| data | holds private internal data | 
| status | is a scalar variable of type INT that gives the exit status from the package. Possible values are: 
 | 
| ne | is a scalar variable of type INT that holds the number of entries in the lower triangular part of the symmetric matrix \(A\). | 
| val | is a one-dimensional array of size ne and type T that holds the values of the entries of the lower triangular part of the symmetric matrix \(A\) in any of the supported storage schemes. | 
| ne | is a scalar variable of type INT, that holds the number of entries in the upper triangular part of \(H\). | 
| m_available | is a scalar variable of type INT, that holds the number of differences provided. Ideally this will be as large as m as reported by sha_analyse_matrix, but better still there should be a further control.extra_differences to allow for unlikely singularities. | 
| ls1 | is a scalar variable of type INT, that holds the leading (first) dimension of the array strans. | 
| ls2 | is a scalar variable of type INT, that holds the trailing (second) dimension of the array strans. | 
| strans | is a two-dimensional array of size [ls1][ls2] and type T, that holds the values of the vectors \(\{s^{(k) T}\}\). Component [\(k\)][\(i\)] should hold \(s_i^{(k)}\). | 
| ly1 | is a scalar variable of type INT, that holds the leading (first) dimension of the array ytrans. | 
| ly2 | is a scalar variable of type INT, that holds the trailing (second) dimension of the array ytrans. | 
| ytrans | is a two-dimensional array of size [ly1][ly2] and type T, that holds the values of the vectors \(\{y^{(k) T}\}\). Component [\(k\)][\(i\)] should hold \(y_i^{(k)}\). | 
| val | is a one-dimensional array of size ne and type T, that holds the values of the entries of the upper triangular part of the symmetric matrix \(H\) in the sparse coordinate scheme. | 
| order | is a one-dimensional array of size m and type INT, that holds the preferred order of access for the pairs \(\{(s^{(k)},y^{(k)})\}\). The \(k\)-th component of order specifies the row number of strans and ytrans that will be used as the \(k\)-th most favoured. order need not be set if the natural order, \(k, k = 1,...,\) m, is desired, and this case order should be C_NULL. | 
function sha_information(T, INT, data, inform, status)
Provides output information
Parameters:
| data | holds private internal data | 
| inform | is a structure containing output information (see sha_inform_type) | 
| status | is a scalar variable of type INT that gives the exit status from the package. Possible values are (currently): 
 | 
function sha_terminate(T, INT, data, control, inform)
Deallocate all internal private storage
Parameters:
| data | holds private internal data | 
| control | is a structure containing control information (see sha_control_type) | 
| inform | is a structure containing output information (see sha_inform_type) | 
