pub fn default_knobs() -> [f64; 20]
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.