MATLAB Function Reference | ![]() ![]() |
Column approximate minimum degree permutation
Syntax
Description
p = colamd(S)
returns the column approximate minimum degree permutation vector for the sparse matrix S
. For a non-symmetric matrix S
, S(:,p)
tends to have sparser LU factors than S
. The Cholesky factorization of S(:,p)' * S(:,p)
also tends to be sparser than that of S'*S
.
knobs
is a two-element vector. If S is m
-by-n
, then rows with more than (knobs(1))*n
entries are ignored. Columns with more than (knobs(2))*m
entries are removed prior to ordering, and ordered last in the output permutation p
. If the knobs
parameter is not present, then knobs(1)
= knobs(2) = spparms('wh_frac')
.
stats
is an optional vector that provides data about the ordering and the validity of the matrix S
.
Although, MATLAB built-in functions generate valid sparse matrices, a user may construct an invalid sparse matrix using the MATLAB C or Fortran APIs and pass it to colamd
. For this reason, colamd
verifies that S
is valid:
colamd
ignores the duplicate entries, continues processing, and provides information about the duplicate entries in stats(4:7)
.
colamd
sorts each column of its internal copy of the matrix S
(but does not repair the input matrix S
), continues processing, and provides information about the out-of-order entries in stats(4:7)
.
S
is invalid in any other way, colamd
cannot continue. It prints an error message, and returns no output arguments (p
or stats
) .
The ordering is followed by a column elimination tree post-ordering.
See Also
colmmd
, colperm
, spparms
, symamd
, symmmd
, symrcm
References
[1] The authors of the code for colamd
are Stefan I. Larimore and Timothy A.
Davis ([email protected]
), University of Florida. The algorithm was
developed in collaboration with John Gilbert, Xerox PARC, and Esmond Ng,
Oak Ridge National Laboratory. Sparse Matrix Algorithms Research at the
University of Florida: http://www.cise.ufl.edu/research/sparse/
![]() | cmopts | colmmd | ![]() |