67 (*ok) = (*ok) && (s >= a) ;
68 return ((*ok) ? s : 0) ;
87 (*ok) = (*ok) && (p >= a) ;
92 (*ok) = (*ok) && (s >= a) ;
147 p = ok ? ((Common->malloc_memory) (s)) :
NULL ;
156 Common->malloc_count++ ;
157 Common->memory_inuse += (
n * size) ;
158 Common->memory_usage =
159 MAX (Common->memory_usage, Common->memory_inuse) ;
160 PRINTM ((
"cholmod_malloc %p %d cnt: %d inuse %d\n",
161 p,
n*size, Common->malloc_count, Common->memory_inuse)) ;
202 (Common->free_memory) (p) ;
203 Common->malloc_count-- ;
204 Common->memory_inuse -= (
n * size) ;
205 PRINTM ((
"cholmod_free %p %d cnt: %d inuse %d\n",
206 p,
n*size, Common->malloc_count, Common->memory_inuse)) ;
210 DEBUG (
if (Common->malloc_count == 0 && Common->memory_inuse != 0)
211 PRINT0 ((
"inuse: %d\n", Common->memory_inuse))) ;
212 ASSERT (
IMPLIES (Common->malloc_count == 0, Common->memory_inuse == 0));
257 p = (Common->calloc_memory) (
MAX (1,
n), size) ;
266 Common->malloc_count++ ;
267 Common->memory_inuse += (
n * size) ;
268 Common->memory_usage =
269 MAX (Common->memory_usage, Common->memory_inuse) ;
270 PRINTM ((
"cholmod_calloc %p %d cnt: %d inuse %d\n",
271 p,
n*size, Common->malloc_count, Common->memory_inuse)) ;
325 PRINT1 ((
"realloc fresh: %d %d\n", nnew, size)) ;
326 p =
CHOLMOD(malloc) (nnew, size, Common) ;
327 *
n = (p ==
NULL) ? 0 : nnew ;
329 else if (nold == nnew)
332 PRINT1 ((
"realloc nothing: %d %d\n", nnew, size)) ;
343 PRINT1 ((
"realloc : %d to %d, %d\n", nold, nnew, size)) ;
347 pnew = ok ? ((Common->realloc_memory) (p, s)) :
NULL ;
359 PRINTM ((
"nnew <= nold failed, pretend to succeed\n")) ;
360 PRINTM ((
"cholmod_realloc_old: %p %d cnt: %d inuse %d\n"
361 "cholmod_realloc_new: %p %d cnt: %d inuse %d\n",
362 p, nold*size, Common->malloc_count-1,
363 Common->memory_inuse - nold*size,
364 p, nnew*size, Common->malloc_count,
365 Common->memory_inuse + (nnew-nold)*size)) ;
366 Common->memory_inuse += ((nnew-nold) * size) ;
378 PRINTM ((
"cholmod_realloc_old: %p %d cnt: %d inuse %d\n"
379 "cholmod_realloc_new: %p %d cnt: %d inuse %d\n",
380 p, nold*size, Common->malloc_count-1,
381 Common->memory_inuse - nold*size,
382 pnew, nnew*size, Common->malloc_count,
383 Common->memory_inuse + (nnew-nold)*size)) ;
386 Common->memory_inuse += ((nnew-nold) * size) ;
388 Common->memory_usage =
MAX (Common->memory_usage, Common->memory_inuse);
423 size_t i, j, x, z, nold ;
448 *I =
CHOLMOD(realloc) (nnew,
sizeof (
Int), *I, &i, Common) ;
452 *J =
CHOLMOD(realloc) (nnew,
sizeof (
Int), *J, &j, Common) ;
458 *X =
CHOLMOD(realloc) (nnew,
sizeof (double), *X, &x, Common) ;
462 *X =
CHOLMOD(realloc) (nnew, 2*
sizeof (double), *X, &x, Common) ;
465 case CHOLMOD_ZOMPLEX:
466 *X =
CHOLMOD(realloc) (nnew,
sizeof (double), *X, &x, Common) ;
467 *Z =
CHOLMOD(realloc) (nnew,
sizeof (double), *Z, &z, Common) ;
480 *I =
CHOLMOD(free) (i,
sizeof (
Int), *I, Common) ;
484 *J =
CHOLMOD(free) (j,
sizeof (
Int), *J, Common) ;
490 *X =
CHOLMOD(free) (x,
sizeof (double), *X, Common) ;
494 *X =
CHOLMOD(free) (x, 2*
sizeof (double), *X, Common) ;
497 case CHOLMOD_ZOMPLEX:
498 *X =
CHOLMOD(free) (x,
sizeof (double), *X, Common) ;
499 *Z =
CHOLMOD(free) (x,
sizeof (double), *Z, Common) ;
508 *I =
CHOLMOD(realloc) (nold,
sizeof (
Int), *I, &i, Common) ;
512 *J =
CHOLMOD(realloc) (nold,
sizeof (
Int), *J, &j, Common) ;
518 *X =
CHOLMOD(realloc) (nold,
sizeof (double), *X, &x,
523 *X =
CHOLMOD(realloc) (nold, 2*
sizeof (double), *X, &x,
527 case CHOLMOD_ZOMPLEX:
528 *X =
CHOLMOD(realloc) (nold,
sizeof (double), *X, &x,
530 *Z =
CHOLMOD(realloc) (nold,
sizeof (double), *Z, &z,
558 case CHOLMOD_ZOMPLEX:
#define CHOLMOD_TOO_LARGE
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)
#define RETURN_IF_NULL_COMMON(result)
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)