diff liboctave/UMFPACK/UMFPACK/Source/umfpack_free_numeric.c @ 5164:57077d0ddc8e

[project @ 2005-02-25 19:55:24 by jwe]
author jwe
date Fri, 25 Feb 2005 19:55:28 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liboctave/UMFPACK/UMFPACK/Source/umfpack_free_numeric.c	Fri Feb 25 19:55:28 2005 +0000
@@ -0,0 +1,57 @@
+/* ========================================================================== */
+/* === UMFPACK_free_numeric ================================================= */
+/* ========================================================================== */
+
+/* -------------------------------------------------------------------------- */
+/* UMFPACK Version 4.4, Copyright (c) 2005 by Timothy A. Davis.  CISE Dept,   */
+/* Univ. of Florida.  All Rights Reserved.  See ../Doc/License for License.   */
+/* web: http://www.cise.ufl.edu/research/sparse/umfpack                       */
+/* -------------------------------------------------------------------------- */
+
+/*  User-callable.  Free the entire Numeric object (consists of 11 to 13
+ *  malloc'd objects.  See UMFPACK_free_numeric.h for details.
+ */
+
+#include "umf_internal.h"
+#include "umf_free.h"
+
+GLOBAL void UMFPACK_free_numeric
+(
+    void **NumericHandle
+)
+{
+
+    NumericType *Numeric ;
+    if (!NumericHandle)
+    {
+	return ;
+    }
+    Numeric = *((NumericType **) NumericHandle) ;
+    if (!Numeric)
+    {
+	return ;
+    }
+
+    /* these 9 objects always exist */
+    (void) UMF_free ((void *) Numeric->D) ;
+    (void) UMF_free ((void *) Numeric->Rperm) ;
+    (void) UMF_free ((void *) Numeric->Cperm) ;
+    (void) UMF_free ((void *) Numeric->Lpos) ;
+    (void) UMF_free ((void *) Numeric->Lilen) ;
+    (void) UMF_free ((void *) Numeric->Lip) ;
+    (void) UMF_free ((void *) Numeric->Upos) ;
+    (void) UMF_free ((void *) Numeric->Uilen) ;
+    (void) UMF_free ((void *) Numeric->Uip) ;
+
+    /* Rs does not exist if scaling was not performed */
+    (void) UMF_free ((void *) Numeric->Rs) ;
+
+    /* Upattern can only exist for singular or rectangular matrices */
+    (void) UMF_free ((void *) Numeric->Upattern) ;
+
+    /* these 2 objects always exist */
+    (void) UMF_free ((void *) Numeric->Memory) ;
+    (void) UMF_free ((void *) Numeric) ;
+
+    *NumericHandle = (void *) NULL ;
+}