38 #if (!defined (COLAMD_VERSION) || (COLAMD_VERSION < COLAMD_VERSION_CODE (2,5)))
39 #error "COLAMD v2.5 or later is required"
61 Int *NewPerm, *Parent, *Post, *Work2n ;
109 if (!ok || alen == 0)
172 for (k = 0 ; k < nrow ; k++)
187 Work2n = Common->Iwork ;
188 Work2n += 2*((size_t) nrow) + ncol ;
190 Post = Work2n + nrow ;
199 NewPerm = Common->Iwork ;
200 for (k = 0 ; k < nrow ; k++)
202 NewPerm [k] = Perm [Post [k]] ;
204 for (k = 0 ; k < nrow ; k++)
206 Perm [k] = NewPerm [k] ;
#define CHOLMOD_TOO_LARGE
int CHOLMOD() transpose_unsym(cholmod_sparse *A, int values, Int *Perm, Int *fset, size_t fsize, cholmod_sparse *F, cholmod_common *Common)
size_t CHOLMOD() add_size_t(size_t a, size_t b, int *ok)
UF_long amesos_colamd_l(UF_long n_row, UF_long n_col, UF_long Alen, UF_long A[], UF_long p[], double knobs[COLAMD_KNOBS], UF_long stats[COLAMD_STATS])
#define RETURN_IF_NULL_COMMON(result)
int CHOLMOD() colamd(cholmod_sparse *A, Int *fset, size_t fsize, int postorder, Int *Perm, cholmod_common *Common)
size_t CHOLMOD() mult_size_t(size_t a, size_t k, int *ok)
#define COLAMD_OK_BUT_JUMBLED
#define COLAMD_AGGRESSIVE
int CHOLMOD() free_sparse(cholmod_sparse **AHandle, cholmod_common *Common)
size_t amesos_colamd_l_recommended(UF_long nnz, UF_long n_row, UF_long n_col)
EXTERN int(* amesos_colamd_printf)(const char *,...)
int amesos_colamd(int n_row, int n_col, int Alen, int A[], int p[], double knobs[COLAMD_KNOBS], int stats[COLAMD_STATS])
void amesos_colamd_l_set_defaults(double knobs[COLAMD_KNOBS])
size_t amesos_colamd_recommended(int nnz, int n_row, int n_col)
cholmod_sparse *CHOLMOD() allocate_sparse(size_t nrow, size_t ncol, size_t nzmax, int sorted, int packed, int stype, int xtype, cholmod_common *Common)
int CHOLMOD() allocate_work(size_t nrow, size_t iworksize, size_t xworksize, cholmod_common *Common)
#define CHOLMOD_MAXMETHODS
int CHOLMOD() analyze_ordering(cholmod_sparse *A, int ordering, Int *Perm, Int *fset, size_t fsize, Int *Parent, Int *Post, Int *ColCount, Int *First, Int *Level, cholmod_common *Common)
#define RETURN_IF_NULL(A, result)
#define ERROR(status, msg)
#define RETURN_IF_XTYPE_INVALID(A, xtype1, xtype2, result)
void amesos_colamd_set_defaults(double knobs[COLAMD_KNOBS])