Function colamd::default_knobs
source · [−]Expand description
Returns the default values of the user-controllable parameters for
colamd
and symamd
.
Colamd: rows with more than max(16, knobs[0] * sqrt(n_col))
entries are removed prior to ordering. Columns with more than
max(16, knobs[1] * sqrt(min(n_row, n_col)))
entries are removed
prior to ordering, and placed last in the output column ordering.
Symamd: Rows and columns with more than max(16, knobs[0] * sqrt(n))
entries are removed prior to ordering, and placed last in the
output ordering.
knobs[0] dense row control
knobs[1] dense column control
knobs[2] if nonzero, do aggresive absorption
knobs[3..19] unused, but future versions might use this
knobs [0] and knobs [1] control dense row and col detection:
Colamd: rows with more than max(16, knobs[DENSE_ROW] * sqrt(n_col))
entries are removed prior to ordering. Columns with more than
max(16, knobs[DENSE_COL] * sqrt(min(n_row,n_col)))
entries are removed
prior to ordering, and placed last in the output column ordering.
Symamd: uses only knobs[DENSE_ROW]
, which is knobs[0]
.
Rows and columns with more than max(16, knobs[DENSE_ROW] * sqrt(n))
entries are removed prior to ordering, and placed last in the
output ordering.
DENSE_ROW
and DENSE_COL
are defined as 0 and 1, respectively. Default
values of these two knobs are both 10. Currently, only knobs[0]
and
knobs[1]
are used, but future versions may use more knobs. If so, they
will be properly set to their defaults by the future version of
default_knobs
, so that the code that calls colamd
will not need to
change, assuming that you either use default_knobs
, or pass None
as
the knobs array to colamd or symamd.
knobs[2]: aggressive absorption
knobs[AGGRESSIVE] controls whether or not to do
aggressive absorption during the ordering. Default is TRUE.