# spparms

## Purpose

Set parameters for sparse matrix ordering algorithms and direct linear equation solvers.

## Synopsis

    spparms('key',value)
    spparms
    values = spparms
    [keys,values] = spparms
    spparms(values)
    value = spparms('key')
    spparms('default')
    spparms('tight')

## Description

Most users of the sparse matrix facilities in MATLAB need not use this function. It is intended for users wanting to see and possibly modify the detailed behavior of the minimum degree ordering algorithms and the built-in direct sparse linear equations solvers.

`spparms('key',value)` sets one or more of the tunable parameters used in the sparse linear equation operators, `\` and `/`, and the minimum degree orderings, `colmmd` and `symmmd`.

The meanings of the `key` parameters are

    ---------------------------------------------------------------------------
    'spumoni'             Sparse Monitor flag.
                          0 produces no diagnostic output, the default.
                          1 produces information about choice of algorithm
                          based on matrix structure, and about storage alloca
                          tion.
                          2 also produces very detailed information about the
                          minimum degree algorithms.
    'thr_rel', 'thr_abs'  Minimum degree threshold is
                          thr_rel*mindegree+thr_abs
    'exact_d'             Nonzero to use exact degrees in minimum degree.
                          Zero to use approximate degrees.
    'supernd'             If positive, minimum degree amalgamates the super
                          nodes every supernd stages.
    'rreduce'             If positive, minimum degree does row reduction every
                          rreduce stages.
    'wh_frac'             Rows with density > wh_frac are ignored in colmmd.
    'autommd'             Nonzero to use minimum degree orderings with \ and
                          /.
    'aug_rel',            Residual scaling parameter for augmented equations
    'aug_abs'             is
                          aug_rel*max(max(abs(A))) + aug_abs
                          For example, aug_rel = 0, aug_abs = 1 puts an un
                          scaled identity matrix in the (1,1) block of the aug
                          mented matrix.
    ---------------------------------------------------------------------------

`spparms`, by itself, prints a description of the current settings.

`values = spparms` returns a vector whose components give the current settings.

`[keys,values] = spparms` returns that vector, and also returns a character matrix whose rows are the keywords for the parameters.

`spparms(values)`, with no output argument, sets all the parameters to the values specified by the argument vector.

`value = spparms('key')` returns the current setting of one parameter.

`spparms('default')` sets all the parameters to their default settings.

`spparms('tight')` sets the minimum degree ordering parameters to their tight settings, which can lead to orderings with less fill-in, but which make the ordering functions themselves use more execution time.

The key parameters with the `default` and `tight` values are

    -------------------------------------------------------------------
                   Keyword             Default              Tight
    -------------------------------------------------------------------
    values(1)      'spumoni'        0.0
    values(2)      'thr_rel'        1.1               1.0
    values(3)      'thr_abs'        1.0               0.0
    values(4)      'exact_d'        0.0               1.0
    values(5)      'supernd'        3.0               1.0
    values(6)      'rreduce'        3.0               1.0
    values(7)      'wh_frac'        0.5               0.5
    values(8)      'autommd'        1.0
    values(9)      'aug_rel'        0.001
    values(10)     'aug_abs'        0.0
    -------------------------------------------------------------------

## See Also

    \, colmmd, spaugment, symmmd

## References

[1] John R. Gilbert, Cleve Moler and Robert Schreiber, "Sparse Matrices in MATLAB: Design and Implementation," SIAM Journal on Matrix Analysis and Applications 13, pp. 333-356, 1992.

(c) Copyright 1994 by The MathWorks, Inc.