69 Common->error_handler =
NULL ;
75 Common->itype =
ITYPE ;
76 Common->dtype =
DTYPE ;
83 Common->try_catch =
FALSE ;
94 Common->malloc_memory = malloc ;
95 Common->free_memory = free ;
96 Common->realloc_memory = realloc ;
97 Common->calloc_memory = calloc ;
100 Common->malloc_memory =
NULL ;
101 Common->free_memory =
NULL ;
102 Common->realloc_memory =
NULL ;
103 Common->calloc_memory =
NULL ;
119 Common->print_function = printf ;
122 Common->print_function =
NULL ;
134 Common->mark =
EMPTY ;
135 Common->xworksize = 0 ;
136 Common->iworksize = 0 ;
137 Common->Flag =
NULL ;
138 Common->Head =
NULL ;
139 Common->Iwork =
NULL ;
140 Common->Xwork =
NULL ;
141 Common->no_workspace_reallocate =
FALSE ;
149 Common->lnz =
EMPTY ;
152 Common->modfl =
EMPTY ;
157 Common->malloc_count = 0 ;
158 Common->memory_usage = 0 ;
159 Common->memory_inuse = 0 ;
161 Common->nrealloc_col = 0 ;
162 Common->nrealloc_factor = 0 ;
163 Common->ndbounds_hit = 0 ;
164 Common->rowfacfl = 0 ;
165 Common->aatfl =
EMPTY ;
168 Common->called_nd =
FALSE ;
197 Common->dbound = 0.0 ;
198 Common->grow0 = 1.2 ;
199 Common->grow1 = 1.2 ;
201 Common->maxrank = 8 ;
203 Common->final_asis =
TRUE ;
204 Common->final_super =
TRUE ;
205 Common->final_ll =
FALSE ;
206 Common->final_pack =
TRUE ;
207 Common->final_monotonic =
TRUE ;
208 Common->final_resymbol =
FALSE ;
212 Common->supernodal_switch = 40 ;
214 Common->nrelax [0] = 4 ;
215 Common->nrelax [1] = 16 ;
216 Common->nrelax [2] = 48 ;
217 Common->zrelax [0] = 0.8 ;
218 Common->zrelax [1] = 0.1 ;
219 Common->zrelax [2] = 0.05 ;
221 Common->prefer_zomplex =
FALSE ;
222 Common->prefer_upper =
TRUE ;
223 Common->prefer_binary =
FALSE ;
224 Common->quick_return_if_not_posdef =
FALSE ;
227 Common->metis_memory = 0.0 ;
228 Common->metis_nswitch = 3000 ;
229 Common->metis_dswitch = 0.66 ;
232 Common->precise =
FALSE ;
243 #if (CHOLMOD_MAXMETHODS < 9)
244 #error "CHOLMOD_MAXMETHODS must be 9 or more (defined in cholmod_core.h)."
250 Common->nmethods = 0 ;
251 Common->default_nesdis =
FALSE ;
253 Common->current = 0 ;
254 Common->selected = 0 ;
263 Common->method [i].prune_dense = 10.0 ;
266 Common->method [i].prune_dense2 = -1 ;
267 Common->method [i].aggressive =
TRUE ;
268 Common->method [i].order_for_lu =
FALSE ;
271 Common->method [i].nd_small = 200 ;
272 Common->method [i].nd_compress =
TRUE ;
273 Common->method [i].nd_camd = 1 ;
274 Common->method [i].nd_components =
FALSE ;
275 Common->method [i].nd_oksep = 1.0 ;
278 Common->method [i].fl =
EMPTY ;
279 Common->method [i].lnz =
EMPTY ;
282 Common->postorder =
TRUE ;
293 Common->method [5].nd_small = 20000 ;
297 Common->method [6].nd_small = 4 ;
298 Common->method [6].nd_camd = 0 ;
302 Common->method [7].prune_dense = -1. ;
371 nrow =
MAX (1, nrow) ;
383 if (nrow > Common->nrow)
386 if (Common->no_workspace_reallocate)
394 Common->Flag =
CHOLMOD(free) (Common->nrow,
sizeof (
Int), Common->Flag,
396 Common->Head =
CHOLMOD(free) (Common->nrow+1,
sizeof (
Int), Common->Head,
398 Common->Flag =
CHOLMOD(malloc) (nrow,
sizeof (
Int), Common) ;
399 Common->Head =
CHOLMOD(malloc) (nrow1,
sizeof (
Int), Common) ;
402 Common->nrow = nrow ;
411 Common->mark =
EMPTY ;
413 Head = Common->Head ;
414 for (i = 0 ; i <= (
Int) (nrow) ; i++)
424 iworksize =
MAX (1, iworksize) ;
425 if (iworksize > Common->iworksize)
428 if (Common->no_workspace_reallocate)
437 CHOLMOD(free) (Common->iworksize,
sizeof (
Int), Common->Iwork, Common) ;
438 Common->Iwork =
CHOLMOD(malloc) (iworksize,
sizeof (
Int), Common) ;
441 Common->iworksize = iworksize ;
457 xworksize =
MAX (1, xworksize) ;
458 if (xworksize > Common->xworksize)
461 if (Common->no_workspace_reallocate)
469 CHOLMOD(free) (Common->xworksize,
sizeof (double), Common->Xwork,
471 Common->Xwork =
CHOLMOD(malloc) (xworksize,
sizeof (double), Common) ;
474 Common->xworksize = xworksize ;
484 for (i = 0 ; i < (
Int) xworksize ; i++)
509 Common->Flag =
CHOLMOD(free) (Common->nrow,
sizeof (
Int),
510 Common->Flag, Common) ;
511 Common->Head =
CHOLMOD(free) (Common->nrow+1,
sizeof (
Int),
512 Common->Head, Common) ;
513 Common->Iwork =
CHOLMOD(free) (Common->iworksize,
sizeof (
Int),
514 Common->Iwork, Common) ;
515 Common->Xwork =
CHOLMOD(free) (Common->xworksize,
sizeof (double),
516 Common->Xwork, Common) ;
518 Common->iworksize = 0 ;
519 Common->xworksize = 0 ;
545 if (Common->mark <= 0)
547 nrow = Common->nrow ;
548 Flag = Common->Flag ;
549 PRINT2 ((
"reset Flag: nrow "ID"\n", nrow)) ;
550 PRINT2 ((
"reset Flag: mark %ld\n", Common->mark)) ;
551 for (i = 0 ; i < nrow ; i++)
557 return (Common->mark) ;
578 maxrank = Common->maxrank ;
588 maxrank =
MIN (maxrank,
Size_max / (
n *
sizeof (
double))) ;
594 else if (maxrank <= 4)
630 dbound = Common->dbound ;
636 Common->ndbounds_hit++ ;
648 Common->ndbounds_hit++ ;
#define CHOLMOD_TOO_LARGE
size_t CHOLMOD() add_size_t(size_t a, size_t b, int *ok)
int CHOLMOD() divcomplex(double ar, double ai, double br, double bi, double *cr, double *ci)
#define RETURN_IF_NULL_COMMON(result)
int CHOLMOD() free_work(cholmod_common *Common)
int CHOLMOD() start(cholmod_common *Common)
int CHOLMOD() finish(cholmod_common *Common)
int CHOLMOD() allocate_work(size_t nrow, size_t iworksize, size_t xworksize, cholmod_common *Common)
#define CHOLMOD_MAXMETHODS
double CHOLMOD() hypot(double x, double y)
UF_long CHOLMOD() clear_flag(cholmod_common *Common)
#define ERROR(status, msg)
int CHOLMOD() defaults(cholmod_common *Common)