43 #if (!defined (AMD_VERSION) || (AMD_VERSION < AMD_VERSION_CODE (2,0)))
44 #error "AMD v2.0 or later is required"
64 Int *Cp, *Len, *Nv, *Head, *Elen, *Degree, *Wi, *Iwork, *Next ;
114 Iwork = Common->Iwork ;
117 Len = Iwork + 2*((size_t) n) ;
118 Nv = Iwork + 3*((size_t) n) ;
119 Next = Iwork + 4*((size_t) n) ;
120 Elen = Iwork + 5*((size_t) n) ;
122 Head = Common->Head ;
131 C =
CHOLMOD(
aat) (A, fset, fsize, -2, Common) ;
148 for (j = 0 ; j < n ; j++)
150 Len [j] = Cp [j+1] - Cp [j] ;
156 Common->anz = cnz / 2 + n ;
171 Control [
AMD_DENSE] = Common->method [Common->current].prune_dense ;
172 Control [
AMD_AGGRESSIVE] = Common->method [Common->current].aggressive ;
187 amesos_amd_l2 (n, C->
p, C->
i, Len, C->
nzmax, cnz, Nv, Next, Perm, Head, Elen,
188 Degree, Wi, Control, Info) ;
190 amesos_amd_2 (n, C->
p, C->
i, Len, C->
nzmax, cnz, Nv, Next, Perm, Head, Elen,
191 Degree, Wi, Control, Info) ;
200 Common->lnz = n + Info [
AMD_LNZ] ;
209 for (j = 0 ; j <= n ; j++)
#define CHOLMOD_TOO_LARGE
#define AMD_NMULTSUBS_LDL
EXTERN void *(* amesos_amd_realloc)(void *, size_t)
#define RETURN_IF_NULL_COMMON(result)
size_t CHOLMOD() mult_size_t(size_t a, size_t k, int *ok)
EXTERN void(* amesos_amd_free)(void *)
cholmod_sparse *CHOLMOD() aat(cholmod_sparse *A, Int *fset, size_t fsize, int mode, cholmod_common *Common)
int CHOLMOD() amd(cholmod_sparse *A, Int *fset, size_t fsize, Int *Perm, cholmod_common *Common)
int CHOLMOD() free_sparse(cholmod_sparse **AHandle, cholmod_common *Common)
#define ASSERT(expression)
EXTERN void *(* amesos_amd_calloc)(size_t, size_t)
EXTERN int(* amesos_amd_printf)(const char *,...)
int CHOLMOD() dump_perm(Int *Perm, size_t len, size_t n, char *name, cholmod_common *Common)
int CHOLMOD() allocate_work(size_t nrow, size_t iworksize, size_t xworksize, cholmod_common *Common)
#define CHOLMOD_MAXMETHODS
#define RETURN_IF_NULL(A, result)
void amesos_amd_2(int n, int Pe[], int Iw[], int Len[], int iwlen, int pfree, int Nv[], int Next[], int Last[], int Head[], int Elen[], int Degree[], int W[], double Control[], double Info[])
void amesos_amd_l2(UF_long n, UF_long Pe[], UF_long Iw[], UF_long Len[], UF_long iwlen, UF_long pfree, UF_long Nv[], UF_long Next[], UF_long Last[], UF_long Head[], UF_long Elen[], UF_long Degree[], UF_long W[], double Control[], double Info[])
#define ERROR(status, msg)
#define RETURN_IF_XTYPE_INVALID(A, xtype1, xtype2, result)
EXTERN void *(* amesos_amd_malloc)(size_t)
cholmod_sparse *CHOLMOD() copy(cholmod_sparse *A, int stype, int mode, cholmod_common *Common)