*/
public static Scsd cs_dmperm(Scs A, int seed) {
int m, n, i, j, k, cnz, nc, jmatch[], imatch[], wi[], wj[], pinv[], Cp[], Ci[], ps[], rs[], nb1, nb2, p[], q[], cc[], rr[], r[], s[];
boolean ok;
Scs C;
Scsd S, scc;
/* --- Maximum matching ------------------------------------------------- */
if (!Scs_util.CS_CSC(A))
return (null); /* check inputs */
m = A.m;
n = A.n;