226 #ifndef AMESOS_CHOLMOD_CORE_H
227 #define AMESOS_CHOLMOD_CORE_H
247 #define CHOLMOD_DATE "May 31, 2007"
248 #define CHOLMOD_VER_CODE(main,sub) ((main) * 1000 + (sub))
249 #define CHOLMOD_MAIN_VERSION 1
250 #define CHOLMOD_SUB_VERSION 5
251 #define CHOLMOD_SUBSUB_VERSION 0
252 #define CHOLMOD_VERSION \
253 CHOLMOD_VER_CODE(CHOLMOD_MAIN_VERSION,CHOLMOD_SUB_VERSION)
277 #define CHOLMOD_COMMON 0
278 #define CHOLMOD_SPARSE 1
279 #define CHOLMOD_FACTOR 2
280 #define CHOLMOD_DENSE 3
281 #define CHOLMOD_TRIPLET 4
288 #define CHOLMOD_INT 0
289 #define CHOLMOD_INTLONG 1
290 #define CHOLMOD_LONG 2
297 #define CHOLMOD_DOUBLE 0
298 #define CHOLMOD_SINGLE 1
308 #define CHOLMOD_PATTERN 0
309 #define CHOLMOD_REAL 1
310 #define CHOLMOD_COMPLEX 2
311 #define CHOLMOD_ZOMPLEX 3
359 #define CHOLMOD_MAXMETHODS 9
365 #define CHOLMOD_NOT_INSTALLED (-1)
366 #define CHOLMOD_OUT_OF_MEMORY (-2)
367 #define CHOLMOD_TOO_LARGE (-3)
368 #define CHOLMOD_INVALID (-4)
369 #define CHOLMOD_NOT_POSDEF (1)
370 #define CHOLMOD_DSMALL (2)
374 #define CHOLMOD_NATURAL 0
375 #define CHOLMOD_GIVEN 1
376 #define CHOLMOD_AMD 2
377 #define CHOLMOD_METIS 3
378 #define CHOLMOD_NESDIS 4
382 #define CHOLMOD_COLAMD 5
386 #define CHOLMOD_POSTORDERED 6
389 #define CHOLMOD_SIMPLICIAL 0
390 #define CHOLMOD_AUTO 1
391 #define CHOLMOD_SUPERNODAL 2
729 void *(*malloc_memory) (size_t) ;
730 void *(*realloc_memory) (
void *, size_t) ;
732 void *(*calloc_memory) (size_t, size_t) ;
739 double *cx,
double *cz) ;
1012 #define CHOLMOD_CLEAR_FLAG(Common) \
1015 if (Common->mark <= 0) \
1017 Common->mark = EMPTY ; \
1018 CHOLMOD (clear_flag) (Common) ; \
1079 double ar,
double ai,
1080 double br,
double bi,
1082 double *cr,
double *ci
2199 #define CHOLMOD_MM_RECTANGULAR 1
2200 #define CHOLMOD_MM_UNSYMMETRIC 2
2201 #define CHOLMOD_MM_SYMMETRIC 3
2202 #define CHOLMOD_MM_HERMITIAN 4
2203 #define CHOLMOD_MM_SKEW_SYMMETRIC 5
2204 #define CHOLMOD_MM_SYMMETRIC_POSDIAG 6
2205 #define CHOLMOD_MM_HERMITIAN_POSDIAG 7
2241 #ifdef CHOLMOD_WINDOWS
2248 #define CHOLMOD_IS_NAN(x) (((x) != (x)) || (((x) < (x))))
2249 #define CHOLMOD_IS_ZERO(x) (((x) == 0.) && !CHOLMOD_IS_NAN(x))
2250 #define CHOLMOD_IS_NONZERO(x) (((x) != 0.) || CHOLMOD_IS_NAN(x))
2251 #define CHOLMOD_IS_LT_ZERO(x) (((x) < 0.) && !CHOLMOD_IS_NAN(x))
2252 #define CHOLMOD_IS_GT_ZERO(x) (((x) > 0.) && !CHOLMOD_IS_NAN(x))
2253 #define CHOLMOD_IS_LE_ZERO(x) (((x) <= 0.) && !CHOLMOD_IS_NAN(x))
2259 #define CHOLMOD_IS_NAN(x) ((x) != (x))
2260 #define CHOLMOD_IS_ZERO(x) ((x) == 0.)
2261 #define CHOLMOD_IS_NONZERO(x) ((x) != 0.)
2262 #define CHOLMOD_IS_LT_ZERO(x) ((x) < 0.)
2263 #define CHOLMOD_IS_GT_ZERO(x) ((x) > 0.)
2264 #define CHOLMOD_IS_LE_ZERO(x) ((x) <= 0.)
int amesos_cholmod_l_reallocate_column(size_t, size_t, cholmod_factor *, cholmod_common *)
int amesos_cholmod_l_factor_xtype(int, cholmod_factor *, cholmod_common *)
void * amesos_cholmod_l_calloc(size_t, size_t, cholmod_common *)
void * amesos_cholmod_l_free(size_t, size_t, void *, cholmod_common *)
int amesos_cholmod_error(int status, char *file, int line, char *message, cholmod_common *Common)
cholmod_dense * amesos_cholmod_ones(size_t nrow, size_t ncol, int xtype, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_l_triplet_to_sparse(cholmod_triplet *, size_t, cholmod_common *)
cholmod_dense * amesos_cholmod_copy_dense(cholmod_dense *X, cholmod_common *Common)
int amesos_cholmod_realloc_multiple(size_t nnew, int nint, int xtype, void **I, void **J, void **X, void **Z, size_t *n, cholmod_common *Common)
cholmod_dense * amesos_cholmod_l_eye(size_t, size_t, int, cholmod_common *)
int amesos_cholmod_defaults(cholmod_common *Common)
cholmod_sparse * amesos_cholmod_speye(size_t nrow, size_t ncol, int xtype, cholmod_common *Common)
struct cholmod_triplet_struct cholmod_triplet
int amesos_cholmod_l_triplet_xtype(int, cholmod_triplet *, cholmod_common *)
int(* complex_divide)(double ax, double az, double bx, double bz, double *cx, double *cz)
int(* print_function)(const char *,...)
int amesos_cholmod_free_triplet(cholmod_triplet **T, cholmod_common *Common)
int amesos_cholmod_l_transpose_sym(cholmod_sparse *, int, UF_long *, cholmod_sparse *, cholmod_common *)
cholmod_sparse * amesos_cholmod_triplet_to_sparse(cholmod_triplet *T, size_t nzmax, cholmod_common *Common)
double amesos_cholmod_l_dbound(double, cholmod_common *)
struct cholmod_dense_struct cholmod_dense
int amesos_cholmod_l_dense_xtype(int, cholmod_dense *, cholmod_common *)
int no_workspace_reallocate
int amesos_cholmod_factor_xtype(int to_xtype, cholmod_factor *L, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_l_add(cholmod_sparse *, cholmod_sparse *, double *, double *, int, int, cholmod_common *)
int amesos_cholmod_l_error(int, char *, int, char *, cholmod_common *)
int amesos_cholmod_reallocate_sparse(size_t nznew, cholmod_sparse *A, cholmod_common *Common)
UF_long amesos_cholmod_clear_flag(cholmod_common *Common)
struct cholmod_common_struct::cholmod_method_struct method[CHOLMOD_MAXMETHODS+1]
int amesos_cholmod_l_sort(cholmod_sparse *, cholmod_common *)
struct cholmod_factor_struct cholmod_factor
cholmod_sparse * amesos_cholmod_band(cholmod_sparse *A, UF_long k1, UF_long k2, int mode, cholmod_common *Common)
void * amesos_cholmod_malloc(size_t n, size_t size, cholmod_common *Common)
struct cholmod_common_struct cholmod_common
cholmod_dense * amesos_cholmod_eye(size_t nrow, size_t ncol, int xtype, cholmod_common *Common)
cholmod_dense * amesos_cholmod_l_zeros(size_t, size_t, int, cholmod_common *)
void * amesos_cholmod_calloc(size_t n, size_t size, cholmod_common *Common)
int amesos_cholmod_l_free_triplet(cholmod_triplet **, cholmod_common *)
int amesos_cholmod_l_allocate_work(size_t, size_t, size_t, cholmod_common *)
cholmod_factor * amesos_cholmod_l_allocate_factor(size_t, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_transpose(cholmod_sparse *, int, cholmod_common *)
int amesos_cholmod_l_transpose_unsym(cholmod_sparse *, int, UF_long *, UF_long *, size_t, cholmod_sparse *, cholmod_common *)
int amesos_cholmod_l_copy_dense2(cholmod_dense *, cholmod_dense *, cholmod_common *)
int amesos_cholmod_free_dense(cholmod_dense **X, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_l_allocate_sparse(size_t, size_t, size_t, int, int, int, int, cholmod_common *)
void(* free_memory)(void *)
UF_long amesos_cholmod_nnz(cholmod_sparse *A, cholmod_common *Common)
double amesos_cholmod_hypot(double x, double y)
cholmod_sparse * amesos_cholmod_l_spzeros(size_t, size_t, size_t, int, cholmod_common *)
cholmod_triplet * amesos_cholmod_l_sparse_to_triplet(cholmod_sparse *, cholmod_common *)
cholmod_sparse * amesos_cholmod_add(cholmod_sparse *A, cholmod_sparse *B, double alpha[2], double beta[2], int values, int sorted, cholmod_common *Common)
int amesos_cholmod_l_free_work(cholmod_common *)
cholmod_sparse * amesos_cholmod_allocate_sparse(size_t nrow, size_t ncol, size_t nzmax, int sorted, int packed, int stype, int xtype, cholmod_common *Common)
int amesos_cholmod_l_change_factor(int, int, int, int, int, cholmod_factor *, cholmod_common *)
int amesos_cholmod_l_divcomplex(double, double, double, double, double *, double *)
int amesos_cholmod_transpose_unsym(cholmod_sparse *A, int values, int *Perm, int *fset, size_t fsize, cholmod_sparse *F, cholmod_common *Common)
cholmod_dense * amesos_cholmod_l_ones(size_t, size_t, int, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_ptranspose(cholmod_sparse *, int, UF_long *, UF_long *, size_t, cholmod_common *)
cholmod_dense * amesos_cholmod_l_copy_dense(cholmod_dense *, cholmod_common *)
int amesos_cholmod_l_reallocate_triplet(size_t, cholmod_triplet *, cholmod_common *)
int amesos_cholmod_band_inplace(UF_long k1, UF_long k2, int mode, cholmod_sparse *A, cholmod_common *Common)
int amesos_cholmod_l_pack_factor(cholmod_factor *, cholmod_common *)
cholmod_triplet * amesos_cholmod_l_allocate_triplet(size_t, size_t, size_t, int, int, cholmod_common *)
void(* error_handler)(int status, char *file, int line, char *message)
cholmod_dense * amesos_cholmod_sparse_to_dense(cholmod_sparse *A, cholmod_common *Common)
void * amesos_cholmod_l_realloc(size_t, size_t, void *, size_t *, cholmod_common *)
int amesos_cholmod_l_finish(cholmod_common *)
int amesos_cholmod_pack_factor(cholmod_factor *L, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_l_factor_to_sparse(cholmod_factor *, cholmod_common *)
double(* hypotenuse)(double x, double y)
int amesos_cholmod_free_factor(cholmod_factor **L, cholmod_common *Common)
int amesos_cholmod_allocate_work(size_t nrow, size_t iworksize, size_t xworksize, cholmod_common *Common)
int amesos_cholmod_sparse_xtype(int to_xtype, cholmod_sparse *A, cholmod_common *Common)
int amesos_cholmod_dense_xtype(int to_xtype, cholmod_dense *X, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_dense_to_sparse(cholmod_dense *X, int values, cholmod_common *Common)
int amesos_cholmod_reallocate_column(size_t j, size_t need, cholmod_factor *L, cholmod_common *Common)
int amesos_cholmod_change_factor(int to_xtype, int to_ll, int to_super, int to_packed, int to_monotonic, cholmod_factor *L, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_aat(cholmod_sparse *A, int *fset, size_t fsize, int mode, cholmod_common *Common)
int amesos_cholmod_reallocate_triplet(size_t nznew, cholmod_triplet *T, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_l_aat(cholmod_sparse *, UF_long *, size_t, int, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_copy_sparse(cholmod_sparse *, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_band(cholmod_sparse *, UF_long, UF_long, int, cholmod_common *)
cholmod_triplet * amesos_cholmod_l_copy_triplet(cholmod_triplet *, cholmod_common *)
int amesos_cholmod_l_realloc_multiple(size_t, int, int, void **, void **, void **, void **, size_t *, cholmod_common *)
double amesos_cholmod_l_hypot(double, double)
int quick_return_if_not_posdef
cholmod_dense * amesos_cholmod_allocate_dense(size_t nrow, size_t ncol, size_t d, int xtype, cholmod_common *Common)
cholmod_triplet * amesos_cholmod_allocate_triplet(size_t nrow, size_t ncol, size_t nzmax, int stype, int xtype, cholmod_common *Common)
int amesos_cholmod_free_work(cholmod_common *Common)
cholmod_dense * amesos_cholmod_l_allocate_dense(size_t, size_t, size_t, int, cholmod_common *)
double amesos_cholmod_dbound(double dj, cholmod_common *Common)
size_t amesos_cholmod_l_maxrank(size_t, cholmod_common *)
int amesos_cholmod_l_sparse_xtype(int, cholmod_sparse *, cholmod_common *)
int amesos_cholmod_reallocate_factor(size_t nznew, cholmod_factor *L, cholmod_common *Common)
int amesos_cholmod_l_reallocate_factor(size_t, cholmod_factor *, cholmod_common *)
cholmod_factor * amesos_cholmod_copy_factor(cholmod_factor *L, cholmod_common *Common)
#define CHOLMOD_MAXMETHODS
cholmod_dense * amesos_cholmod_zeros(size_t nrow, size_t ncol, int xtype, cholmod_common *Common)
void * amesos_cholmod_realloc(size_t nnew, size_t size, void *p, size_t *n, cholmod_common *Common)
UF_long amesos_cholmod_l_clear_flag(cholmod_common *)
cholmod_sparse * amesos_cholmod_copy_sparse(cholmod_sparse *A, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_transpose(cholmod_sparse *A, int values, cholmod_common *Common)
cholmod_dense * amesos_cholmod_l_sparse_to_dense(cholmod_sparse *, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_copy(cholmod_sparse *, int, int, cholmod_common *)
int amesos_cholmod_l_free_factor(cholmod_factor **, cholmod_common *)
int amesos_cholmod_copy_dense2(cholmod_dense *X, cholmod_dense *Y, cholmod_common *Common)
int amesos_cholmod_l_band_inplace(UF_long, UF_long, int, cholmod_sparse *, cholmod_common *)
int amesos_cholmod_start(cholmod_common *Common)
int amesos_cholmod_l_reallocate_sparse(size_t, cholmod_sparse *, cholmod_common *)
struct cholmod_sparse_struct cholmod_sparse
cholmod_factor * amesos_cholmod_allocate_factor(size_t n, cholmod_common *Common)
cholmod_sparse * amesos_cholmod_factor_to_sparse(cholmod_factor *L, cholmod_common *Common)
int amesos_cholmod_divcomplex(double ar, double ai, double br, double bi, double *cr, double *ci)
cholmod_sparse * amesos_cholmod_spzeros(size_t nrow, size_t ncol, size_t nzmax, int xtype, cholmod_common *Common)
int amesos_cholmod_l_start(cholmod_common *)
void * amesos_cholmod_l_malloc(size_t, size_t, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_speye(size_t, size_t, int, cholmod_common *)
UF_long amesos_cholmod_l_nnz(cholmod_sparse *, cholmod_common *)
cholmod_sparse * amesos_cholmod_ptranspose(cholmod_sparse *A, int values, int *Perm, int *fset, size_t fsize, cholmod_common *Common)
void * amesos_cholmod_free(size_t n, size_t size, void *p, cholmod_common *Common)
int amesos_cholmod_l_free_sparse(cholmod_sparse **, cholmod_common *)
int amesos_cholmod_transpose_sym(cholmod_sparse *A, int values, int *Perm, cholmod_sparse *F, cholmod_common *Common)
int amesos_cholmod_finish(cholmod_common *Common)
size_t amesos_cholmod_maxrank(size_t n, cholmod_common *Common)
int amesos_cholmod_triplet_xtype(int to_xtype, cholmod_triplet *T, cholmod_common *Common)
cholmod_triplet * amesos_cholmod_sparse_to_triplet(cholmod_sparse *A, cholmod_common *Common)
cholmod_factor * amesos_cholmod_l_copy_factor(cholmod_factor *, cholmod_common *)
cholmod_sparse * amesos_cholmod_l_dense_to_sparse(cholmod_dense *, int, cholmod_common *)
int amesos_cholmod_free_sparse(cholmod_sparse **A, cholmod_common *Common)
int amesos_cholmod_sort(cholmod_sparse *A, cholmod_common *Common)
int amesos_cholmod_l_free_dense(cholmod_dense **, cholmod_common *)
int amesos_cholmod_l_defaults(cholmod_common *)
cholmod_sparse * amesos_cholmod_copy(cholmod_sparse *A, int stype, int mode, cholmod_common *Common)
cholmod_triplet * amesos_cholmod_copy_triplet(cholmod_triplet *T, cholmod_common *Common)