1 /* ========================================================================== */ 2 /* === UMFPACK_free_symbolic ================================================ */ 3 /* ========================================================================== */ 4 5 /* -------------------------------------------------------------------------- */ 6 /* Copyright (c) 2005-2012 by Timothy A. Davis, http://www.suitesparse.com. */ 7 /* All Rights Reserved. See ../Doc/License.txt for License. */ 8 /* -------------------------------------------------------------------------- */ 9 10 /* 11 User-callable. See umfpack_free_symbolic.h for details. 12 All 10 objects comprising the Symbolic object are free'd via UMF_free. 13 */ 14 15 #include "umf_internal.h" 16 #include "umf_free.h" 17 UMFPACK_free_symbolic(void ** SymbolicHandle)18GLOBAL void UMFPACK_free_symbolic 19 ( 20 void **SymbolicHandle 21 ) 22 { 23 24 SymbolicType *Symbolic ; 25 if (!SymbolicHandle) 26 { 27 return ; 28 } 29 Symbolic = *((SymbolicType **) SymbolicHandle) ; 30 if (!Symbolic) 31 { 32 return ; 33 } 34 35 (void) UMF_free ((void *) Symbolic->Cperm_init) ; 36 (void) UMF_free ((void *) Symbolic->Rperm_init) ; 37 (void) UMF_free ((void *) Symbolic->Front_npivcol) ; 38 (void) UMF_free ((void *) Symbolic->Front_parent) ; 39 (void) UMF_free ((void *) Symbolic->Front_1strow) ; 40 (void) UMF_free ((void *) Symbolic->Front_leftmostdesc) ; 41 (void) UMF_free ((void *) Symbolic->Chain_start) ; 42 (void) UMF_free ((void *) Symbolic->Chain_maxrows) ; 43 (void) UMF_free ((void *) Symbolic->Chain_maxcols) ; 44 (void) UMF_free ((void *) Symbolic->Cdeg) ; 45 (void) UMF_free ((void *) Symbolic->Rdeg) ; 46 47 /* only when dense rows are present */ 48 (void) UMF_free ((void *) Symbolic->Esize) ; 49 50 /* only when diagonal pivoting is prefered */ 51 (void) UMF_free ((void *) Symbolic->Diagonal_map) ; 52 53 (void) UMF_free ((void *) Symbolic) ; 54 *SymbolicHandle = (void *) NULL ; 55 } 56