64 (*ok) = (*ok) && (s >= a) ;
65 return ((*ok) ? s : 0) ;
84 (*ok) = (*ok) && (p >= a) ;
89 (*ok) = (*ok) && (s >= a) ;
144 p = ok ? ((Common->malloc_memory) (s)) :
NULL ;
153 Common->malloc_count++ ;
154 Common->memory_inuse += (
n * size) ;
155 Common->memory_usage =
156 MAX (Common->memory_usage, Common->memory_inuse) ;
157 PRINTM ((
"cholmod_malloc %p %d cnt: %d inuse %d\n",
158 p,
n*size, Common->malloc_count, Common->memory_inuse)) ;
199 (Common->free_memory) (p) ;
200 Common->malloc_count-- ;
201 Common->memory_inuse -= (
n * size) ;
202 PRINTM ((
"cholmod_free %p %d cnt: %d inuse %d\n",
203 p,
n*size, Common->malloc_count, Common->memory_inuse)) ;
207 DEBUG (
if (Common->malloc_count == 0 && Common->memory_inuse != 0)
208 PRINT0 ((
"inuse: %d\n", Common->memory_inuse))) ;
209 ASSERT (
IMPLIES (Common->malloc_count == 0, Common->memory_inuse == 0));
254 p = (Common->calloc_memory) (
MAX (1,
n), size) ;
263 Common->malloc_count++ ;
264 Common->memory_inuse += (
n * size) ;
265 Common->memory_usage =
266 MAX (Common->memory_usage, Common->memory_inuse) ;
267 PRINTM ((
"cholmod_calloc %p %d cnt: %d inuse %d\n",
268 p,
n*size, Common->malloc_count, Common->memory_inuse)) ;
322 PRINT1 ((
"realloc fresh: %d %d\n", nnew, size)) ;
323 p =
CHOLMOD(malloc) (nnew, size, Common) ;
324 *
n = (p ==
NULL) ? 0 : nnew ;
326 else if (nold == nnew)
329 PRINT1 ((
"realloc nothing: %d %d\n", nnew, size)) ;
340 PRINT1 ((
"realloc : %d to %d, %d\n", nold, nnew, size)) ;
344 pnew = ok ? ((Common->realloc_memory) (p, s)) :
NULL ;
356 PRINTM ((
"nnew <= nold failed, pretend to succeed\n")) ;
357 PRINTM ((
"cholmod_realloc_old: %p %d cnt: %d inuse %d\n"
358 "cholmod_realloc_new: %p %d cnt: %d inuse %d\n",
359 p, nold*size, Common->malloc_count-1,
360 Common->memory_inuse - nold*size,
361 p, nnew*size, Common->malloc_count,
362 Common->memory_inuse + (nnew-nold)*size)) ;
363 Common->memory_inuse += ((nnew-nold) * size) ;
375 PRINTM ((
"cholmod_realloc_old: %p %d cnt: %d inuse %d\n"
376 "cholmod_realloc_new: %p %d cnt: %d inuse %d\n",
377 p, nold*size, Common->malloc_count-1,
378 Common->memory_inuse - nold*size,
379 pnew, nnew*size, Common->malloc_count,
380 Common->memory_inuse + (nnew-nold)*size)) ;
383 Common->memory_inuse += ((nnew-nold) * size) ;
385 Common->memory_usage =
MAX (Common->memory_usage, Common->memory_inuse);
420 size_t i, j, x, z, nold ;
445 *I =
CHOLMOD(realloc) (nnew,
sizeof (
Int), *I, &i, Common) ;
449 *J =
CHOLMOD(realloc) (nnew,
sizeof (
Int), *J, &j, Common) ;
455 *X =
CHOLMOD(realloc) (nnew,
sizeof (double), *X, &x, Common) ;
459 *X =
CHOLMOD(realloc) (nnew, 2*
sizeof (double), *X, &x, Common) ;
462 case CHOLMOD_ZOMPLEX:
463 *X =
CHOLMOD(realloc) (nnew,
sizeof (double), *X, &x, Common) ;
464 *Z =
CHOLMOD(realloc) (nnew,
sizeof (double), *Z, &z, Common) ;
477 *I =
CHOLMOD(free) (i,
sizeof (
Int), *I, Common) ;
481 *J =
CHOLMOD(free) (j,
sizeof (
Int), *J, Common) ;
487 *X =
CHOLMOD(free) (x,
sizeof (double), *X, Common) ;
491 *X =
CHOLMOD(free) (x, 2*
sizeof (double), *X, Common) ;
494 case CHOLMOD_ZOMPLEX:
495 *X =
CHOLMOD(free) (x,
sizeof (double), *X, Common) ;
496 *Z =
CHOLMOD(free) (x,
sizeof (double), *Z, Common) ;
505 *I =
CHOLMOD(realloc) (nold,
sizeof (
Int), *I, &i, Common) ;
509 *J =
CHOLMOD(realloc) (nold,
sizeof (
Int), *J, &j, Common) ;
515 *X =
CHOLMOD(realloc) (nold,
sizeof (double), *X, &x,
520 *X =
CHOLMOD(realloc) (nold, 2*
sizeof (double), *X, &x,
524 case CHOLMOD_ZOMPLEX:
525 *X =
CHOLMOD(realloc) (nold,
sizeof (double), *X, &x,
527 *Z =
CHOLMOD(realloc) (nold,
sizeof (double), *Z, &z,
555 case CHOLMOD_ZOMPLEX:
#define CHOLMOD_TOO_LARGE
#define RETURN_IF_NULL_COMMON(result)
int CHOLMOD() realloc_multiple(size_t nnew, int nint, int xtype, void **I, void **J, void **X, void **Z, size_t *nold_p, cholmod_common *Common)
size_t CHOLMOD() add_size_t(size_t a, size_t b, int *ok)
size_t CHOLMOD() mult_size_t(size_t a, size_t k, int *ok)
#define ASSERT(expression)
#define CHOLMOD_OUT_OF_MEMORY
#define ERROR(status, msg)