diff --git a/ChangeLog b/ChangeLog index 337974d5c..a31e9ae5e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Sept 18, 2023: version 7.2.1 + + * UMFPACK v6.2.1 and GPUQREngine v3.2.1: copies internal include files + from other SuiteSparse packages (AMD and SuiteSparse_GPURuntime), + so these two packages can be built independently. + Sept 8, 2023: version 7.2.0 * build system: modern cmake structure, by Markus Muetzel. diff --git a/GPUQREngine/CMakeLists.txt b/GPUQREngine/CMakeLists.txt index eb34fe798..1a592b016 100644 --- a/GPUQREngine/CMakeLists.txt +++ b/GPUQREngine/CMakeLists.txt @@ -12,10 +12,10 @@ cmake_minimum_required ( VERSION 3.20 ) -set ( GPUQRENGINE_DATE "Sept 8, 2023" ) +set ( GPUQRENGINE_DATE "Sept 18, 2023" ) set ( GPUQRENGINE_VERSION_MAJOR 3 ) set ( GPUQRENGINE_VERSION_MINOR 2 ) -set ( GPUQRENGINE_VERSION_SUB 0 ) +set ( GPUQRENGINE_VERSION_SUB 1 ) message ( STATUS "Building GPUQRENGINE version: v" ${GPUQRENGINE_VERSION_MAJOR}. diff --git a/GPUQREngine/Doc/ChangeLog b/GPUQREngine/Doc/ChangeLog index db8e65d60..774ac8153 100644 --- a/GPUQREngine/Doc/ChangeLog +++ b/GPUQREngine/Doc/ChangeLog @@ -1,3 +1,8 @@ +Sept 18, 2023: version 3.2.1 + + * SuiteSparse_GPURuntime: internal include files copied into + GPUQREngine/Include + Sept 8, 2023: version 3.2.0 * cmake updates: SuiteSparse:: namespace by Markus Muetzel diff --git a/GPUQREngine/Include/GPUQREngine.hpp b/GPUQREngine/Include/GPUQREngine.hpp index 498942837..b262c9346 100644 --- a/GPUQREngine/Include/GPUQREngine.hpp +++ b/GPUQREngine/Include/GPUQREngine.hpp @@ -12,10 +12,10 @@ #define GPUQRENGINE_HPP // Version information: -#define GPUQRENGINE_DATE "Sept 8, 2023" +#define GPUQRENGINE_DATE "Sept 18, 2023" #define GPUQRENGINE_MAIN_VERSION 3 #define GPUQRENGINE_SUB_VERSION 2 -#define GPUQRENGINE_SUBSUB_VERSION 0 +#define GPUQRENGINE_SUBSUB_VERSION 1 #define GPUQRENGINE_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define GPUQRENGINE_VERSION \ diff --git a/GPUQREngine/Include/README.txt b/GPUQREngine/Include/README.txt new file mode 100644 index 000000000..96ecfa75b --- /dev/null +++ b/GPUQREngine/Include/README.txt @@ -0,0 +1,8 @@ +The following files must be exact copies of the files in +SuiteSparse_GPURuntime/Include: + + SuiteSparseGPU_debug.hpp + SuiteSparseGPU_internal.hpp + SuiteSparseGPU_macros.hpp + SuiteSparseGPU_Workspace.hpp + SuiteSparseGPU_workspace_macros.hpp diff --git a/GPUQREngine/Include/SuiteSparseGPU_Workspace.hpp b/GPUQREngine/Include/SuiteSparseGPU_Workspace.hpp new file mode 100644 index 000000000..620404b16 --- /dev/null +++ b/GPUQREngine/Include/SuiteSparseGPU_Workspace.hpp @@ -0,0 +1,116 @@ +// ============================================================================= +// === SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Workspace.hpp ============= +// ============================================================================= + +// SuiteSparse_GPURuntime, Copyright (c) 2013-2016, Timothy A Davis, +// Sencer Nuri Yeralan, and Sanjay Ranka. All Rights Reserved. +// SPDX-License-Identifier: GPL-2.0+ + +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_GPURUNTIME_WORKSPACE_HPP +#define SUITESPARSE_GPURUNTIME_WORKSPACE_HPP + +#include "SuiteSparseGPU_internal.hpp" + +class Workspace +{ +private: + + size_t nitems; // number of items to allocate + size_t size_of_item; // size of each item, in bytes + size_t totalSize; // nitems * size_of_item + +// bool lazyAllocate; // no longer used (for possible future use) + bool pageLocked; // true if CPU memory is pagelocked + + void *cpuReference; // pointer to CPU memory + void *gpuReference; // pointer to GPU memory + +public: + // Read-Only Properties + size_t getCount(void){ return nitems; } + size_t getStride(void){ return size_of_item; } + void *cpu(void){ return cpuReference; } + void *gpu(void){ return gpuReference; } + + // Constructor/Destructor + void *operator new(size_t bytes, Workspace* ptr){ return ptr; } + Workspace(size_t nitems, size_t size_of_item); + ~Workspace(); + + // Memory management wrappers + static void *cpu_malloc(size_t nitems, size_t size_of_item, + bool pageLocked=false); + static void *cpu_calloc(size_t nitems, size_t size_of_item, + bool pageLocked=false); + static void *cpu_free(void *address, bool pageLocked = false); + static void *gpu_malloc(size_t nitems, size_t size_of_item); + static void *gpu_calloc(size_t nitems, size_t size_of_item); + static void *gpu_free(void *); + + // Workspace management + static Workspace *allocate + ( + size_t nitems, // number of items to allocate + size_t size_of_item, // size of each item, in bytes + bool doCalloc = false, // if true, then calloc; else malloc + bool cpuAlloc = true, // if true, then allocate CPU memory + bool gpuAlloc = true, // if true, then allocate GPU memory + bool pageLocked = false // true if CPU memory is pagelocked + ); + + // destroy workspace, freeing memory on both the CPU and GPU + static Workspace *destroy + ( + Workspace *address + ); + + // Reference manipulation functions + template void extract(T *cpu_arg, T *gpu_arg) + { + *cpu_arg = (T) cpuReference; + *gpu_arg = (T) gpuReference; + } + void assign(void *cpu_arg, void *gpu_arg) + { + cpuReference = cpu_arg; + gpuReference = gpu_arg; + } + +// unused, left commented out for possible future use +// void setLazy() +// { +// lazyAllocate = true; +// } + + // Memory management for workspaces + virtual bool ws_malloc(bool cpuAlloc = true, bool gpuAlloc = true); + virtual bool ws_calloc(bool cpuAlloc = true, bool gpuAlloc = true); + virtual void ws_free(bool cpuFree=true, bool gpuFree=true); + + // GPU-CPU transfer routines + virtual bool transfer(cudaMemcpyKind direction, bool synchronous=true, + cudaStream_t stream=0); + + // CPU & GPU memory functions + // memset functions unused, left commented out for possible future use + // bool gpu_memset(size_t newValue); + // bool cpu_memset(size_t newValue); + + // Debug +#if DEBUG_ATLEAST_ERRORONLY + static void print(Workspace *workspace) + { + printf ( + "(%ld,%ld) has %ld entries of size %ld each.\n", + (size_t) workspace->cpu(), + (size_t) workspace->gpu(), + workspace->getCount(), + workspace->getStride() + ); + } +#endif +}; + +#endif diff --git a/GPUQREngine/Include/SuiteSparseGPU_debug.hpp b/GPUQREngine/Include/SuiteSparseGPU_debug.hpp new file mode 100644 index 000000000..cf3da1215 --- /dev/null +++ b/GPUQREngine/Include/SuiteSparseGPU_debug.hpp @@ -0,0 +1,49 @@ +// ============================================================================= +// === SuiteSparse_GPURuntime/Include/SuiteSparseGPU_debug.hpp ================= +// ============================================================================= + +// SuiteSparse_GPURuntime, Copyright (c) 2013-2016, Timothy A Davis, +// Sencer Nuri Yeralan, and Sanjay Ranka. All Rights Reserved. +// SPDX-License-Identifier: GPL-2.0+ + +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_GPURUNTIME_DEBUG_HPP +#define SUITESPARSE_GPURUNTIME_DEBUG_HPP + +#define GPURUNTIME_DLEVEL_OFF 0 +#define GPURUNTIME_DLEVEL_ERRORONLY 1 +#define GPURUNTIME_DLEVEL_CASUAL 2 +#define GPURUNTIME_DLEVEL_VERBOSE 3 +#define GPURUNTIME_DLEVEL_EXTREME 4 + +//------------------------------------------------------------------------------ +// force debugging off +//------------------------------------------------------------------------------ + +#ifndef NDEBUG +#define NDEBUG +#endif + +// uncomment this line to turn on debugging +// #undef NDEBUG + +//------------------------------------------------------------------------------ + +#ifndef NDEBUG +#define GPURUNTIME_DLEVEL GPURUNTIME_DLEVEL_CASUAL +#else +// no debugging +#define GPURUNTIME_DLEVEL GPURUNTIME_DLEVEL_OFF +#endif + +#define DEBUG_ATLEAST_ERRORONLY (GPURUNTIME_DLEVEL >= GPURUNTIME_DLEVEL_ERRORONLY) +#define DEBUG_ATLEAST_CASUAL (GPURUNTIME_DLEVEL >= GPURUNTIME_DLEVEL_CASUAL) +#define DEBUG_ATLEAST_VERBOSE (GPURUNTIME_DLEVEL >= GPURUNTIME_DLEVEL_VERBOSE) +#define DEBUG_ATLEAST_EXTREME (GPURUNTIME_DLEVEL >= GPURUNTIME_DLEVEL_EXTREME) + +#ifndef GPURUNTIME_LOGFILE_PATH +#define GPURUNTIME_LOGFILE_PATH "SuiteSparse_GPURuntime-logfile.txt" +#endif + +#endif diff --git a/GPUQREngine/Include/SuiteSparseGPU_internal.hpp b/GPUQREngine/Include/SuiteSparseGPU_internal.hpp new file mode 100644 index 000000000..6a61f1c32 --- /dev/null +++ b/GPUQREngine/Include/SuiteSparseGPU_internal.hpp @@ -0,0 +1,35 @@ +// ============================================================================= +// SuiteSparse_GPURuntime/Include/SuiteSparseGPU_internal.hpp +// ============================================================================= + +// SuiteSparse_GPURuntime, Copyright (c) 2013-2016, Timothy A Davis, +// Sencer Nuri Yeralan, and Sanjay Ranka. All Rights Reserved. +// SPDX-License-Identifier: GPL-2.0+ + +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSEGPU_INTERNAL_HPP +#define SUITESPARSEGPU_INTERNAL_HPP + +#ifdef SUITESPARSE_CUDA + + #include "cuda_runtime.h" + #include "SuiteSparse_config.h" + + #include + + #include "SuiteSparseGPU_macros.hpp" + + #if DEBUG_ATLEAST_ERRORONLY + #include + #endif + + class Workspace; + + #include "SuiteSparseGPU_Workspace.hpp" + +#endif + +#include "SuiteSparse_GPURuntime.hpp" + +#endif diff --git a/GPUQREngine/Include/SuiteSparseGPU_macros.hpp b/GPUQREngine/Include/SuiteSparseGPU_macros.hpp new file mode 100644 index 000000000..298ff63d3 --- /dev/null +++ b/GPUQREngine/Include/SuiteSparseGPU_macros.hpp @@ -0,0 +1,21 @@ +// ============================================================================= +// === SuiteSparse_GPURuntime/Include/SuiteSparseGPU_macros.hpp ================ +// ============================================================================= + +// SuiteSparse_GPURuntime, Copyright (c) 2013-2016, Timothy A Davis, +// Sencer Nuri Yeralan, and Sanjay Ranka. All Rights Reserved. +// SPDX-License-Identifier: GPL-2.0+ + +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_GPURUNTIME_MACROS_HPP +#define SUITESPARSE_GPURUNTIME_MACROS_HPP + +#ifndef IMPLIES +#define IMPLIES(p,q) (!(p) || ((p) && (q))) +#endif + +#include "SuiteSparseGPU_debug.hpp" +#include "SuiteSparseGPU_workspace_macros.hpp" + +#endif diff --git a/GPUQREngine/Include/SuiteSparseGPU_workspace_macros.hpp b/GPUQREngine/Include/SuiteSparseGPU_workspace_macros.hpp new file mode 100644 index 000000000..0f11d0467 --- /dev/null +++ b/GPUQREngine/Include/SuiteSparseGPU_workspace_macros.hpp @@ -0,0 +1,24 @@ +// ============================================================================= +// SuiteSparse_GPURuntime/Include/SuiteSparseGPU_workspace_macros.hpp +// ============================================================================= + +// SuiteSparse_GPURuntime, Copyright (c) 2013-2016, Timothy A Davis, +// Sencer Nuri Yeralan, and Sanjay Ranka. All Rights Reserved. +// SPDX-License-Identifier: GPL-2.0+ + +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_GPURUNTIME_WORKSPACE_MACROS_HPP +#define SUITESPARSE_GPURUNTIME_WORKSPACE_MACROS_HPP + +#ifndef GPU_REFERENCE +#define GPU_REFERENCE(WORKSPACE, TYPE) \ + ((TYPE) (WORKSPACE != NULL ? (WORKSPACE)->gpu() : NULL)) +#endif + +#ifndef CPU_REFERENCE +#define CPU_REFERENCE(WORKSPACE, TYPE) \ + ((TYPE) (WORKSPACE != NULL ? (WORKSPACE)->cpu() : NULL)) +#endif + +#endif diff --git a/Mongoose/CMakeLists.txt b/Mongoose/CMakeLists.txt index 6eb258c74..3572a8b49 100644 --- a/Mongoose/CMakeLists.txt +++ b/Mongoose/CMakeLists.txt @@ -43,11 +43,11 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- -set(Mongoose_DATE "Sept 8, 2023") -set(Mongoose_NUMERIC_DATE "2023-09-08") +set(Mongoose_DATE "Sept 18, 2023") +set(Mongoose_NUMERIC_DATE "2023-09-18") set(Mongoose_VERSION_MAJOR 3) set(Mongoose_VERSION_MINOR 2) -set(Mongoose_VERSION_PATCH 0) +set(Mongoose_VERSION_PATCH 1) project(Mongoose VERSION "${Mongoose_VERSION_MAJOR}.${Mongoose_VERSION_MINOR}.${Mongoose_VERSION_PATCH}" diff --git a/Mongoose/Doc/ChangeLog b/Mongoose/Doc/ChangeLog index a15f7efd3..75ba1a0f2 100644 --- a/Mongoose/Doc/ChangeLog +++ b/Mongoose/Doc/ChangeLog @@ -1,3 +1,8 @@ +Sept 18, 2023: version 3.2.1 + + * cmake updates: link executables to SuiteSparse_config that depend on it; + by Markus Muetzel + Sept 8, 2023: version 3.2.0 * cmake updates: SuiteSparse:: namespace by Markus Muetzel diff --git a/Mongoose/Doc/Mongoose_UserGuide.pdf b/Mongoose/Doc/Mongoose_UserGuide.pdf index 38ac224a1..5b5c3ae55 100644 Binary files a/Mongoose/Doc/Mongoose_UserGuide.pdf and b/Mongoose/Doc/Mongoose_UserGuide.pdf differ diff --git a/Mongoose/Doc/title-info.tex b/Mongoose/Doc/title-info.tex index 071ffb6e5..f10e44229 100644 --- a/Mongoose/Doc/title-info.tex +++ b/Mongoose/Doc/title-info.tex @@ -1,3 +1,3 @@ -\title{Mongoose User Guide, Version 3.2.0} +\title{Mongoose User Guide, Version 3.2.1} \author{Scott Kolodziej, Nuri Yeralan, Tim Davis, William W. Hager} -\date{Sept 8, 2023} +\date{Sept 18, 2023} diff --git a/Mongoose/Include/Mongoose.hpp b/Mongoose/Include/Mongoose.hpp index 286065378..5a921bf53 100644 --- a/Mongoose/Include/Mongoose.hpp +++ b/Mongoose/Include/Mongoose.hpp @@ -20,8 +20,8 @@ // Configuration information from CMake #define Mongoose_VERSION_MAJOR 3 #define Mongoose_VERSION_MINOR 2 -#define Mongoose_VERSION_PATCH 0 -#define Mongoose_DATE "Sept 8, 2023" +#define Mongoose_VERSION_PATCH 1 +#define Mongoose_DATE "Sept 18, 2023" namespace Mongoose { diff --git a/Mongoose/codemeta.json b/Mongoose/codemeta.json index e263981b1..e92b9fe1c 100644 --- a/Mongoose/codemeta.json +++ b/Mongoose/codemeta.json @@ -7,8 +7,8 @@ "codeRepository": "https://github.com/ScottKolo/Mongoose", "issueTracker": "https://github.com/ScottKolo/Mongoose/issues", "license": "https://spdx.org/licenses/GPL-3.0-only.html", - "version": "3.2.0", - "softwareVersion": "3.2.0", + "version": "3.2.1", + "softwareVersion": "3.2.1", "author": [ { "@type": "Person", @@ -47,7 +47,7 @@ }, "contIntegration": "https://travis-ci.com/ScottKolo/Mongoose", "developmentStatus": "active", - "downloadUrl": "https://github.com/ScottKolo/Mongoose/archive/v3.2.0.zip", + "downloadUrl": "https://github.com/ScottKolo/Mongoose/archive/v3.2.1.zip", "funding":"Office of Naval Research grant N00014-11-1-0068", "funding":"Office of Naval Research grant N00014-15-1-2048", "funding":"Office of Naval Research grant N00014-18-1-2100", @@ -66,7 +66,7 @@ ], "dateCreated":"2018-04-09", "datePublished":"2018-05-25", - "dateModified":"2023-09-08", + "dateModified":"2023-09-18", "programmingLanguage": "C++", "programmingLanguage": "MATLAB" } diff --git a/README.md b/README.md index 06a717a2f..366bc79a4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ SuiteSparse: A Suite of Sparse matrix packages at http://suitesparse.com ----------------------------------------------------------------------------- -Sept 8, 2023, SuiteSparse VERSION 7.2.0 +Sept 18, 2023, SuiteSparse VERSION 7.2.1 SuiteSparse is a set of sparse-matrix-related packages written or co-authored by Tim Davis, available at https://github.com/DrTimothyAldenDavis/SuiteSparse . diff --git a/SuiteSparse_config/CMakeLists.txt b/SuiteSparse_config/CMakeLists.txt index efc1e6400..9019317ca 100644 --- a/SuiteSparse_config/CMakeLists.txt +++ b/SuiteSparse_config/CMakeLists.txt @@ -14,10 +14,10 @@ cmake_minimum_required ( VERSION 3.22 ) # version of both SuiteSparse and SuiteSparse_config -set ( SUITESPARSE_DATE "Sept 8, 2023" ) +set ( SUITESPARSE_DATE "Sept 18, 2023" ) set ( SUITESPARSE_VERSION_MAJOR 7 ) set ( SUITESPARSE_VERSION_MINOR 2 ) -set ( SUITESPARSE_VERSION_SUB 0 ) +set ( SUITESPARSE_VERSION_SUB 1 ) message ( STATUS "Building SuiteSparse_config version: v" ${SUITESPARSE_VERSION_MAJOR}. diff --git a/SuiteSparse_config/SuiteSparse_config.h b/SuiteSparse_config/SuiteSparse_config.h index e28fd0989..06ff2d72c 100644 --- a/SuiteSparse_config/SuiteSparse_config.h +++ b/SuiteSparse_config/SuiteSparse_config.h @@ -409,10 +409,10 @@ int SuiteSparse_version // returns SUITESPARSE_VERSION #define SUITESPARSE_HAS_VERSION_FUNCTION -#define SUITESPARSE_DATE "Sept 8, 2023" +#define SUITESPARSE_DATE "Sept 18, 2023" #define SUITESPARSE_MAIN_VERSION 7 #define SUITESPARSE_SUB_VERSION 2 -#define SUITESPARSE_SUBSUB_VERSION 0 +#define SUITESPARSE_SUBSUB_VERSION 1 #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SUITESPARSE_VERSION \ diff --git a/UMFPACK/CMakeLists.txt b/UMFPACK/CMakeLists.txt index 4c0e52850..56b4432b7 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 "Sept 8, 2023" ) +set ( UMFPACK_DATE "Sept 18, 2023" ) set ( UMFPACK_VERSION_MAJOR 6 ) set ( UMFPACK_VERSION_MINOR 2 ) -set ( UMFPACK_VERSION_SUB 0 ) +set ( UMFPACK_VERSION_SUB 1 ) message ( STATUS "Building UMFPACK version: v" ${UMFPACK_VERSION_MAJOR}. diff --git a/UMFPACK/Demo/umf4hb.out b/UMFPACK/Demo/umf4hb.out index 3846d7db7..f822bfed4 100644 --- a/UMFPACK/Demo/umf4hb.out +++ b/UMFPACK/Demo/umf4hb.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 2023), Control: Matrix entry defined as: double Int (generic integer) defined as: int32_t @@ -38,7 +38,7 @@ UMFPACK V6.2.0 (Sept 8, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: numeric factorization defragmentations: 1 numeric factorization reallocations: 1 costly numeric factorization reallocations: 1 - numeric factorization wallclock time (sec): 0.02 - numeric factorization mflops (wallclock): 0.10 + numeric factorization wallclock time (sec): 0.01 + numeric factorization mflops (wallclock): 0.34 solve flops: 1.20800e+03 iterative refinement steps taken: 0 @@ -128,7 +128,7 @@ symbolic analysis: nnz (U): 902. numeric factorization: status: 0. - time: 0.25E-01 + time: 0.77E-02 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 498b5910e..068a9e8fc 100644 --- a/UMFPACK/Demo/umf4hb64.out +++ b/UMFPACK/Demo/umf4hb64.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 2023), Control: Matrix entry defined as: double Int (generic integer) defined as: int64_t @@ -38,7 +38,7 @@ UMFPACK V6.2.0 (Sept 8, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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 diff --git a/UMFPACK/Demo/umf4zhb.out b/UMFPACK/Demo/umf4zhb.out index e7b57f10a..da09a3ca4 100644 --- a/UMFPACK/Demo/umf4zhb.out +++ b/UMFPACK/Demo/umf4zhb.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 2023), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int32_t @@ -38,7 +38,7 @@ UMFPACK V6.2.0 (Sept 8, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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 @@ -120,9 +120,9 @@ UMFPACK V6.2.0 (Sept 8, 2023), Info: numeric factorization reallocations: 0 costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.02 - numeric factorization mflops (wallclock): 796.37 + numeric factorization mflops (wallclock): 783.23 symbolic + numeric wall clock time (sec): 0.02 - symbolic + numeric mflops (wall clock): 721.98 + symbolic + numeric mflops (wall clock): 712.11 solve flops: 3.70332e+05 iterative refinement steps taken: 0 @@ -134,7 +134,7 @@ UMFPACK V6.2.0 (Sept 8, 2023), Info: Matrix key: QC324 symbolic analysis: status: 0. - time: 0.19E-02 (sec) + time: 0.18E-02 (sec) estimates (upper bound) for numeric LU: size of LU: 1.17 (MB) memory needed: 2.40 (MB) diff --git a/UMFPACK/Demo/umf4zhb64.out b/UMFPACK/Demo/umf4zhb64.out index ae6ad0ae0..b857c4c33 100644 --- a/UMFPACK/Demo/umf4zhb64.out +++ b/UMFPACK/Demo/umf4zhb64.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 2023), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int64_t @@ -38,7 +38,7 @@ UMFPACK V6.2.0 (Sept 8, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: numeric factorization defragmentations: 0 numeric factorization reallocations: 0 costly numeric factorization reallocations: 0 - numeric factorization wallclock time (sec): 0.04 - numeric factorization mflops (wallclock): 407.98 - symbolic + numeric wall clock time (sec): 0.04 - symbolic + numeric mflops (wall clock): 383.46 + 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 solve flops: 3.70332e+05 iterative refinement steps taken: 0 @@ -143,7 +143,7 @@ symbolic analysis: nnz (U): 39609. numeric factorization: status: 0. - time: 0.35E-01 + time: 0.15E-01 actual numeric LU statistics: size of LU: 0.74 (MB) memory needed: 1.38 (MB) diff --git a/UMFPACK/Demo/umfpack_di_demo.out b/UMFPACK/Demo/umfpack_di_demo.out index 6df673a35..3d3e74a20 100644 --- a/UMFPACK/Demo/umfpack_di_demo.out +++ b/UMFPACK/Demo/umfpack_di_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 8, 2023) demo: _di_ version +UMFPACK V6.2 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 2023): OK -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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 diff --git a/UMFPACK/Demo/umfpack_dl_demo.out b/UMFPACK/Demo/umfpack_dl_demo.out index 60e209f5d..fa481ff22 100644 --- a/UMFPACK/Demo/umfpack_dl_demo.out +++ b/UMFPACK/Demo/umfpack_dl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 8, 2023) demo: _dl_ version +UMFPACK V6.2 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 2023): OK -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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 diff --git a/UMFPACK/Demo/umfpack_simple.out b/UMFPACK/Demo/umfpack_simple.out index a069d0155..cb5595086 100644 --- a/UMFPACK/Demo/umfpack_simple.out +++ b/UMFPACK/Demo/umfpack_simple.out @@ -1,4 +1,4 @@ -UMFPACK V6.2.0 (Sept 8, 2023) +UMFPACK V6.2.1 (Sept 18, 2023) UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. UMFPACK License: SPDX-License-Identifier: GPL-2.0+ diff --git a/UMFPACK/Demo/umfpack_zi_demo.out b/UMFPACK/Demo/umfpack_zi_demo.out index da79c43ab..349405427 100644 --- a/UMFPACK/Demo/umfpack_zi_demo.out +++ b/UMFPACK/Demo/umfpack_zi_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 8, 2023) demo: _zi_ version +UMFPACK V6.2 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 2023): OK -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: numeric factorization reallocations: 1 costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 - numeric factorization mflops (wallclock): 0.01 + numeric factorization mflops (wallclock): 0.02 solve flops: 1.02800e+03 iterative refinement steps taken: 1 @@ -346,7 +346,7 @@ UMFPACK V6.2.0 (Sept 8, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: numeric factorization reallocations: 1 costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 - numeric factorization mflops (wallclock): 0.01 + numeric factorization mflops (wallclock): 0.02 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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 diff --git a/UMFPACK/Demo/umfpack_zl_demo.out b/UMFPACK/Demo/umfpack_zl_demo.out index c3c58fc39..40bf13ce4 100644 --- a/UMFPACK/Demo/umfpack_zl_demo.out +++ b/UMFPACK/Demo/umfpack_zl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.2 (Sept 8, 2023) demo: _zl_ version +UMFPACK V6.2 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 2023): OK -UMFPACK V6.2.0 (Sept 8, 2023), Control: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: UMFPACK: Copyright (c) 2005-2023 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.2.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023): OK +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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.0 (Sept 8, 2023), Info: +UMFPACK V6.2.1 (Sept 18, 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 diff --git a/UMFPACK/Doc/ChangeLog b/UMFPACK/Doc/ChangeLog index 8f80454ae..ea6f12fc0 100644 --- a/UMFPACK/Doc/ChangeLog +++ b/UMFPACK/Doc/ChangeLog @@ -1,3 +1,8 @@ +Sept 18, 2023: version 6.2.1 + + * AMD: amd_internal.h include file copied into UMFPACK/Source, so + that UMFPACK can be built with just the installed AMD files. + Sept 8, 2023: version 6.2.0 * cmake updates: SuiteSparse:: namespace by Markus Muetzel diff --git a/UMFPACK/Doc/UMFPACK_QuickStart.pdf b/UMFPACK/Doc/UMFPACK_QuickStart.pdf index 2b277f3e9..da196e2b0 100644 Binary files a/UMFPACK/Doc/UMFPACK_QuickStart.pdf and b/UMFPACK/Doc/UMFPACK_QuickStart.pdf differ diff --git a/UMFPACK/Doc/UMFPACK_UserGuide.pdf b/UMFPACK/Doc/UMFPACK_UserGuide.pdf index 7ed49e85f..78abf7ce6 100644 Binary files a/UMFPACK/Doc/UMFPACK_UserGuide.pdf and b/UMFPACK/Doc/UMFPACK_UserGuide.pdf differ diff --git a/UMFPACK/Doc/umfpack_version.tex b/UMFPACK/Doc/umfpack_version.tex index 8b56ef294..14737caa6 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.0, Sept 8, 2023} +\date{VERSION 6.2.1, Sept 18, 2023} diff --git a/UMFPACK/Include/umfpack.h b/UMFPACK/Include/umfpack.h index c8e632135..14f578fd6 100644 --- a/UMFPACK/Include/umfpack.h +++ b/UMFPACK/Include/umfpack.h @@ -82,10 +82,10 @@ extern "C" { * below. */ -#define UMFPACK_DATE "Sept 8, 2023" +#define UMFPACK_DATE "Sept 18, 2023" #define UMFPACK_MAIN_VERSION 6 #define UMFPACK_SUB_VERSION 2 -#define UMFPACK_SUBSUB_VERSION 0 +#define UMFPACK_SUBSUB_VERSION 1 #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/Source/README.txt b/UMFPACK/Source/README.txt new file mode 100644 index 000000000..8b8df99a1 --- /dev/null +++ b/UMFPACK/Source/README.txt @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..85d43930b --- /dev/null +++ b/UMFPACK/Source/amd_internal.h @@ -0,0 +1,280 @@ +//------------------------------------------------------------------------------ +// 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