46 Int i, j, k, p, pfree, iwlen, pj, p1, p2, pj2, *Iw, *Pe, *Nv, *Head,
47 *Elen, *Degree, *s, *W, *Sp, *Tp, *BucketSet ;
55 iwlen = slen - (7*n+2) ;
63 BucketSet = s ; s += n ;
73 for (j = 0 ; j < n ; j++)
84 ASSERT (iwlen >= pfree + n) ;
87 for (p = 0 ; p < iwlen ; p++) Iw [p] =
EMPTY ;
90 for (k = 0 ; k < n ; k++)
97 for (p = p1 ; p < p2 ; )
101 ASSERT (j >= 0 && j < n) ;
105 ASSERT (Sp [j] < (j == n-1 ? pfree : Pe [j+1])) ;
106 ASSERT (Sp [k] < (k == n-1 ? pfree : Pe [k+1])) ;
124 ASSERT (Ap [j] <= Tp [j] && Tp [j] <= Ap [j+1]) ;
126 for (pj = Tp [j] ; pj < pj2 ; )
129 ASSERT (i >= 0 && i < n) ;
133 ASSERT (Sp [i] < (i == n-1 ? pfree : Pe [i+1])) ;
134 ASSERT (Sp [j] < (j == n-1 ? pfree : Pe [j+1])) ;
157 for (j = 0 ; j < n ; j++)
159 for (pj = Tp [j] ; pj < Ap [j+1] ; pj++)
162 ASSERT (i >= 0 && i < n) ;
164 ASSERT (Sp [i] < (i == n-1 ? pfree : Pe [i+1])) ;
165 ASSERT (Sp [j] < (j == n-1 ? pfree : Pe [j+1])) ;
172 for (j = 0 ; j < n-1 ; j++)
ASSERT (Sp [j] == Pe [j+1]) ;
173 ASSERT (Sp [n-1] == pfree) ;
182 CAMD_2 (n, Pe, Iw, Len, iwlen, pfree,
183 Nv, Pinv, P, Head, Elen, Degree, W, Control, Info, C, BucketSet) ;
#define ASSERT(expression)
GLOBAL void CAMD_1(Int n, const Int Ap[], const Int Ai[], Int P[], Int Pinv[], Int Len[], Int slen, Int S[], double Control[], double Info[], const Int C[])
#define CAMD_DEBUG1(params)
GLOBAL Int CAMD_cvalid(Int n, const Int C[])
GLOBAL Int CAMD_valid(Int n_row, Int n_col, const Int Ap[], const Int Ai[])