33 #ifndef AMESOS_CHOLMOD_INTERNAL_H 
   34 #define AMESOS_CHOLMOD_INTERNAL_H 
   60 #if !defined(NPRINT) || !defined(NDEBUG) 
   79 #define BOOLEAN(x) ((x) ? TRUE : FALSE) 
   83 #define NULL ((void *) 0) 
   91 #define FLIP(i) (-(i)-2) 
   92 #define UNFLIP(i) (((i) < EMPTY) ? FLIP (i) : (i)) 
   95 #define MAX(a,b) (((a) > (b)) ? (a) : (b)) 
   96 #define MAX3(a,b,c) (((a) > (b)) ? (MAX (a,c)) : (MAX (b,c))) 
   97 #define MAX4(a,b,c,d) (((a) > (b)) ? (MAX3 (a,c,d)) : (MAX3 (b,c,d))) 
   98 #define MIN(a,b) (((a) < (b)) ? (a) : (b)) 
   99 #define IMPLIES(p,q) (!(p) || (q)) 
  103 #define SIGN(x) (((x) < 0) ? (-1) : (((x) > 0) ? 1 : 0)) 
  106 #define ROUNDUP(x,s) ((s) * (((x) + ((s) - 1)) / (s))) 
  108 #define ERROR(status,msg) \ 
  109     CHOLMOD(error) (status, __FILE__, __LINE__, msg, Common) 
  113 #define RETURN_IF_NULL(A,result) \ 
  117   if (Common->status != CHOLMOD_OUT_OF_MEMORY) \ 
  119       ERROR (CHOLMOD_INVALID, "argument missing") ; \ 
  126 #define RETURN_IF_NULL_COMMON(result) \ 
  128     if (Common == NULL) \ 
  132     if (Common->itype != ITYPE || Common->dtype != DTYPE) \ 
  134   Common->status = CHOLMOD_INVALID ; \ 
  139 #define IS_NAN(x) CHOLMOD_IS_NAN(x) 
  140 #define IS_ZERO(x)  CHOLMOD_IS_ZERO(x) 
  141 #define IS_NONZERO(x) CHOLMOD_IS_NONZERO(x) 
  142 #define IS_LT_ZERO(x) CHOLMOD_IS_LT_ZERO(x) 
  143 #define IS_GT_ZERO(x) CHOLMOD_IS_GT_ZERO(x) 
  144 #define IS_LE_ZERO(x) CHOLMOD_IS_LE_ZERO(x) 
  151 #define HUGE_DOUBLE 1e308 
  206 #define Size_max ((size_t) (-1)) 
  221 #define Int_max UF_long_max 
  222 #define CHOLMOD(name) amesos_cholmod_l_ ## name 
  225 #define ITYPE CHOLMOD_LONG 
  226 #define DTYPE CHOLMOD_DOUBLE 
  227 #define ID UF_long_id 
  234 #error "mixed int/UF_long not yet supported" 
  241 #error "single-precision not yet supported" 
  247 #elif defined (SLONG) 
  248 #error "single-precision not yet supported" 
  255 #error "single-precision not yet supported" 
  271 #define Int_max INT_MAX 
  272 #define CHOLMOD(name) amesos_cholmod_ ## name 
  273 #define ITYPE CHOLMOD_INT 
  274 #define DTYPE CHOLMOD_DOUBLE 
  308 #define EXTERN extern 
  312 EXTERN int amesos_cholmod_dump ;
 
  313 EXTERN int amesos_cholmod_dump_malloc ;
 
  318 int  amesos_cholmod_dump_subset (
int *, 
size_t, 
size_t, 
char *, 
cholmod_common *) ;
 
  319 int  amesos_cholmod_dump_perm (
int *, 
size_t, 
size_t, 
char *, 
cholmod_common *) ;
 
  320 int  amesos_cholmod_dump_parent (
int *, 
size_t, 
char *, 
cholmod_common *) ;
 
  325 void amesos_cholmod_dump_super (
UF_long, 
int *, 
int *, 
int *, 
int *, 
double *, 
int,
 
  327 int  amesos_cholmod_dump_partition (
UF_long, 
int *, 
int *, 
int *, 
int *, 
UF_long,
 
  332 EXTERN int amesos_cholmod_l_dump ;
 
  333 EXTERN int amesos_cholmod_l_dump_malloc ;
 
  338 int  amesos_cholmod_l_dump_subset (
UF_long *, 
size_t, 
size_t, 
char *,
 
  352 #define DEBUG_INIT(s)  { CHOLMOD(dump_init)(s, Common) ; } 
  353 #define PK_DEBUG_INIT(s,Common)  { CHOLMOD(dump_init)(s, Common) ; } 
  355 #define ASSERT(expression) (assert (expression)) 
  357 #define PRK(k,params) \ 
  359     if (CHOLMOD(dump) >= (k) && Common->print_function != NULL) \ 
  361   (Common->print_function) params ; \ 
  365 #define PRINT0(params) PRK (0, params) 
  366 #define PRINT1(params) PRK (1, params) 
  367 #define PRINT2(params) PRK (2, params) 
  368 #define PRINT3(params) PRK (3, params) 
  369 #define PRINTM(params) PRK (CHOLMOD(dump_malloc), params) 
  371 #define DEBUG(statement) statement 
  376 #define PRK(k,params) 
  377 #define DEBUG_INIT(s) 
  378 #define PK_DEBUG_INIT(s,Common) 
  379 #define PRINT0(params) 
  380 #define PRINT1(params) 
  381 #define PRINT2(params) 
  382 #define PRINT3(params) 
  383 #define PRINTM(params) 
  384 #define ASSERT(expression) 
  385 #define DEBUG(statement) 
size_t amesos_cholmod_mult_size_t(size_t a, size_t k, int *ok)
size_t amesos_cholmod_l_add_size_t(size_t a, size_t b, int *ok)
size_t amesos_cholmod_add_size_t(size_t a, size_t b, int *ok)
size_t amesos_cholmod_l_mult_size_t(size_t a, size_t k, int *ok)