45 Int i, j, k, p, pfree, iwlen, pj, p1, p2, pj2, *Iw, *Pe, *Nv, *Head,
46 *Elen, *Degree, *s, *W, *Sp, *Tp ;
70 for (j = 0 ; j < n ; j++)
81 ASSERT (iwlen >= pfree + n) ;
84 for (p = 0 ; p < iwlen ; p++) Iw [p] =
EMPTY ;
87 for (k = 0 ; k < n ; k++)
89 AMD_DEBUG1 ((
"Construct row/column k= "ID" of A+A'\n", k)) ;
94 for (p = p1 ; p < p2 ; )
102 ASSERT (Sp [j] < (j == n-1 ? pfree : Pe [j+1])) ;
103 ASSERT (Sp [k] < (k == n-1 ? pfree : Pe [k+1])) ;
121 ASSERT (Ap [j] <= Tp [j] && Tp [j] <= Ap [j+1]) ;
123 for (pj = Tp [j] ; pj < pj2 ; )
126 ASSERT (i >= 0 && i < n) ;
130 ASSERT (Sp [i] < (i == n-1 ? pfree : Pe [i+1])) ;
131 ASSERT (Sp [j] < (j == n-1 ? pfree : Pe [j+1])) ;
154 for (j = 0 ; j < n ; j++)
156 for (pj = Tp [j] ; pj < Ap [j+1] ; pj++)
159 ASSERT (i >= 0 && i < n) ;
161 ASSERT (Sp [i] < (i == n-1 ? pfree : Pe [i+1])) ;
162 ASSERT (Sp [j] < (j == n-1 ? pfree : Pe [j+1])) ;
169 for (j = 0 ; j < n-1 ; j++)
ASSERT (Sp [j] == Pe [j+1]) ;
170 ASSERT (Sp [n-1] == pfree) ;
179 AMD_2 (n, Pe, Iw, Len, iwlen, pfree,
180 Nv, Pinv, P, Head, Elen, Degree, W, Control, Info) ;
#define AMD_DEBUG1(params)
#define ASSERT(expression)
GLOBAL void AMD_1(Int n, const Int Ap[], const Int Ai[], Int P[], Int Pinv[], Int Len[], Int slen, Int S[], double Control[], double Info[])