35 #if (!defined (COLAMD_VERSION) || (COLAMD_VERSION < COLAMD_VERSION_CODE (2,5))) 36 #error "COLAMD v2.5 or later is required" 58 Int *NewPerm, *Parent, *Post, *Work2n ;
106 if (!ok || alen == 0)
169 for (k = 0 ; k < nrow ; k++)
185 Work2n += 2*((size_t) nrow) + ncol ;
187 Post = Work2n + nrow ;
197 for (k = 0 ; k < nrow ; k++)
199 NewPerm [k] = Perm [Post [k]] ;
201 for (k = 0 ; k < nrow ; k++)
203 Perm [k] = NewPerm [k] ;
#define CHOLMOD_TOO_LARGE
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])
int CHOLMOD() colamd(cholmod_sparse *A, Int *fset, size_t fsize, int postorder, Int *Perm, cholmod_common *Common)
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)
EXTERN int(* amesos_colamd_printf)(const char *,...)
void amesos_colamd_set_defaults(double knobs [COLAMD_KNOBS])
#define RETURN_IF_NULL_COMMON(result)
size_t CHOLMOD() mult_size_t(size_t a, size_t k, int *ok)
int amesos_colamd(int n_row, int n_col, int Alen, int A [], int p [], double knobs [COLAMD_KNOBS], int stats [COLAMD_STATS])
#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)
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)