| DEFUN_DLD (dmperm, args, nargout,"-*- texinfo -*-\n\
@deftypefn {Loadable Function} {@var{p} =} dmperm (@var{S})\n\
@deftypefnx {Loadable Function} {[@var{p}, @var{q}, @var{r}, @var{S}] =} dmperm (@var{S})\n\
\n\
@cindex Dulmage-Mendelsohn decomposition\n\
Perform a Dulmage-Mendelsohn permutation of the sparse matrix @var{S}.\n\
With a single output argument @code{dmperm} performs the row permutations\n\
@var{p} such that @code{@var{S}(@var{p},:)} has no zero elements on the\n\
diagonal.\n\
\n\
Called with two or more output arguments, returns the row and column\n\
permutations, such that @code{@var{S}(@var{p}, @var{q})} is in block\n\
triangular form. The values of @var{r} and @var{S} define the boundaries\n\
of the blocks. If @var{S} is square then @code{@var{r} == @var{S}}.\n\
\n\
The method used is described in: A. Pothen & C.-J. Fan. @cite{Computing the\n\
Block Triangular Form of a Sparse Matrix}. ACM Trans. Math. Software,\n\
16(4):303-324, 1990.\n\
@seealso{colamd, ccolamd}\n\
@end deftypefn") |