sha_control_type structure#

    struct sha_control_type
      f_indexing::Bool
      error::Int32
      out::Int32
      print_level::Int32
      approximation_algorithm::Int32
      dense_linear_solver::Int32
      extra_differences::Int32
      sparse_row::Int32
      recursion_max::Int32
      recursion_entries_required::Int32
      space_critical::Bool
      deallocate_error_fatal::Bool
      prefix::NTuple{31,Cchar}

detailed documentation#

control derived type as a Julia structure

components#

Bool f_indexing

use C or Fortran sparse matrix indexing

Int32 error

error and warning diagnostics occur on stream error

Int32 out

general output occurs on stream out

Int32 print_level

the level of output required. <= 0 gives no output, = 1 gives a one-line summary for every iteration, = 2 gives a summary of the inner iteration for each iteration, >= 3 gives increasingly verbose (debugging) output

Int32 approximation_algorithm

which approximation algorithm should be used?

  • 1 : unsymmetric, parallel (Alg 2.1 in paper)

  • 2 : symmetric (Alg 2.2 in pape)

  • 3 : composite, parallel (Alg 2.3 in paper)

  • 4 : composite, block parallel (Alg 2.4 in paper)

Int32 dense_linear_solver

which dense linear equation solver should be used?

  • 1 : Gaussian elimination

  • 2 : QR factorization

  • 3 : singular-value decomposition

  • 4 : singular-value decomposition with divide-and-conquer

Int32 extra_differences

if available use an addition extra_differences differences

Int32 sparse_row

a row is considered sparse if it has no more than .sparse_row entries

    ipc_ recursion_max

limit on the maximum number of levels of recursion (Alg. 2.4)

    ipc_ recursion_entries_required

the minimum number of entries in a reduced row that are required if a further level of recuresion is allowed (Alg. 2.4)

Bool space_critical

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

Bool deallocate_error_fatal

exit if any deallocation fails

NTuple{31,Cchar} prefix

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’