From 89345506801dc9ee3eb4eb5dc848f3fb65244034 Mon Sep 17 00:00:00 2001 From: Tim Davis Date: Mon, 27 Nov 2023 22:12:44 -0600 Subject: [PATCH] UMFPACK 6.3.0: version update, remove amd_internal.h --- UMFPACK/CMakeLists.txt | 30 +-- UMFPACK/Demo/umf4hb.out | 12 +- UMFPACK/Demo/umf4hb64.out | 10 +- UMFPACK/Demo/umf4zhb.out | 18 +- UMFPACK/Demo/umf4zhb64.out | 18 +- UMFPACK/Demo/umfpack_di_demo.out | 26 +-- UMFPACK/Demo/umfpack_dl_demo.out | 26 +-- UMFPACK/Demo/umfpack_zi_demo.out | 30 +-- UMFPACK/Demo/umfpack_zl_demo.out | 26 +-- UMFPACK/Doc/ChangeLog | 5 + UMFPACK/Doc/UMFPACK_QuickStart.pdf | Bin 217825 -> 217832 bytes UMFPACK/Doc/UMFPACK_UserGuide.pdf | Bin 483219 -> 483216 bytes UMFPACK/Doc/umfpack_version.tex | 2 +- UMFPACK/Include/umfpack.h | 6 +- UMFPACK/Makefile | 16 +- UMFPACK/Source/README.txt | 1 - UMFPACK/Source/amd_internal.h | 280 ------------------------ UMFPACK/Source/umf_colamd.c | 2 +- UMFPACK/Source/umf_config.h | 2 +- UMFPACK/Source/umf_dump.c | 4 +- UMFPACK/Source/umf_free.c | 2 +- UMFPACK/Source/umf_garbage_collection.c | 4 +- UMFPACK/Source/umf_internal.h | 225 ++++++++++++++++++- UMFPACK/Source/umf_malloc.c | 2 +- UMFPACK/Source/umf_realloc.c | 8 +- UMFPACK/Source/umf_version.h | 2 +- UMFPACK/Source/umfpack_numeric.c | 2 +- UMFPACK/Source/umfpack_qsymbolic.c | 1 - 28 files changed, 345 insertions(+), 415 deletions(-) delete mode 100644 UMFPACK/Source/README.txt delete mode 100644 UMFPACK/Source/amd_internal.h diff --git a/UMFPACK/CMakeLists.txt b/UMFPACK/CMakeLists.txt index 24e4af9f13..adb6789032 100644 --- a/UMFPACK/CMakeLists.txt +++ b/UMFPACK/CMakeLists.txt @@ -12,10 +12,10 @@ # cmake 3.22 is required to find the BLAS in SuiteSparse_config cmake_minimum_required ( VERSION 3.22 ) -set ( UMFPACK_DATE "Oct 23, 2023" ) +set ( UMFPACK_DATE "Dec 30, 2023" ) set ( UMFPACK_VERSION_MAJOR 6 CACHE STRING "" FORCE ) -set ( UMFPACK_VERSION_MINOR 2 CACHE STRING "" FORCE ) -set ( UMFPACK_VERSION_SUB 2 CACHE STRING "" FORCE ) +set ( UMFPACK_VERSION_MINOR 3 CACHE STRING "" FORCE ) +set ( UMFPACK_VERSION_SUB 0 CACHE STRING "" FORCE ) message ( STATUS "Building UMFPACK version: v" ${UMFPACK_VERSION_MAJOR}. @@ -61,35 +61,35 @@ else ( ) endif ( ) if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.3.0 + find_package ( SuiteSparse_config 7.4.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.3.0 REQUIRED ) + find_package ( SuiteSparse_config 7.4.0 REQUIRED ) endif ( ) - find_package ( AMD 3.2.1 + find_package ( AMD 3.3.0 PATHS ${CMAKE_SOURCE_DIR}/../AMD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::AMD ) - find_package ( AMD 3.2.1 REQUIRED ) + find_package ( AMD 3.3.0 REQUIRED ) endif ( ) if ( DEMO AND NOT WIN32 ) - find_package ( COLAMD 3.2.1 + find_package ( COLAMD 3.3.0 PATHS ${CMAKE_SOURCE_DIR}/../COLAMD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::COLAMD ) - find_package ( COLAMD 3.2.1 REQUIRED ) + find_package ( COLAMD 3.3.0 REQUIRED ) endif ( ) - find_package ( CAMD 3.2.1 + find_package ( CAMD 3.3.0 PATHS ${CMAKE_SOURCE_DIR}/../CAMD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::CAMD ) - find_package ( CAMD 3.2.1 REQUIRED ) + find_package ( CAMD 3.3.0 REQUIRED ) endif ( ) - find_package ( CCOLAMD 3.2.1 + find_package ( CCOLAMD 3.3.0 PATHS ${CMAKE_SOURCE_DIR}/../CCOLAMD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::CCOLAMD ) - find_package ( CCOLAMD 3.2.1 REQUIRED ) + find_package ( CCOLAMD 3.3.0 REQUIRED ) endif ( ) endif ( ) endif ( ) @@ -100,10 +100,10 @@ option ( NCHOLMOD "ON: do not use CHOLMOD. OFF (default): use CHOLMOD" OFF ) if ( NOT SUITESPARSE_ROOT_CMAKELISTS AND NOT NCHOLMOD ) # look for CHOLMOD (optional fill-reducing orderings) - find_package ( CHOLMOD 5.0.0 + find_package ( CHOLMOD 5.1.0 PATHS ${CMAKE_SOURCE_DIR}/../CHOLMOD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::CHOLMOD ) - find_package ( CHOLMOD 5.0.0 ) + find_package ( CHOLMOD 5.1.0 ) endif ( ) if ( NOT CHOLMOD_FOUND ) diff --git a/UMFPACK/Demo/umf4hb.out b/UMFPACK/Demo/umf4hb.out index f822bfed4b..befc9542ba 100644 --- a/UMFPACK/Demo/umf4hb.out +++ b/UMFPACK/Demo/umf4hb.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double Int (generic integer) defined as: int32_t @@ -38,7 +38,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Control: computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 4 pointer: 8 double: 8 Entry: 8 (in bytes) -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -106,8 +106,8 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: numeric factorization defragmentations: 1 numeric factorization reallocations: 1 costly numeric factorization reallocations: 1 - numeric factorization wallclock time (sec): 0.01 - numeric factorization mflops (wallclock): 0.34 + numeric factorization wallclock time (sec): 0.04 + numeric factorization mflops (wallclock): 0.07 solve flops: 1.20800e+03 iterative refinement steps taken: 0 @@ -119,7 +119,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: Matrix key: WEST0067 symbolic analysis: status: 0. - time: 0.10E-03 (sec) + time: 0.18E-03 (sec) estimates (upper bound) for numeric LU: size of LU: 0.02 (MB) memory needed: 0.06 (MB) @@ -128,7 +128,7 @@ symbolic analysis: nnz (U): 902. numeric factorization: status: 0. - time: 0.77E-02 + time: 0.38E-01 actual numeric LU statistics: size of LU: 0.01 (MB) memory needed: 0.04 (MB) diff --git a/UMFPACK/Demo/umf4hb64.out b/UMFPACK/Demo/umf4hb64.out index 068a9e8fcf..2595a951db 100644 --- a/UMFPACK/Demo/umf4hb64.out +++ b/UMFPACK/Demo/umf4hb64.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double Int (generic integer) defined as: int64_t @@ -38,7 +38,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Control: computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 8 pointer: 8 double: 8 Entry: 8 (in bytes) -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -107,7 +107,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: numeric factorization reallocations: 1 costly numeric factorization reallocations: 1 numeric factorization wallclock time (sec): 0.03 - numeric factorization mflops (wallclock): 0.10 + numeric factorization mflops (wallclock): 0.08 solve flops: 1.20800e+03 iterative refinement steps taken: 0 @@ -119,7 +119,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: Matrix key: WEST0067 symbolic analysis: status: 0. - time: 0.11E-03 (sec) + time: 0.20E-03 (sec) estimates (upper bound) for numeric LU: size of LU: 0.02 (MB) memory needed: 0.08 (MB) @@ -128,7 +128,7 @@ symbolic analysis: nnz (U): 902. numeric factorization: status: 0. - time: 0.27E-01 + time: 0.35E-01 actual numeric LU statistics: size of LU: 0.01 (MB) memory needed: 0.06 (MB) diff --git a/UMFPACK/Demo/umf4zhb.out b/UMFPACK/Demo/umf4zhb.out index da09a3ca45..5f0a670a81 100644 --- a/UMFPACK/Demo/umf4zhb.out +++ b/UMFPACK/Demo/umf4zhb.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int32_t @@ -38,7 +38,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Control: computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 4 pointer: 8 double: 8 Entry: 16 (in bytes) -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -119,10 +119,10 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: numeric factorization defragmentations: 0 numeric factorization reallocations: 0 costly numeric factorization reallocations: 0 - numeric factorization wallclock time (sec): 0.02 - numeric factorization mflops (wallclock): 783.23 - symbolic + numeric wall clock time (sec): 0.02 - symbolic + numeric mflops (wall clock): 712.11 + numeric factorization wallclock time (sec): 0.14 + numeric factorization mflops (wallclock): 102.27 + symbolic + numeric wall clock time (sec): 0.14 + symbolic + numeric mflops (wall clock): 99.78 solve flops: 3.70332e+05 iterative refinement steps taken: 0 @@ -134,7 +134,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: Matrix key: QC324 symbolic analysis: status: 0. - time: 0.18E-02 (sec) + time: 0.35E-02 (sec) estimates (upper bound) for numeric LU: size of LU: 1.17 (MB) memory needed: 2.40 (MB) @@ -143,11 +143,11 @@ symbolic analysis: nnz (U): 39609. numeric factorization: status: 0. - time: 0.18E-01 + time: 0.14E+00 actual numeric LU statistics: size of LU: 0.72 (MB) memory needed: 1.14 (MB) flop count: 0.14E+08 nnz (L): 23247. nnz (U): 23247. - norm (A*x-b): 2.7037543144102808E-013 + norm (A*x-b): 2.7082234386269613E-013 diff --git a/UMFPACK/Demo/umf4zhb64.out b/UMFPACK/Demo/umf4zhb64.out index b857c4c339..c8773d1e00 100644 --- a/UMFPACK/Demo/umf4zhb64.out +++ b/UMFPACK/Demo/umf4zhb64.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int64_t @@ -38,7 +38,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Control: computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 8 pointer: 8 double: 8 Entry: 16 (in bytes) -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -119,10 +119,10 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: numeric factorization defragmentations: 0 numeric factorization reallocations: 0 costly numeric factorization reallocations: 0 - numeric factorization wallclock time (sec): 0.01 - numeric factorization mflops (wallclock): 962.67 - symbolic + numeric wall clock time (sec): 0.02 - symbolic + numeric mflops (wall clock): 839.26 + numeric factorization wallclock time (sec): 0.29 + numeric factorization mflops (wallclock): 50.19 + symbolic + numeric wall clock time (sec): 0.29 + symbolic + numeric mflops (wall clock): 49.53 solve flops: 3.70332e+05 iterative refinement steps taken: 0 @@ -134,7 +134,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: Matrix key: QC324 symbolic analysis: status: 0. - time: 0.22E-02 (sec) + time: 0.38E-02 (sec) estimates (upper bound) for numeric LU: size of LU: 1.37 (MB) memory needed: 2.97 (MB) @@ -143,11 +143,11 @@ symbolic analysis: nnz (U): 39609. numeric factorization: status: 0. - time: 0.15E-01 + time: 0.29E+00 actual numeric LU statistics: size of LU: 0.74 (MB) memory needed: 1.38 (MB) flop count: 0.14E+08 nnz (L): 23247. nnz (U): 23247. - norm (A*x-b): 2.7037543144102808E-013 + norm (A*x-b): 2.7082234386269613E-013 diff --git a/UMFPACK/Demo/umfpack_di_demo.out b/UMFPACK/Demo/umfpack_di_demo.out index 3d3e74a206..c58ad99e3e 100644 --- a/UMFPACK/Demo/umfpack_di_demo.out +++ b/UMFPACK/Demo/umfpack_di_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 18, 2023) demo: _di_ version +UMFPACK V6.3 (Dec 30, 2023) demo: _di_ version UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. @@ -10,9 +10,9 @@ UMFPACK License: SPDX-License-Identifier: GPL-2.0+ Availability: http://www.suitesparse.com -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double Int (generic integer) defined as: int32_t @@ -257,7 +257,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -346,7 +346,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.06581e-14 UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK determinant: (1.14) * 10^(2) @@ -376,7 +376,7 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.06581e-14 -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -605,7 +605,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -852,7 +852,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1300,7 +1300,7 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1509,7 +1509,7 @@ Done copying numeric object Numeric blob size: 752 Done serialize/deserialize of numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1607,7 +1607,7 @@ maxnorm of residual: 3.55271e-15 Solving C'x=b again, using umfpack_di_wsolve instead: -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1705,4 +1705,4 @@ maxnorm of residual: 3.55271e-15 umfpack_di_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Demo/umfpack_dl_demo.out b/UMFPACK/Demo/umfpack_dl_demo.out index fa481ff221..099ddda274 100644 --- a/UMFPACK/Demo/umfpack_dl_demo.out +++ b/UMFPACK/Demo/umfpack_dl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 18, 2023) demo: _dl_ version +UMFPACK V6.3 (Dec 30, 2023) demo: _dl_ version UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. @@ -10,9 +10,9 @@ UMFPACK License: SPDX-License-Identifier: GPL-2.0+ Availability: http://www.suitesparse.com -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double Int (generic integer) defined as: int64_t @@ -257,7 +257,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -346,7 +346,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.06581e-14 UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK determinant: (1.14) * 10^(2) @@ -376,7 +376,7 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.06581e-14 -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -605,7 +605,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -852,7 +852,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1300,7 +1300,7 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1509,7 +1509,7 @@ Done copying numeric object Numeric blob size: 1144 Done serialize/deserialize of numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1607,7 +1607,7 @@ maxnorm of residual: 3.55271e-15 Solving C'x=b again, using umfpack_dl_wsolve instead: -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1705,4 +1705,4 @@ maxnorm of residual: 3.55271e-15 umfpack_dl_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Demo/umfpack_zi_demo.out b/UMFPACK/Demo/umfpack_zi_demo.out index 3494054270..32fa41519a 100644 --- a/UMFPACK/Demo/umfpack_zi_demo.out +++ b/UMFPACK/Demo/umfpack_zi_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 18, 2023) demo: _zi_ version +UMFPACK V6.3 (Dec 30, 2023) demo: _zi_ version UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. @@ -10,9 +10,9 @@ UMFPACK License: SPDX-License-Identifier: GPL-2.0+ Availability: http://www.suitesparse.com -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int32_t @@ -257,7 +257,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -332,7 +332,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: numeric factorization reallocations: 1 costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 - numeric factorization mflops (wallclock): 0.02 + numeric factorization mflops (wallclock): 0.01 solve flops: 1.02800e+03 iterative refinement steps taken: 1 @@ -346,7 +346,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.77636e-15 UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK determinant: (-1.7814+ (2.3784)i) * 10^(2) @@ -376,7 +376,7 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.77636e-14 -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -451,7 +451,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: numeric factorization reallocations: 1 costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 - numeric factorization mflops (wallclock): 0.02 + numeric factorization mflops (wallclock): 0.01 solve flops: 4.80000e+02 iterative refinement steps taken: 0 @@ -605,7 +605,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -852,7 +852,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1300,7 +1300,7 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1509,7 +1509,7 @@ Done copying numeric object Numeric blob size: 864 Done serialize/deserialize of numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1607,7 +1607,7 @@ maxnorm of residual: 4.88498e-15 Solving C'x=b again, using umfpack_zi_wsolve instead: -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int32_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1705,4 +1705,4 @@ maxnorm of residual: 4.88498e-15 umfpack_zi_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Demo/umfpack_zl_demo.out b/UMFPACK/Demo/umfpack_zl_demo.out index 40bf13ce40..3c22d0e10b 100644 --- a/UMFPACK/Demo/umfpack_zl_demo.out +++ b/UMFPACK/Demo/umfpack_zl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 18, 2023) demo: _zl_ version +UMFPACK V6.3 (Dec 30, 2023) demo: _zl_ version UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. @@ -10,9 +10,9 @@ UMFPACK License: SPDX-License-Identifier: GPL-2.0+ Availability: http://www.suitesparse.com -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK -UMFPACK V6.2.1 (Sept 18, 2023), Control: +UMFPACK V6.3.0 (Dec 30, 2023), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int64_t @@ -257,7 +257,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -346,7 +346,7 @@ UMFPACK V6.2.1 (Sept 18, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.77636e-15 UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.1 (Sept 18, 2023): OK +UMFPACK V6.3.0 (Dec 30, 2023): OK determinant: (-1.7814+ (2.3784)i) * 10^(2) @@ -376,7 +376,7 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.77636e-14 -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -605,7 +605,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -852,7 +852,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1300,7 +1300,7 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1509,7 +1509,7 @@ Done copying numeric object Numeric blob size: 1208 Done serialize/deserialize of numeric object -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1607,7 +1607,7 @@ maxnorm of residual: 4.88498e-15 Solving C'x=b again, using umfpack_zl_wsolve instead: -UMFPACK V6.2.1 (Sept 18, 2023), Info: +UMFPACK V6.3.0 (Dec 30, 2023), Info: matrix entry defined as: double complex Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 @@ -1705,4 +1705,4 @@ maxnorm of residual: 4.88498e-15 umfpack_zl_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Doc/ChangeLog b/UMFPACK/Doc/ChangeLog index 6a027a4227..04f0592d8c 100644 --- a/UMFPACK/Doc/ChangeLog +++ b/UMFPACK/Doc/ChangeLog @@ -1,3 +1,8 @@ +Dec 30, 2023: version 6.3.0 + + * major change to build system: by Markus Mützel + * AMD: amd_internal.h removed. + Oct 23, 2023: version 6.2.2 * for SuiteSparse 7.3.0: update for CHOLMOD 5.0.0 diff --git a/UMFPACK/Doc/UMFPACK_QuickStart.pdf b/UMFPACK/Doc/UMFPACK_QuickStart.pdf index cf954032f0bf4eed1c3c41eb7f62fa5cf74336e4..cef4418f854da76a8b86a5c2102faf7cba0ff048 100644 GIT binary patch delta 3236 zcmV;V3|sTzr48t%4Ui)PHZU@i@i-`dg;-f{+&B_`&#!3g%c!vyBa%7;EU=C<8F=DM zGO;rlV6zW$H{C5nE%oT|vA=%nl3MN7#7`uP#jDP*`1a=2>-Rcd=tLPEg^QcJh0aoy zMS2mNRE42k+^iS>@xFe1|9P3D-ucqR-o=NdZv*4~-WRK-NxbhoyzcU*hfH)x znyAQx3*UswL>V9P$IoA`FF*Z%#(Tuds(|)OymxNJL>tHnCNP$tZQ@0yvKSh8brdO^ zYIt>~l1wgse%p3UzUr7gopAd)&Qyw00<9!LJkdaEQ3EMyz{HUUqMgC*gJYS}vcY}AjI)BT|1;5BOa1{qPNYeDwx^Qvh z%EGnWujO2l9qw{PCUuYeuJkR>zRg=S80=mh><(;Y<|XIl#@#l5Xt{91>;87%)SD*X zkqE5!ErG7fs(H&Pj(`Yr&$5$JbXZ;r-5jvDwnDbYTra)5dlI z+Zc&!D{;5%=pYDhcHvLhz6Cm(xe<2<$1_0?`567=62~ze2o%$y9i#IZ3*fvgdE(1( z-Igc5I1n3~*IG#eFj|?=Py&cTx!(2XcgXaoe^so|Ui?dcFdN#afSZS|d4u*CdB1$V z@{J1qIjRr#5KFvvj_)7|0<=8l2(;fGJ-c(%-!IXgsmob|7LNKK6}zg*`qna}C_$Y4 z@ZdFvkyXEw`$|M0QCq#xp|W9YBqONICZHThOPOdN>|SdVd7ti=7B17=7w%z3PXQ$} zi|KbZjo8qCk|WrV9040jBS%;7E#gFQyl}`A*mr;R^ukH5m|W9_ zS_ObMPLjpcC3#q0Zz6FK?C)5wLR+oB>X!oUwAi*(?9s!HJ*-hq9R*~+!Eiq#S5 z&AgxzSsSHCV#8fWvEcv$yF99^3JhuY?F9a&Pl&5^LERmde53}a(E5MfB=3#OE?$JJPS|a=>31p zN2eZG_VZ3^^%$1qv4mGNM+6faxPMvJc+Up`?N;!=Vf+sPd0RIfQv^{of>rw!It@>u zu_E_Z1ZV`RU?3m`=ec;0T!w^;!sJP-64MgB9eDqV0cL9^vu0)*2q;Bc|H|>5#gRkpnNTtYp5ZR%O4I z0Ro27slV6o4H=N+YeF}^8(|ilpvNmQP6opC0ve;3&#-f}6F+=MGBRkU9@bnd4N&(U>}ls+)7?MCo)4 z^gqezxwHe=7ZnZn0%xqdxg&qGvAiv7E^D712Q|SYCH&M%ZcMWbV)~tH_-W|&coPU3_0vTBbWT<_0gQhTSiig5=d15(J0rCyR-qXc$whx9sn%p1QA5>vfoua-Zx7K5YDfuT|3JE6?zK7{0LG^ zM>BvSu-QB@l}myslw^Mklz#fP!YlZD1t)h{z2DJBb=8UILV0JEj*np@f4AUOW;AHQ zJguGn{iNAZfoW1G_Z6a(6beuwu$VtG^#)T;lasxLCiXt&-B!BS^<78VmNA2q{mDpc z{0&MH&j!L=)l4wL1@&+!-Tj_;B2UMWue0dv@NYDuCYyrd)5CwK8UDAH8vs<@b~l(~ zpc3=UD^qK*&W$CH!cAahB%cBix*xXbkJOSL)M7*}O#P7xOa?VsmQD*Qu;@152^uUQ zsym^wAOL9UEcVf)G%TJicZXe%>RluC?&qf15gxF~hzrU1lL65s^dX8(TVM#{zI)7R z@M4Mlz7Px#$ufTikC5X+5aTgO`M|`JPgY#UNeem+)V)RH);yvh3~NS|JO}Yj7AqUX zFI06XtYDJ4VRtS+lKJu@G%88LA66emD+r)JEjtCnu!;&zXeWl4 zh?nC!++zzh+{nLncR6_Va6VQtIsNTBaC`C^08hKTD)vzJb;GZ@v09nLq9dv_O^5#` zn0oc|&8r6g0}GS8&6hEA0u+OS3WtIU0f&ML0=I$+12IAjF)}wYF*PwYF)c7Qm%mH{ z7Ys2nH!?9bF*PwQFgCa1OaqAnQbs{CH8?miK{rG)H$^l@N?e(bf%_b+Rn^dA zc>de9PxKNmzq%TW%$K-Q10e`F3MC~)PeuyIavu@^ delta 3244 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 diff --git a/UMFPACK/Doc/UMFPACK_UserGuide.pdf b/UMFPACK/Doc/UMFPACK_UserGuide.pdf index 6d20968f5eae0e0749d66f75099ec51a88bb090a..d1a0c22016d91d300f8c4d94451fe67440da1daa 100644 GIT binary patch delta 5066 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 F{{fkzo6`UQ delta 5070 zcmah}XE+;v)Dp`|15~?sK2>yU)GnoDaXWHonX@zS=TMfPCi8LlM+7D`eob9K*#==c3eq zcZ<6@KL>woRy6$aEvNMJ#A?XLO^moSQ%&7s=8D2(4Zp^N>e-`4(^8FVWYIw8>%a;D zCbib2OHWnjmV75#_U&Zag10U^H)sTHMPn=$jqh-Y|DCJZo>WoLTfbVj|Dfey3+J=X}7@d!w##&v;~-F;ohUPodR#3P@#P;R+GOyF1XF*8k+{)j zf3XF(*1s9Mg^XvI#=Tip(p0Fux7|j=&E}tL!NhumHE6c6bM0vr(odB20m+~~dfH>_ zPYq^tZ9Z8Ph1z?R=PsU2s}gtfR7)woW`Qb`mLD3W=o(8eL@(_n{tIi6XMCtONF$fn zD^8T{V(v&AY{Z1WCc8c@Y?2?}=~+A%GHnwG?PGU;7d&x?M+s2%hUufLNle{-{?s0~ zYxJqK$)~n3+&+uw%>Gg#30qC|N=$>;Fy3o7PgqMqH4yeY##C>sy+DP?w-q>jSC76g z+LM+v(uXJK=$k-%Ng0ojhiYa!-$S{tb$|=uVzrCdA%r zIa2M3qa2-p)MT0fxloxqbe78yuPwLukmieg_3qq-lX%1$Q)Nv5n(XAx|)9G7^>(dZO;kzRCi4I44fkQ{=*KAwcL`b|$ULTDO%aEK|=NhUSL zyS;7MNUPf@)lbprrekS#_h)4E|Lp9yA+@T#eD1Tr0^TmicH>tDngPoR!nyH>Z@j4M zl?@kd@J$CSm)jSsV5k;!zwu?{&WBS0c9!244YS{A2*UdP#8RU zBD#<)n_VI8LjDy+T#;vaLeUGbSlP9op0D!``fNvma(D5Ie<*!M#<4)34KujL#oBd2 z|Mn*zpxIBJN1mMU^Doxj$Q1Z?ofO}p+`F%!^gyMCK`Z{njQ=W`=Y6UZ@bhCDWee&M zpWYXm=ijEoEI=PbW&XV3F|`$}|GoX%>gKmnkqCOi4#Z%mf@* z?()^^#I(xy?C5wRe6+RazO&v3r3hI=D)scnKMR!+yc=@W^LpqJbGIw}ToVsZ!}G+d zwgbt=iyS11WU_fq{p<0d!s)taayuW?@Nsd1rN(`%WcRP7Ndh1>zhfP@$a_InpLVK3 zssY|dF?y%(VpafP@@sUy{blivv?$gZ8-b9$?>A^@L0Cu3n%{6EY`v>|W+ zXfCZSBMVj3(NcuyXluz!$tgmlwPd6;wRH3#(o#@qIW+;5|98ZZPSV)J*E0w%APZ5H z`QI-eoEPT9XPe!#HuLm*$SZ}PuP2_nz2Q}MVx4}@=DC|OVYsdku%IFt@Txn2M3G=3 zs*A>r`V@n^7>tu#`AUoIXYqDu8>(cD^QW+j6%Gq1!`}ik=xufy?hlL!Rknoa;wa~f z~fSA>h8*Q>}IxvGfW{xE@jL}|y6g!6GoVTov3t=~rYo@L)sVdn3wE%pJXSFhQ$G_agGvehs7}M-g?Pd8x?pqQ2 zpG8a$rkqlra|kt-q_3xIKa5G|XX(4iK9uEhHx?9b5iJ+5=c@|}&k}BKv(oXt1)41J zf^fyQBpV#S>9GtX4TCy;`{AcUUsn^{Q~wU_;ojaJ(V@VyT1gJa%N3d6kl+z!FU=pf z)_w;|PY+8JAq5wGb&zn>`0(D3Pnl*>N#|WfmTYx&!xDHqh$DyCjo{+d3rm)|6Ek!p zqsd3gWu5S$z1m8Fu3$6fDF9^lJ}=LHF%id36A(U<8p2{?q*<Y5F#=tZCi3ee9SS)F0ZP^2hG^BPSLpWn5EV>R}5eu6vpP_CgDfz)BA_J zUC5!D%IEW+r|og}zLY-oe_-uPc0Z{nQ0CvN&?)#9irUDWX+S=#iK5mrCzL|&>tjwA zd+|d6xGOGfG?Vbc7gym!alS-l>K#L@RUw-o|8@%CaSo%Yoy}%OV_YbC$>YC>D3HI1 zahp?60Q9sgyd=w<11V6Iw?h;d2hsH|)B`brE=;e0ob4)~Xe6R_{kitA<9k4q<1o1m z`8O9T2SCM~s13z^zQ#?+zC_ZT)6E*y)BXu=G0vo zRL)vC+R_BvXZkZNP_L4+@X&?Dfm%E?F1^lom!s`X=-dBvG=8nU7c$h+Kt)_=V37Ct zbf?pVYp`$6OhLGlVKO%C@Z5Z>-GEE4U&=f#T_!opwUptu2SNJ=3e*Xi)ZOj491EWu zC0E5-(k@gmoVp)BZY#5w9DaCDowLndY)SQ#Dcei2PHV2#{%y;i`>bhNTsi#~R@>rz zzSzSd<^4uRwXL_4YfR?)Gy8z-4##_#=D`->f>9k7i|8sB`nQm+Z<2@{0%)S|Ez`)$ z!^Ly#TPh-sWh9>yb)G83tw9f`GFbv|4aXLYbe@S?x+|mAn)rfZ9RJ?S!+(X4VfvGHH7RlnA$~Fn7(4&?+5tw>{{}AwkZ31?u+qi9hh=y5 z5(&;_&)LqNMrQq8FvNKsU4IGq4U7L-&S|={0MJ{q#u{-6sTIl zNF}vyee;%i0<*bz+M~Fj`pNTDuVQMKX#CCEuXpGR<)UYCW9zEOr_zlEAEP(O_)C#! zsHyF47V4@l;wge2=i>|4;!H5I=ni#{rXTI=nCz1$;%S?JC$~2Mm0?rf2SxIK!AAmo z2gf9x=M(HhG2y7@#9Dlm;vg|K*3DOa|Ak)Bn!Jdjzql5BJB!%?Eg`i z5oc+>p6MiY3ah|}`ExBEgdL2MYEAohgzo04hHk~ZTOv_80lvZdfRHcg!rk7h?``dJ zLfBpEA)ymVht)J|Wh(BZe3-hjD3WgmzyoVLd5)j9SYvtule`>sb6*;3{kj9afdW^O zwNCyrCvvn4JwOb;FI#<8tZmTH)WK7Vq;A0VIE+e`tr{0o=)Z2l^53ff5^=*0ou9WJ zH|avgyTi)*PYK#n;WMUKhQVF%x_U zCiy$Y{MXemmdz7l-F!2eH&cFP$E{`PJ@AtlVF$mInm@uq^1?GEtMVlI-D1l!tOEVQ z4A^)PY_F|DvCSw4l%4X>B))To;=9q09d;wIL^9)!~Szr0g!o3oc9NXhnK!%e~= zlR@TM57+8kUi0SpWjU=w?i|7W>x{N~c6p#kwb7NpZ*h?SNKojkKHZh9;_0hNXLXU3 zeG?&#O@e8wHr7FyF&~_{bTiz6O&B0&R6Y<%csPZEvPSFmDOMRrSk;Jad6XG>xJi4 zTwnfED*Q_n`TF5|y{5GSQSYGXvkh^LqD9P%zo|amsxhUKvUSW%@UOFIp+p?FMPAY` z6bQ*SK_{1gItVO90`_rZGohE-c6@MZ#-)PO6ue$7-(o8MawDVsR?@;JJlkS*_H=bwRm7w!Axz4%^^gy-41gM}79U@<;EmAz zEkToKbeVcdML|^J`Of=P2s|srzGii_8y`_hR%y2b{z6%pAyIQQ-|*Kq+enNZapO(uk~iUu@@s=q|<+8r}Jbm%~pERnvO6 z$5oms$(y(pZp_V;l&^s~#>f~X|Mx7PuU7G4c--l_bALDWtX^nJ zlT3-IexQm_5btpf$VDBqF&q3?t!G|`UM}vE{B0`PoZF5)$I2MVp1SX(9m_J`dpLei z*nk6aQyS%K&UQnhe3E}9Gq}A!H{?$$)&ud|1Lt&&p1XpgE2I1GX>HCxK4?e*bK_3glKhi@%hmA!=qh#?opeau4(9$SNA9<^nJrZzCQGQ{i6s!3%~Bd z2>TN1iizup5jeYQ1vk{TdqEvB;=|4yrCY*L@#KPs8(E*Yr_VhMW`ccD)Cg3>VR+sW z^>3?vf@ia>ouI6r*)@AjRA|>Qy|Zhk*Wi2Fuz1JBItR^N?$uWTtSN6MtOo(Ds{#9_ ze&~FS^APC7sM&a%xlN*!b7B*9l-^hKSaIE}LZtyz0XcTudqAbI6nCZ$UgQ@Me4Ux* z>t^5wDy`uii+(yp#tq2!_^QWGf-!|1#m$tbjX4{rTE+67biPK985yjBOLJLBw-^u{ zad=Pd6NuntG%aEvc8{brB`1i?PxD1i_+{7s>aRi0FaP`n(4Rp1=XyE=1!?5yz+hcd HJ-Yt^*9VmC diff --git a/UMFPACK/Doc/umfpack_version.tex b/UMFPACK/Doc/umfpack_version.tex index e33c0327a0..e565684a71 100644 --- a/UMFPACK/Doc/umfpack_version.tex +++ b/UMFPACK/Doc/umfpack_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/UMFPACK -\date{VERSION 6.2.2, Oct 23, 2023} +\date{VERSION 6.3.0, Dec 30, 2023} diff --git a/UMFPACK/Include/umfpack.h b/UMFPACK/Include/umfpack.h index e8c1c80462..54623c631a 100644 --- a/UMFPACK/Include/umfpack.h +++ b/UMFPACK/Include/umfpack.h @@ -82,10 +82,10 @@ extern "C" { * below. */ -#define UMFPACK_DATE "Oct 23, 2023" +#define UMFPACK_DATE "Dec 30, 2023" #define UMFPACK_MAIN_VERSION 6 -#define UMFPACK_SUB_VERSION 2 -#define UMFPACK_SUBSUB_VERSION 2 +#define UMFPACK_SUB_VERSION 3 +#define UMFPACK_SUBSUB_VERSION 0 #define UMFPACK_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define UMFPACK_VER UMFPACK_VER_CODE(UMFPACK_MAIN_VERSION,UMFPACK_SUB_VERSION) diff --git a/UMFPACK/Makefile b/UMFPACK/Makefile index 04758fd641..1d83905273 100644 --- a/UMFPACK/Makefile +++ b/UMFPACK/Makefile @@ -53,10 +53,10 @@ all: library demos: library ( cd build && cmake $(CMAKE_OPTIONS) -DDEMO=1 .. && cmake --build . --config Release -j${JOBS} ) ( cd build && ./umfpack_simple ) - - ( cd build && ./umfpack_di_demo > umfpack_di_demo.out && ( command -v d2u && d2u umfpack_di_demo.out || true ) && diff -u umfpack_di_demo.out ../Demo/umfpack_di_demo.out ) - - ( cd build && ./umfpack_dl_demo > umfpack_dl_demo.out && ( command -v d2u && d2u umfpack_dl_demo.out || true ) && diff -u umfpack_dl_demo.out ../Demo/umfpack_dl_demo.out ) - - ( cd build && ./umfpack_zi_demo > umfpack_zi_demo.out && ( command -v d2u && d2u umfpack_zi_demo.out || true ) && diff -u umfpack_zi_demo.out ../Demo/umfpack_zi_demo.out ) - - ( cd build && ./umfpack_zl_demo > umfpack_zl_demo.out && ( command -v d2u && d2u umfpack_zl_demo.out || true ) && diff -u umfpack_zl_demo.out ../Demo/umfpack_zl_demo.out ) + - ( cd build && ./umfpack_di_demo > umfpack_di_demo.out && ( command -v d2u && d2u umfpack_di_demo.out || true ) && diff umfpack_di_demo.out ../Demo/umfpack_di_demo.out ) + - ( cd build && ./umfpack_dl_demo > umfpack_dl_demo.out && ( command -v d2u && d2u umfpack_dl_demo.out || true ) && diff umfpack_dl_demo.out ../Demo/umfpack_dl_demo.out ) + - ( cd build && ./umfpack_zi_demo > umfpack_zi_demo.out && ( command -v d2u && d2u umfpack_zi_demo.out || true ) && diff umfpack_zi_demo.out ../Demo/umfpack_zi_demo.out ) + - ( cd build && ./umfpack_zl_demo > umfpack_zl_demo.out && ( command -v d2u && d2u umfpack_zl_demo.out || true ) && diff umfpack_zl_demo.out ../Demo/umfpack_zl_demo.out ) # demos requiring a Fortran compiler fdemos: demos @@ -83,13 +83,13 @@ fdemos: demos ( cd build && ./readhb_size < ../Demo/HB/arc130.rua > tmp_Asize ) ( cd build && ./umf4 a 1e-6 ) ( cd build && ./umf4hb < ../Demo/HB/west0067.rua > umf4hb.out && ( command -v d2u && d2u umf4hb.out || true ) ) - - diff -u ./build/umf4hb.out ./Demo/umf4hb.out + - diff ./build/umf4hb.out ./Demo/umf4hb.out ( cd build && ./umf4hb64 < ../Demo/HB/west0067.rua > umf4hb64.out && ( command -v d2u && d2u umf4hb64.out || true ) ) - - diff -u ./build/umf4hb64.out ./Demo/umf4hb64.out + - diff ./build/umf4hb64.out ./Demo/umf4hb64.out ( cd build && ./umf4zhb < ../Demo/HB/qc324.cua > umf4zhb.out && ( command -v d2u && d2u umf4zhb.out || true ) ) - - diff -u ./build/umf4zhb.out ./Demo/umf4zhb.out + - diff ./build/umf4zhb.out ./Demo/umf4zhb.out ( cd build && ./umf4zhb64 < ../Demo/HB/qc324.cua > umf4zhb64.out && ( command -v d2u && d2u umf4zhb64.out || true ) ) - - diff -u ./build/umf4zhb64.out ./Demo/umf4zhb64.out + - diff ./build/umf4zhb64.out ./Demo/umf4zhb64.out cov: ( cd Tcov && $(MAKE) ) diff --git a/UMFPACK/Source/README.txt b/UMFPACK/Source/README.txt deleted file mode 100644 index 8b8df99a15..0000000000 --- a/UMFPACK/Source/README.txt +++ /dev/null @@ -1 +0,0 @@ -The amd_internal.h file must be an exact copy of AMD/Include/amd_internal.h. diff --git a/UMFPACK/Source/amd_internal.h b/UMFPACK/Source/amd_internal.h deleted file mode 100644 index 85d43930b6..0000000000 --- a/UMFPACK/Source/amd_internal.h +++ /dev/null @@ -1,280 +0,0 @@ -//------------------------------------------------------------------------------ -// AMD/Include/amd_internal.h: internal definitions for AMD -//------------------------------------------------------------------------------ - -// AMD, Copyright (c) 1996-2022, Timothy A. Davis, Patrick R. Amestoy, and -// Iain S. Duff. All Rights Reserved. -// SPDX-License-Identifier: BSD-3-clause - -//------------------------------------------------------------------------------ - -/* This file is for internal use in AMD itself, and does not normally need to - * be included in user code (it is included in UMFPACK, however). All others - * should use amd.h instead. - */ - -/* ========================================================================= */ -/* === NDEBUG ============================================================== */ -/* ========================================================================= */ - -/* - * Turning on debugging takes some work (see below). If you do not edit this - * file, then debugging is always turned off, regardless of whether or not - * -DNDEBUG is specified in your compiler options. - * - * If AMD is being compiled as a mexFunction, then MATLAB_MEX_FILE is defined, - * and mxAssert is used instead of assert. If debugging is not enabled, no - * MATLAB include files or functions are used. Thus, the AMD library libamd.a - * can be safely used in either a stand-alone C program or in another - * mexFunction, without any change. - */ - -/* - AMD will be exceedingly slow when running in debug mode. The next three - lines ensure that debugging is turned off. -*/ -#ifndef NDEBUG -#define NDEBUG -#endif - -/* - To enable debugging, uncomment the following line: -#undef NDEBUG -*/ - -#define SUITESPARSE_LIBRARY -#include "amd.h" - -/* ------------------------------------------------------------------------- */ -/* basic definitions */ -/* ------------------------------------------------------------------------- */ - -#ifdef FLIP -#undef FLIP -#endif - -#ifdef MAX -#undef MAX -#endif - -#ifdef MIN -#undef MIN -#endif - -#ifdef EMPTY -#undef EMPTY -#endif - -#define PRIVATE static - -/* FLIP is a "negation about -1", and is used to mark an integer i that is - * normally non-negative. FLIP (EMPTY) is EMPTY. FLIP of a number > EMPTY - * is negative, and FLIP of a number < EMTPY is positive. FLIP (FLIP (i)) = i - * for all integers i. UNFLIP (i) is >= EMPTY. */ -#define EMPTY (-1) -#define FLIP(i) (-(i)-2) -#define UNFLIP(i) ((i < EMPTY) ? FLIP (i) : (i)) - -/* for integer MAX/MIN, or for doubles when we don't care how NaN's behave: */ -#define MAX(a,b) (((a) > (b)) ? (a) : (b)) -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) - -/* logical expression of p implies q: */ -#define IMPLIES(p,q) (!(p) || (q)) - -/* Note that the IBM RS 6000 xlc predefines TRUE and FALSE in . */ -/* The Compaq Alpha also predefines TRUE and FALSE. */ -#ifdef TRUE -#undef TRUE -#endif -#ifdef FALSE -#undef FALSE -#endif - -#define TRUE (1) -#define FALSE (0) -#define EMPTY (-1) - -/* largest value of size_t */ -#ifndef SIZE_T_MAX -#ifdef SIZE_MAX -/* C99 only */ -#define SIZE_T_MAX SIZE_MAX -#else -#define SIZE_T_MAX ((size_t) (-1)) -#endif -#endif - -/* ------------------------------------------------------------------------- */ -/* integer type for AMD: int32_t or int64_t */ -/* ------------------------------------------------------------------------- */ - -#if defined (DLONG) || defined (ZLONG) - -#define Int int64_t -#define UInt uint64_t -#define ID "%" PRId64 -#define Int_MAX INT64_MAX - -#define AMD_order amd_l_order -#define AMD_defaults amd_l_defaults -#define AMD_control amd_l_control -#define AMD_info amd_l_info -#define AMD_1 amd_l1 -#define AMD_2 amd_l2 -#define AMD_valid amd_l_valid -#define AMD_aat amd_l_aat -#define AMD_postorder amd_l_postorder -#define AMD_post_tree amd_l_post_tree -#define AMD_dump amd_l_dump -#define AMD_debug amd_l_debug -#define AMD_debug_init amd_l_debug_init -#define AMD_preprocess amd_l_preprocess - -#else - -#define Int int32_t -#define UInt uint32_t -#define ID "%d" -#define Int_MAX INT32_MAX - -#define AMD_order amd_order -#define AMD_defaults amd_defaults -#define AMD_control amd_control -#define AMD_info amd_info -#define AMD_1 amd_1 -#define AMD_2 amd_2 -#define AMD_valid amd_valid -#define AMD_aat amd_aat -#define AMD_postorder amd_postorder -#define AMD_post_tree amd_post_tree -#define AMD_dump amd_dump -#define AMD_debug amd_debug -#define AMD_debug_init amd_debug_init -#define AMD_preprocess amd_preprocess - -#endif - -/* ------------------------------------------------------------------------- */ -/* AMD routine definitions (not user-callable) */ -/* ------------------------------------------------------------------------- */ - -size_t AMD_aat -( - Int n, - const Int Ap [ ], - const Int Ai [ ], - Int Len [ ], - Int Tp [ ], - double Info [ ] -) ; - -void AMD_1 -( - Int n, - const Int Ap [ ], - const Int Ai [ ], - Int P [ ], - Int Pinv [ ], - Int Len [ ], - Int slen, - Int S [ ], - double Control [ ], - double Info [ ] -) ; - -void AMD_postorder -( - Int nn, - Int Parent [ ], - Int Npiv [ ], - Int Fsize [ ], - Int Order [ ], - Int Child [ ], - Int Sibling [ ], - Int Stack [ ] -) ; - -Int AMD_post_tree -( - Int root, - Int k, - Int Child [ ], - const Int Sibling [ ], - Int Order [ ], - Int Stack [ ] -#ifndef NDEBUG - , Int nn -#endif -) ; - -void AMD_preprocess -( - Int n, - const Int Ap [ ], - const Int Ai [ ], - Int Rp [ ], - Int Ri [ ], - Int W [ ], - Int Flag [ ] -) ; - -/* ------------------------------------------------------------------------- */ -/* debugging definitions */ -/* ------------------------------------------------------------------------- */ - -#ifndef NDEBUG - -/* from assert.h: assert macro */ -#include - -extern Int AMD_debug ; - -void AMD_debug_init ( char *s ) ; - -void AMD_dump -( - Int n, - Int Pe [ ], - Int Iw [ ], - Int Len [ ], - Int iwlen, - Int pfree, - Int Nv [ ], - Int Next [ ], - Int Last [ ], - Int Head [ ], - Int Elen [ ], - Int Degree [ ], - Int W [ ], - Int nel -) ; - -#ifdef ASSERT -#undef ASSERT -#endif - -/* Use mxAssert if AMD is compiled into a mexFunction */ -#ifdef MATLAB_MEX_FILE -#define ASSERT(expression) (mxAssert ((expression), "")) -#else -#define ASSERT(expression) (assert (expression)) -#endif - -#define AMD_DEBUG0(params) { SUITESPARSE_PRINTF (params) ; } -#define AMD_DEBUG1(params) { if (AMD_debug >= 1) SUITESPARSE_PRINTF (params) ; } -#define AMD_DEBUG2(params) { if (AMD_debug >= 2) SUITESPARSE_PRINTF (params) ; } -#define AMD_DEBUG3(params) { if (AMD_debug >= 3) SUITESPARSE_PRINTF (params) ; } -#define AMD_DEBUG4(params) { if (AMD_debug >= 4) SUITESPARSE_PRINTF (params) ; } - -#else - -/* no debugging */ -#define ASSERT(expression) -#define AMD_DEBUG0(params) -#define AMD_DEBUG1(params) -#define AMD_DEBUG2(params) -#define AMD_DEBUG3(params) -#define AMD_DEBUG4(params) - -#endif diff --git a/UMFPACK/Source/umf_colamd.c b/UMFPACK/Source/umf_colamd.c index 0290cb2ca7..64f1fa2a7f 100644 --- a/UMFPACK/Source/umf_colamd.c +++ b/UMFPACK/Source/umf_colamd.c @@ -350,7 +350,7 @@ For more information, see: /* === Scaffolding code definitions ======================================== */ /* ========================================================================== */ -/* UMFPACK debugging control moved to amd_internal.h */ +/* UMFPACK debugging control moved to umf_internal.h */ /* Our "scaffolding code" philosophy: In our opinion, well-written library diff --git a/UMFPACK/Source/umf_config.h b/UMFPACK/Source/umf_config.h index f29be93587..5754154982 100644 --- a/UMFPACK/Source/umf_config.h +++ b/UMFPACK/Source/umf_config.h @@ -51,7 +51,7 @@ If the pivot is zero, and this flag is set, then no divide-by-zero occurs. - The following options are controlled by amd_internal.h: + The following options are controlled by umf_internal.h: -DMATLAB_MEX_FILE diff --git a/UMFPACK/Source/umf_dump.c b/UMFPACK/Source/umf_dump.c index fec3e3ff0f..2c7af3a188 100644 --- a/UMFPACK/Source/umf_dump.c +++ b/UMFPACK/Source/umf_dump.c @@ -713,7 +713,7 @@ void UMF_dump_memory return ; } - DEBUG6 (("S: "ID"\n", (Int) Numeric)) ; + DEBUG6 (("S: %p\n", Numeric)) ; DEBUG6 (("S->ihead : "ID"\n", Numeric->ihead)) ; DEBUG6 (("S->itail : "ID"\n", Numeric->itail)) ; DEBUG6 (("S->size : "ID"\n", Numeric->size)) ; @@ -810,7 +810,7 @@ void UMF_dump_packed_memory DEBUG6 (("No memory space S allocated\n")) ; return ; } - DEBUG6 (("S: "ID"\n", (Int) Numeric)) ; + DEBUG6 (("S: %p\n", Numeric)) ; DEBUG6 (("S->ihead : "ID"\n", Numeric->ihead)) ; DEBUG6 (("S->itail : "ID"\n", Numeric->itail)) ; DEBUG6 (("S->size : "ID"\n", Numeric->size)) ; diff --git a/UMFPACK/Source/umf_free.c b/UMFPACK/Source/umf_free.c index e85afb55ed..dd831d470e 100644 --- a/UMFPACK/Source/umf_free.c +++ b/UMFPACK/Source/umf_free.c @@ -25,7 +25,7 @@ void *UMF_free void *p ) { - DEBUG0 (("UMF_free: "ID"\n", (Int) p)) ; + DEBUG0 (("UMF_free: %p\n", p)) ; if (p) { diff --git a/UMFPACK/Source/umf_garbage_collection.c b/UMFPACK/Source/umf_garbage_collection.c index 5de2ad944f..4da71e210e 100644 --- a/UMFPACK/Source/umf_garbage_collection.c +++ b/UMFPACK/Source/umf_garbage_collection.c @@ -386,7 +386,7 @@ void UMF_garbage_collection pdest -= (size + 1) ; F2 = (Entry *) (pdest + 1) ; - ASSERT ((UInt) psrc + 1 + size <= (UInt) pnext) ; + ASSERT ((uintptr_t) psrc + 1 + size <= (uintptr_t) pnext) ; ASSERT (psrc <= pdest) ; ASSERT (F1 <= F2) ; @@ -538,7 +538,7 @@ void UMF_garbage_collection pdest -= (size2 + 1) ; ASSERT (size2 <= size) ; - ASSERT ((UInt) psrc + 1 + size <= (UInt) pnext) ; + ASSERT ((intptr_t) psrc + 1 + size <= (intptr_t) pnext) ; ASSERT (psrc <= pdest) ; p = pdest + 1 ; diff --git a/UMFPACK/Source/umf_internal.h b/UMFPACK/Source/umf_internal.h index 32cd486f69..a7ee7d0b72 100644 --- a/UMFPACK/Source/umf_internal.h +++ b/UMFPACK/Source/umf_internal.h @@ -80,19 +80,226 @@ #endif -/* -------------------------------------------------------------------------- */ -/* basic definitions (see also amd_internal.h) */ -/* -------------------------------------------------------------------------- */ +//------------------------------------------------------------------------------ +// debug +//------------------------------------------------------------------------------ -#define ONES_COMPLEMENT(r) (-(r)-1) +// force debugging off +#ifndef NDEBUG +#define NDEBUG +#endif -/* -------------------------------------------------------------------------- */ -/* AMD include file */ -/* -------------------------------------------------------------------------- */ +// To enable debugging, uncomment the following line: +// #undef NDEBUG + +//------------------------------------------------------------------------------ +// AMD and SuiteSparse_config +//------------------------------------------------------------------------------ -/* stdio.h, stdlib.h, limits.h, and math.h, NDEBUG definition, assert.h */ #define SUITESPARSE_BLAS_DEFINITIONS -#include "amd_internal.h" +#include "amd.h" +#include "SuiteSparse_config.h" + +/* ------------------------------------------------------------------------- */ +/* basic definitions */ +/* ------------------------------------------------------------------------- */ + +#define ONES_COMPLEMENT(r) (-(r)-1) + +#ifdef FLIP +#undef FLIP +#endif + +#ifdef MAX +#undef MAX +#endif + +#ifdef MIN +#undef MIN +#endif + +#ifdef EMPTY +#undef EMPTY +#endif + +#define PRIVATE static + +/* FLIP is a "negation about -1", and is used to mark an integer i that is + * normally non-negative. FLIP (EMPTY) is EMPTY. FLIP of a number > EMPTY + * is negative, and FLIP of a number < EMTPY is positive. FLIP (FLIP (i)) = i + * for all integers i. UNFLIP (i) is >= EMPTY. */ +#define EMPTY (-1) +#define FLIP(i) (-(i)-2) +#define UNFLIP(i) ((i < EMPTY) ? FLIP (i) : (i)) + +/* for integer MAX/MIN, or for doubles when we don't care how NaN's behave: */ +#define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) + +/* logical expression of p implies q: */ +#define IMPLIES(p,q) (!(p) || (q)) + +/* Note that the IBM RS 6000 xlc predefines TRUE and FALSE in . */ +/* The Compaq Alpha also predefines TRUE and FALSE. */ +#ifdef TRUE +#undef TRUE +#endif +#ifdef FALSE +#undef FALSE +#endif + +#define TRUE (1) +#define FALSE (0) +#define EMPTY (-1) + +/* largest value of size_t */ +#ifndef SIZE_T_MAX +#ifdef SIZE_MAX +/* C99 only */ +#define SIZE_T_MAX SIZE_MAX +#else +#define SIZE_T_MAX ((size_t) (-1)) +#endif +#endif + +/* ------------------------------------------------------------------------- */ +/* integer type for AMD: int32_t or int64_t */ +/* ------------------------------------------------------------------------- */ + +#if defined (DLONG) || defined (ZLONG) + + #define Int int64_t + #define UInt uint64_t + #define ID "%" PRId64 + #define Int_MAX INT64_MAX + + #define AMD_order amd_l_order + #define AMD_defaults amd_l_defaults + #define AMD_control amd_l_control + #define AMD_info amd_l_info + #define AMD_1 amd_l1 + #define AMD_2 amd_l2 + #define AMD_valid amd_l_valid + #define AMD_aat amd_l_aat + #define AMD_postorder amd_l_postorder + #define AMD_post_tree amd_l_post_tree + #define AMD_debug_init amd_l_debug_init + #define AMD_preprocess amd_l_preprocess + +#else + + #define Int int32_t + #define UInt uint32_t + #define ID "%d" + #define Int_MAX INT32_MAX + + #define AMD_order amd_order + #define AMD_defaults amd_defaults + #define AMD_control amd_control + #define AMD_info amd_info + #define AMD_1 amd_1 + #define AMD_2 amd_2 + #define AMD_valid amd_valid + #define AMD_aat amd_aat + #define AMD_postorder amd_postorder + #define AMD_post_tree amd_post_tree + #define AMD_debug_init amd_debug_init + #define AMD_preprocess amd_preprocess + +#endif + +/* ------------------------------------------------------------------------- */ +/* AMD routine definitions (not user-callable) */ +/* ------------------------------------------------------------------------- */ + +size_t AMD_aat +( + Int n, + const Int Ap [ ], + const Int Ai [ ], + Int Len [ ], + Int Tp [ ], + double Info [ ] +) ; + +void AMD_1 +( + Int n, + const Int Ap [ ], + const Int Ai [ ], + Int P [ ], + Int Pinv [ ], + Int Len [ ], + Int slen, + Int S [ ], + double Control [ ], + double Info [ ] +) ; + +void AMD_postorder +( + Int nn, + Int Parent [ ], + Int Npiv [ ], + Int Fsize [ ], + Int Order [ ], + Int Child [ ], + Int Sibling [ ], + Int Stack [ ] +) ; + +Int AMD_post_tree +( + Int root, + Int k, + Int Child [ ], + const Int Sibling [ ], + Int Order [ ], + Int Stack [ ] +#ifndef NDEBUG + , Int nn +#endif +) ; + +void AMD_preprocess +( + Int n, + const Int Ap [ ], + const Int Ai [ ], + Int Rp [ ], + Int Ri [ ], + Int W [ ], + Int Flag [ ] +) ; + +/* ------------------------------------------------------------------------- */ +/* debugging definitions */ +/* ------------------------------------------------------------------------- */ + +#ifndef NDEBUG + +/* from assert.h: assert macro */ +#include + +void AMD_debug_init ( char *s ) ; + +#ifdef ASSERT +#undef ASSERT +#endif + +/* Use mxAssert if AMD is compiled into a mexFunction */ +#ifdef MATLAB_MEX_FILE +#define ASSERT(expression) (mxAssert ((expression), "")) +#else +#define ASSERT(expression) (assert (expression)) +#endif + +#else + +/* no debugging */ +#define ASSERT(expression) + +#endif /* -------------------------------------------------------------------------- */ /* MATLAB include files */ diff --git a/UMFPACK/Source/umf_malloc.c b/UMFPACK/Source/umf_malloc.c index d6fbfb1d63..0c0e7d587d 100644 --- a/UMFPACK/Source/umf_malloc.c +++ b/UMFPACK/Source/umf_malloc.c @@ -65,7 +65,7 @@ void *UMF_malloc p = SuiteSparse_malloc (n_objects, size_of_object) ; - DEBUG0 ((ID"\n", (Int) p)) ; + DEBUG0 (("%p \n", p)) ; #if defined (UMF_MALLOC_COUNT) || !defined (NDEBUG) if (p) diff --git a/UMFPACK/Source/umf_realloc.c b/UMFPACK/Source/umf_realloc.c index c630683f5c..694e205dd8 100644 --- a/UMFPACK/Source/umf_realloc.c +++ b/UMFPACK/Source/umf_realloc.c @@ -53,8 +53,8 @@ void *UMF_realloc } size *= size_of_object ; - DEBUG0 (("UMF_realloc: "ID" n_objects "ID" size_of_object "ID"\n", - (Int) p, n_objects, (Int) size_of_object)) ; + DEBUG0 (("UMF_realloc: %p n_objects "ID" size_of_object %zu\n", + p, n_objects, size_of_object)) ; p2 = SuiteSparse_config_realloc (p, size) ; @@ -67,8 +67,8 @@ void *UMF_realloc } #endif - DEBUG0 (("UMF_realloc: "ID" new malloc count "ID"\n", - (Int) p2, UMF_malloc_count)) ; + DEBUG0 (("UMF_realloc: %p new malloc count "ID"\n", + p2, UMF_malloc_count)) ; return (p2) ; } diff --git a/UMFPACK/Source/umf_version.h b/UMFPACK/Source/umf_version.h index b898e0cb7d..67006331f3 100644 --- a/UMFPACK/Source/umf_version.h +++ b/UMFPACK/Source/umf_version.h @@ -27,7 +27,7 @@ #endif /* -------------------------------------------------------------------------- */ -/* integer type (Int is int32_t or int64_t) defined in amd_internal.h */ +/* integer type (Int is int32_t or int64_t) defined in umf_internal.h */ /* -------------------------------------------------------------------------- */ #if defined (DLONG) || defined (ZLONG) diff --git a/UMFPACK/Source/umfpack_numeric.c b/UMFPACK/Source/umfpack_numeric.c index b5fcf19377..2d4a93fa48 100644 --- a/UMFPACK/Source/umfpack_numeric.c +++ b/UMFPACK/Source/umfpack_numeric.c @@ -393,7 +393,7 @@ int UMFPACK_numeric * from size n_col+1 to size ulen + 1. If ulen is zero, the object does * not exist. */ - DEBUG4 (("ulen: "ID" Upattern "ID"\n", ulen, (Int) Numeric->Upattern)) ; + DEBUG4 (("ulen: "ID" Upattern %p\n", ulen, Numeric->Upattern)) ; ASSERT (IMPLIES (ulen == 0, Numeric->Upattern == (Int *) NULL)) ; if (ulen > 0 && ulen < n_col) { diff --git a/UMFPACK/Source/umfpack_qsymbolic.c b/UMFPACK/Source/umfpack_qsymbolic.c index 855d5db735..156928a7a9 100644 --- a/UMFPACK/Source/umfpack_qsymbolic.c +++ b/UMFPACK/Source/umfpack_qsymbolic.c @@ -219,7 +219,6 @@ PRIVATE int do_amd_1 for (k = 0 ; k < n ; k++) { - AMD_DEBUG1 (("Construct row/column k= "ID" of A+A'\n", k)) ; p1 = Ap [k] ; p2 = Ap [k+1] ;