diff --git a/ChangeLog b/ChangeLog index d8a7ed8b1..6b7eac4c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,35 @@ +Oct 10, 2024: version 7.8.3 + + * ParU 1.0.0: first stable release. No change since last version + v0.3.0, except for date, version, and updates to the User Guide. + * UMFPACK 6.3.5: a few typos in comments and user guide; no change to code + * SuiteSparse_config and Example: revised to reflect ParU 1.0.0. + * SuiteSparse_config.h: removed inclusion of MATLAB mex.h in + SuiteSparse_config.h (conflicts with C++ mex files) + * KLU and RBio: revised mexFunctions to handle change in + SuiteSparse_config.h + * Package versions in this release: (* denotes a new version) + SuiteSparse_config 7.8.3 * + AMD 3.3.3 + BTF 2.3.2 + CAMD 3.3.3 + CCOLAMD 3.3.4 + CHOLMOD 5.3.0 + COLAMD 3.3.4 + CSparse 4.3.2 + CXSparse 4.4.1 + Example 1.8.3 * + GraphBLAS 9.3.1 + KLU 2.3.5 * + LDL 3.3.2 + LAGraph 1.1.4 + SuiteSparse_Mongoose 3.3.4 + ParU 1.0.0 * + RBio 4.3.4 * + SPEX 3.2.1 + SPQR 4.3.4 + UMFPACK 6.3.5 * + Aug 20, 2024: version 7.8.2 * LAGraph 1.1.4: bug fix for LAGraph_MMWrite when matrix is dense diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt index e72965d34..7fbf3396a 100644 --- a/Example/CMakeLists.txt +++ b/Example/CMakeLists.txt @@ -53,10 +53,10 @@ message ( STATUS "MY prefix path: ${CMAKE_PREFIX_PATH}" ) #------------------------------------------------------------------------------- # cmake inserts the date and version number into Include/my.h: -set ( MY_DATE "Aug 20, 2024" ) +set ( MY_DATE "Oct 10, 2024" ) set ( MY_VERSION_MAJOR 1 ) set ( MY_VERSION_MINOR 8 ) -set ( MY_VERSION_PATCH 2 ) +set ( MY_VERSION_PATCH 3 ) message ( STATUS "Building MY library version: v" ${MY_VERSION_MAJOR}. @@ -87,7 +87,7 @@ project ( my #------------------------------------------------------------------------------- # look for all SuiteSparse packages: -find_package ( SuiteSparse_config 7.8.2 REQUIRED ) +find_package ( SuiteSparse_config 7.8.3 REQUIRED ) find_package ( AMD 3.3.3 REQUIRED ) find_package ( BTF 2.3.2 REQUIRED ) find_package ( CAMD 3.3.3 REQUIRED ) @@ -96,16 +96,16 @@ find_package ( CHOLMOD 5.3.0 REQUIRED ) find_package ( COLAMD 3.3.4 REQUIRED ) find_package ( CXSparse 4.4.1 REQUIRED ) find_package ( GraphBLAS 9.3.1 ) -find_package ( KLU 2.3.4 REQUIRED ) -find_package ( KLU_CHOLMOD 2.3.4 REQUIRED ) +find_package ( KLU 2.3.5 REQUIRED ) +find_package ( KLU_CHOLMOD 2.3.5 REQUIRED ) find_package ( LDL 3.3.2 REQUIRED ) find_package ( LAGraph 1.1.4 ) find_package ( SuiteSparse_Mongoose 3.3.4 REQUIRED ) -find_package ( ParU 0.3.0 REQUIRED ) -find_package ( RBio 4.3.3 REQUIRED ) +find_package ( ParU 1.0.0 REQUIRED ) +find_package ( RBio 4.3.4 REQUIRED ) find_package ( SPEX 3.2.1 REQUIRED ) # requires GMP and MPFR find_package ( SPQR 4.3.4 REQUIRED ) -find_package ( UMFPACK 6.3.4 REQUIRED ) +find_package ( UMFPACK 6.3.5 REQUIRED ) # for GMP and MPFR find_package ( MPFR 4.0.2 REQUIRED ) # from SPEX/cmake_modules diff --git a/Example/Include/my.h b/Example/Include/my.h index 8cd74c74e..ff1a4c792 100644 --- a/Example/Include/my.h +++ b/Example/Include/my.h @@ -11,10 +11,10 @@ // file, since it is constructed from Config/my.h.in by cmake. // version and date for example user library -#define MY_DATE "Aug 20, 2024" +#define MY_DATE "Oct 10, 2024" #define MY_MAJOR_VERSION 1 #define MY_MINOR_VERSION 8 -#define MY_PATCH_VERSION 2 +#define MY_PATCH_VERSION 3 #ifdef __cplusplus extern "C" { diff --git a/Example/Include/my_internal.h b/Example/Include/my_internal.h index 7a10b994d..63bf8ffad 100644 --- a/Example/Include/my_internal.h +++ b/Example/Include/my_internal.h @@ -14,8 +14,8 @@ // SuiteSparse include files for C/C++: #include "SuiteSparse_config.h" -#if !defined (SUITESPARSE__VERSION) || SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,2) -#error "This library requires SuiteSparse_config 7.8.2 or later" +#if !defined (SUITESPARSE__VERSION) || SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3) +#error "This library requires SuiteSparse_config 7.8.3 or later" #endif #include "amd.h" @@ -69,8 +69,8 @@ #endif #include "klu.h" -#if !defined (KLU__VERSION) || KLU__VERSION < SUITESPARSE__VERCODE(2,3,4) -#error "This library requires KLU 2.3.4 or later" +#if !defined (KLU__VERSION) || KLU__VERSION < SUITESPARSE__VERCODE(2,3,5) +#error "This library requires KLU 2.3.5 or later" #endif #include "ldl.h" @@ -79,8 +79,8 @@ #endif #include "RBio.h" -#if !defined (RBIO__VERSION) || RBIO__VERSION < SUITESPARSE__VERCODE(4,3,3) -#error "This library requires RBio 4.3.3 or later" +#if !defined (RBIO__VERSION) || RBIO__VERSION < SUITESPARSE__VERCODE(4,3,4) +#error "This library requires RBio 4.3.4 or later" #endif #include "SPEX.h" @@ -94,8 +94,8 @@ #endif #include "umfpack.h" -#if !defined (UMFPACK__VERSION) || UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,4) -#error "This library requires UMFPACK 6.3.4 or later" +#if !defined (UMFPACK__VERSION) || UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,5) +#error "This library requires UMFPACK 6.3.5 or later" #endif // SuiteSparse include files for C++: diff --git a/KLU/CMakeLists.txt b/KLU/CMakeLists.txt index 9e52f2b03..96d01046b 100644 --- a/KLU/CMakeLists.txt +++ b/KLU/CMakeLists.txt @@ -12,10 +12,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( KLU_DATE "June 20, 2024" ) +set ( KLU_DATE "Oct 10, 2024" ) set ( KLU_VERSION_MAJOR 2 CACHE STRING "" FORCE ) set ( KLU_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( KLU_VERSION_SUB 4 CACHE STRING "" FORCE ) +set ( KLU_VERSION_SUB 5 CACHE STRING "" FORCE ) message ( STATUS "Building KLU version: v" ${KLU_VERSION_MAJOR}. @@ -43,22 +43,22 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.8.0 + find_package ( SuiteSparse_config 7.8.3 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.8.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.3 REQUIRED ) endif ( ) - find_package ( AMD 3.3.2 + find_package ( AMD 3.3.3 PATHS ${CMAKE_SOURCE_DIR}/../AMD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::AMD ) - find_package ( AMD 3.3.2 REQUIRED ) + find_package ( AMD 3.3.3 REQUIRED ) endif ( ) - find_package ( COLAMD 3.3.3 + find_package ( COLAMD 3.3.4 PATHS ${CMAKE_SOURCE_DIR}/../COLAMD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::COLAMD ) - find_package ( COLAMD 3.3.3 REQUIRED ) + find_package ( COLAMD 3.3.4 REQUIRED ) endif ( ) find_package ( BTF 2.3.2 @@ -77,10 +77,10 @@ if ( SUITESPARSE_ROOT_CMAKELISTS ) else ( ) if ( KLU_USE_CHOLMOD ) # look for CHOLMOD (optional fill-reducing orderings) - find_package ( CHOLMOD 5.2.1 + find_package ( CHOLMOD 5.3.0 PATHS ${CMAKE_SOURCE_DIR}/../CHOLMOD/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::CHOLMOD ) - find_package ( CHOLMOD 5.2.1 ) + find_package ( CHOLMOD 5.3.0 ) endif ( ) if ( NOT CHOLMOD_FOUND ) # CHOLMOD not found so disable it diff --git a/KLU/Config/klu.h.in b/KLU/Config/klu.h.in index 09c8780ef..d9b2ea26a 100644 --- a/KLU/Config/klu.h.in +++ b/KLU/Config/klu.h.in @@ -833,8 +833,8 @@ void klu_version (int version [3]) ; #define KLU__VERSION SUITESPARSE__VERCODE(@KLU_VERSION_MAJOR@,@KLU_VERSION_MINOR@,@KLU_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3)) +#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires SuiteSparse_config 7.8.3 or later" #endif #if !defined (AMD__VERSION) || \ diff --git a/KLU/Doc/ChangeLog b/KLU/Doc/ChangeLog index bb6ebb833..f12360b56 100644 --- a/KLU/Doc/ChangeLog +++ b/KLU/Doc/ChangeLog @@ -1,3 +1,8 @@ +Oct 10, 2024: version 2.3.5 + + * MATLAB: revised mexFunction to account for change in + SuiteSparse_config.h + June 20, 2024: version 2.3.4 * minor update for MATLAB on Windows diff --git a/KLU/Doc/KLU_UserGuide.pdf b/KLU/Doc/KLU_UserGuide.pdf index 8a430bc7a..34a44401a 100644 Binary files a/KLU/Doc/KLU_UserGuide.pdf and b/KLU/Doc/KLU_UserGuide.pdf differ diff --git a/KLU/Doc/klu_version.tex b/KLU/Doc/klu_version.tex index 6f663b4a8..fb4c55a96 100644 --- a/KLU/Doc/klu_version.tex +++ b/KLU/Doc/klu_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/KLU -\date{VERSION 2.3.4, June 20, 2024} +\date{VERSION 2.3.5, Oct 10, 2024} diff --git a/KLU/Include/klu.h b/KLU/Include/klu.h index da3ae6f39..d8c36b929 100644 --- a/KLU/Include/klu.h +++ b/KLU/Include/klu.h @@ -823,33 +823,33 @@ void klu_version (int version [3]) ; * #endif */ -#define KLU_DATE "June 20, 2024" +#define KLU_DATE "Oct 10, 2024" #define KLU_MAIN_VERSION 2 #define KLU_SUB_VERSION 3 -#define KLU_SUBSUB_VERSION 4 +#define KLU_SUBSUB_VERSION 5 #define KLU_VERSION_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define KLU_VERSION KLU_VERSION_CODE(2,3) -#define KLU__VERSION SUITESPARSE__VERCODE(2,3,4) +#define KLU__VERSION SUITESPARSE__VERCODE(2,3,5) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "KLU 2.3.4 requires SuiteSparse_config 7.8.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3)) +#error "KLU 2.3.5 requires SuiteSparse_config 7.8.3 or later" #endif #if !defined (AMD__VERSION) || \ (AMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) -#error "KLU 2.3.4 requires AMD 3.3.3 or later" +#error "KLU 2.3.5 requires AMD 3.3.3 or later" #endif #if !defined (COLAMD__VERSION) || \ (COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,4)) -#error "KLU 2.3.4 requires COLAMD 3.3.4 or later" +#error "KLU 2.3.5 requires COLAMD 3.3.4 or later" #endif #if !defined (BTF__VERSION) || \ (BTF__VERSION < SUITESPARSE__VERCODE(2,3,2)) -#error "KLU 2.3.4 requires BTF 2.3.2 or later" +#error "KLU 2.3.5 requires BTF 2.3.2 or later" #endif #endif diff --git a/KLU/MATLAB/klu_install.m b/KLU/MATLAB/klu_install.m index a5b9ea2fe..5bb59b5e6 100644 --- a/KLU/MATLAB/klu_install.m +++ b/KLU/MATLAB/klu_install.m @@ -21,7 +21,7 @@ function klu_install (metis_path) end % compile KLU and add to the path -klu_make (metis_path) ; +klu_make ; klu_path = pwd ; addpath (klu_path) diff --git a/KLU/MATLAB/klu_mex.c b/KLU/MATLAB/klu_mex.c index f7ebca0e9..b1b315d12 100644 --- a/KLU/MATLAB/klu_mex.c +++ b/KLU/MATLAB/klu_mex.c @@ -52,6 +52,7 @@ /* ========================================================================== */ +#include "mex.h" #include "klu.h" #ifndef NCHOLMOD diff --git a/ParU/CMakeLists.txt b/ParU/CMakeLists.txt index 683d63f8c..ad6961170 100644 --- a/ParU/CMakeLists.txt +++ b/ParU/CMakeLists.txt @@ -13,9 +13,9 @@ # cmake 3.22 is required to find the BLAS in SuiteSparse_config cmake_minimum_required ( VERSION 3.22 ) -set ( PARU_DATE "Aug 20, 2024" ) -set ( PARU_VERSION_MAJOR 0 CACHE STRING "" FORCE ) -set ( PARU_VERSION_MINOR 3 CACHE STRING "" FORCE ) +set ( PARU_DATE "Sept 5, 2024" ) +set ( PARU_VERSION_MAJOR 1 CACHE STRING "" FORCE ) +set ( PARU_VERSION_MINOR 0 CACHE STRING "" FORCE ) set ( PARU_VERSION_UPDATE 0 CACHE STRING "" FORCE ) message ( STATUS "Building PARU version: v" @@ -109,10 +109,10 @@ if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) find_package ( CHOLMOD 5.3.0 REQUIRED ) endif ( ) - find_package ( UMFPACK 6.3.3 + find_package ( UMFPACK 6.3.5 PATHS ${CMAKE_SOURCE_DIR}/../UMFPACK/build NO_DEFAULT_PATH ) if ( NOT UMFPACK_FOUND ) - find_package ( UMFPACK 6.3.3 REQUIRED ) + find_package ( UMFPACK 6.3.5 REQUIRED ) endif ( ) endif ( ) diff --git a/ParU/Config/ParU.h.in b/ParU/Config/ParU.h.in index 2fc6d1eca..f19bfc694 100644 --- a/ParU/Config/ParU.h.in +++ b/ParU/Config/ParU.h.in @@ -60,13 +60,13 @@ typedef enum ParU_Info #define PARU__VERSION SUITESPARSE__VERCODE(@PARU_VERSION_MAJOR@,@PARU_VERSION_MINOR@,@PARU_VERSION_UPDATE@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires SuiteSparse_config 7.8.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3)) +#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires SuiteSparse_config 7.8.3 or later" #endif #if !defined (UMFPACK__VERSION) || \ - (UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,4)) -#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires UMFPACK 6.3.4 or later" + (UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,5)) +#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires UMFPACK 6.3.5 or later" #endif #if !defined (CHOLMOD__VERSION) || \ diff --git a/ParU/Doc/paru_user_guide.pdf b/ParU/Doc/paru_user_guide.pdf index 82fd067a0..0ec40db9d 100644 Binary files a/ParU/Doc/paru_user_guide.pdf and b/ParU/Doc/paru_user_guide.pdf differ diff --git a/ParU/Doc/paru_user_guide.tex b/ParU/Doc/paru_user_guide.tex index a55b9b61e..ff90ae32f 100644 --- a/ParU/Doc/paru_user_guide.tex +++ b/ParU/Doc/paru_user_guide.tex @@ -275,7 +275,7 @@ \subsection{{\sf ParU\_Version}: version of the ParU package} {\footnotesize \begin{verbatim} - #define PARU_DATE "June 20, 2024" + #define PARU_DATE "Sept 5, 2024" #define PARU_VERSION_MAJOR 1 #define PARU_VERSION_MINOR 0 #define PARU_VERSION_UPDATE 0 @@ -1104,7 +1104,7 @@ \subsection{{\sf ParU\_InvPerm}: permute and scale a dense vector or matrix} ParU_Get (Sym, Num, PARU_GET_P, P, Control) ; ParU_Get (Sym, Num, PARU_GET_Q, Q, Control) ; ParU_Get (Sym, Num, PARU_GET_ROW_SCALE_FACTORS, R, Control) ; - ParU_Perm (P, Rs, b, n, t, Control) ; + ParU_Perm (P, R, b, n, t, Control) ; ParU_LSolve (Sym, Num, t, Control) ; ParU_USolve (Sym, Num, t, Control) ; ParU_InvPerm (Q, NULL, t, n, x, Control) ; \end{verbatim} } @@ -1390,8 +1390,8 @@ \subsection{{\sf ParU\_C\_Solve\_A*}: solve a linear system, $Ax=b$} \verb'ParU_C_Solve_AXX' and \verb'ParU_C_Solve_AXB' methods solve a sparse linear system $Ax=b$ for a sparse matrix \verb'A' and vectors \verb'x' and \verb'b', or matrices \verb'X' and \verb'B'. The matrix \verb'A' must have - been factorized by \verb'ParU_Factorize', and the \verb'Sym' and \verb'Num' - structures from that call must be passed to this method. + been factorized by \verb'ParU_C_Factorize', and the \verb'Sym_C' and + \verb'Num_C' structures from that call must be passed to this method. {\footnotesize \begin{verbatim} @@ -1458,7 +1458,7 @@ \subsection{{\sf ParU\_C\_Solve\_L*}: solve a linear system, $Lx=b$} The \verb'ParU_C_Solve_Lxx' and \verb'ParU_C_Solve_LXX' methods solve lower triangular systems, $Lx=b$ with vectors $x$ and $b$, or $LX=B$ with matrices $X$ and $B$, using the lower triangular factor computed by - \verb'ParU_Factorize'. No scaling or permutations are used. + \verb'ParU_C_Factorize'. No scaling or permutations are used. {\footnotesize \begin{verbatim} @@ -1716,7 +1716,8 @@ \subsection{Compiling ParU for MATLAB} In MATLAB, go to the \verb'ParU/MATLAB' directory and type \verb'paru_make'. Then add the \verb'ParU/MATLAB' directory to your MATLAB path for future use. -For best performance, paru relies on functions unique to the Intel MKL BLAS. +For best performance, the \verb'paru' mexFunction +relies on functions unique to the Intel MKL BLAS. An optional input, \verb'paru_make(try_intel)', is true by default. \verb'paru_make' detects the BLAS library used by MATLAB and then attempts to use functions unique to the Intel MKL BLAS library @@ -1727,8 +1728,9 @@ \subsection{Compiling ParU for MATLAB} the Intel MKL functions. {\bf Limitations:} -The built-in compiler used by the MATLAB \verb'mex' command on Windoes does not -support OpenMP, so only parallelism within the BLAS can be used on Windows. +The built-in compiler used by the MATLAB \verb'mex' command on Windows does not +support OpenMP, so only parallelism within the BLAS can be used on Windows +when using MATLAB. %------------------------------------------------------------------------------- \subsection{Using ParU in MATLAB} @@ -1742,8 +1744,7 @@ \subsection{Using ParU in MATLAB} an additonal output parameter reports statistics on the algorithm: \begin{verbatim} - \verb'[x,stats] = paru (A,b,opts)' - \end{verbatim} + [x,stats] = paru (A,b,opts) \end{verbatim} \verb'opts' is a struct containing the following fields. Any field that is not recognized is ignored, and missing fields are treated as their defaults: @@ -1786,8 +1787,8 @@ \subsection{Using ParU in MATLAB} \verb"A'*A" for the unsymmetric strategy. \item \verb"'metis_guard'": use the \verb"'metis'" ordering unless the - matrix has one or more rows with $3.2\sqrt{n}$ entries, in which case - use \verb"'amd'". + matrix has one or more rows with $3.2\sqrt{n}$ or more entries, in + which case use \verb"'amd'". \item \verb"'none'": no fill-reducing ordering. @@ -1846,14 +1847,12 @@ \section{Requirements and Availability} for its basic sparse matrix data structure, and the BLAS \cite{dddh:90} for dense matrix computations on its frontal matrices. An efficient implementation of the BLAS is strongly recommended, such as the Intel MKL, the AMD ACML, -OpenBLAS, FLAME \cite{GotoVanDeGeijn08}. or vendor-provide BLAS. Note that -while ParU uses nested parallelism heavily the right options for the BLAS -library must be chosen to get a good performance. - -For best performance, the Intel MKL BLAS is required. ParU relies on the -\newline \verb'mkl_set_num_threads_local' function to select the number of -threads to use for the BLAS calls from each of its own threads, which required -nested parallelism. +OpenBLAS, FLAME \cite{GotoVanDeGeijn08}. or vendor-provide BLAS. +ParU relies heavily on nested parallelism, by making parallel calls to +the BLAS, each of which can themselves be parallel. This is supported by the +Intel MKL BLAS library with an Intel-specific method +(\verb'mkl_set_num_threads_local') to tell the BLAS how many threads to use. +As a result, tor best performance, the Intel MKL BLAS is required. ParU also relies heavily on OpenMP tasking to factorize multiple frontal matrices at the same time, where each frontal matrix can also be factorized by @@ -1872,13 +1871,13 @@ \section{Requirements and Availability} SuiteSparse uses a slightly modified version of METIS 5.1.0, distributed along with SuiteSparse itself. Its use is optional, however. ParU uses AMD as its default ordering. METIS tends to give orderings that are good for parallelism. -However, METIS itself can be slower than AMD. As a result, the symbolic +However, METIS itself can be much slower than AMD. As a result, the symbolic analysis using METIS can be slow, but usually, the factorization is faster. Therefore, depending on your use case, either use METIS, or you can compile and run your code without using METIS. If you are using METIS on an unsymmetric case, UMFPACK must form the Matrix $A^{T}A$. This matrix can have many entries -it takes a lot of resources to form it. To avoid such conditions, ParU uses the -ordering strategy \verb'PARU_ORDERING_METIS_GUARD' by default. This +it takes a lot of memory and time to form it. To avoid such conditions, ParU +uses the ordering strategy \verb'PARU_ORDERING_METIS_GUARD' by default. This ordering strategy uses COLAMD instead of METIS in when $A^T A$ is too costly to construct. diff --git a/ParU/Doc/paru_version.tex b/ParU/Doc/paru_version.tex index 801498c30..efb4cc126 100644 --- a/ParU/Doc/paru_version.tex +++ b/ParU/Doc/paru_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/ParU -\date{VERSION 0.3.0, Aug 20, 2024} +\date{VERSION 1.0.0, Sept 5, 2024} diff --git a/ParU/Include/ParU.h b/ParU/Include/ParU.h index 2348782d2..de16aab73 100644 --- a/ParU/Include/ParU.h +++ b/ParU/Include/ParU.h @@ -53,25 +53,25 @@ typedef enum ParU_Info PARU_TOO_LARGE = -4 // problem too large for the BLAS } ParU_Info ; -#define PARU_DATE "Aug 20, 2024" -#define PARU_VERSION_MAJOR 0 -#define PARU_VERSION_MINOR 3 +#define PARU_DATE "Sept 5, 2024" +#define PARU_VERSION_MAJOR 1 +#define PARU_VERSION_MINOR 0 #define PARU_VERSION_UPDATE 0 -#define PARU__VERSION SUITESPARSE__VERCODE(0,3,0) +#define PARU__VERSION SUITESPARSE__VERCODE(1,0,0) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "ParU 0.3.0 requires SuiteSparse_config 7.8.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3)) +#error "ParU 1.0.0 requires SuiteSparse_config 7.8.3 or later" #endif #if !defined (UMFPACK__VERSION) || \ - (UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,4)) -#error "ParU 0.3.0 requires UMFPACK 6.3.4 or later" + (UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,5)) +#error "ParU 1.0.0 requires UMFPACK 6.3.5 or later" #endif #if !defined (CHOLMOD__VERSION) || \ (CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,3,0)) -#error "ParU 0.3.0 requires CHOLMOD 5.3.0 or later" +#error "ParU 1.0.0 requires CHOLMOD 5.3.0 or later" #endif // the same values as UMFPACK_STRATEGY defined in UMFPACK/Include/umfpack.h diff --git a/RBio/CMakeLists.txt b/RBio/CMakeLists.txt index 71a953af8..958251fd6 100644 --- a/RBio/CMakeLists.txt +++ b/RBio/CMakeLists.txt @@ -2,7 +2,7 @@ # SuiteSparse/RBio/CMakeLists.txt: cmake for RBio #------------------------------------------------------------------------------- -# RBio, Copyright (c) 2009-2023, Timothy A. Davis. All Rights Reserved. +# RBio, Copyright (c) 2009-2024, Timothy A. Davis. All Rights Reserved. # SPDX-License-Identifier: GPL-2.0+ #------------------------------------------------------------------------------- @@ -11,10 +11,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( RBIO_DATE "June 20, 2024" ) +set ( RBIO_DATE "Oct 10, 2024" ) set ( RBIO_VERSION_MAJOR 4 CACHE STRING "" FORCE ) set ( RBIO_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( RBIO_VERSION_SUB 3 CACHE STRING "" FORCE ) +set ( RBIO_VERSION_SUB 4 CACHE STRING "" FORCE ) message ( STATUS "Building RBio version: v" ${RBIO_VERSION_MAJOR}. @@ -43,10 +43,10 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.8.0 + find_package ( SuiteSparse_config 7.8.3 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.8.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.3 REQUIRED ) endif ( ) endif ( ) diff --git a/RBio/Config/RBio.h.in b/RBio/Config/RBio.h.in index 66315a8cf..e58e8f8b2 100644 --- a/RBio/Config/RBio.h.in +++ b/RBio/Config/RBio.h.in @@ -85,8 +85,8 @@ #define RBIO__VERSION SUITESPARSE__VERCODE(@RBIO_VERSION_MAJOR@,@RBIO_VERSION_MINOR@,@RBIO_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "RBio @RBIO_VERSION_MAJOR@.@RBIO_VERSION_MINOR@.@RBIO_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3)) +#error "RBio @RBIO_VERSION_MAJOR@.@RBIO_VERSION_MINOR@.@RBIO_VERSION_SUB@ requires SuiteSparse_config 7.8.3 or later" #endif /* -------------------------------------------------------------------------- */ diff --git a/RBio/Include/RBio.h b/RBio/Include/RBio.h index 4d1f0c4b9..4ba4f9d6f 100644 --- a/RBio/Include/RBio.h +++ b/RBio/Include/RBio.h @@ -75,18 +75,18 @@ #define RBIO_VALUE_IOERROR (-94) /* I/O error: numerical values */ #define RBIO_FILE_IOERROR (-95) /* I/O error: cannot read/write the file */ -#define RBIO_DATE "June 20, 2024" +#define RBIO_DATE "Oct 10, 2024" #define RBIO_MAIN_VERSION 4 #define RBIO_SUB_VERSION 3 -#define RBIO_SUBSUB_VERSION 3 +#define RBIO_SUBSUB_VERSION 4 #define RBIO_VER_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define RBIO_VERSION RBIO_VER_CODE(4,3) -#define RBIO__VERSION SUITESPARSE__VERCODE(4,3,3) +#define RBIO__VERSION SUITESPARSE__VERCODE(4,3,4) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "RBio 4.3.3 requires SuiteSparse_config 7.8.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,3)) +#error "RBio 4.3.4 requires SuiteSparse_config 7.8.3 or later" #endif /* -------------------------------------------------------------------------- */ diff --git a/RBio/RBio/RBerror.c b/RBio/RBio/RBerror.c index 4cb20b7d4..0a9439c30 100644 --- a/RBio/RBio/RBerror.c +++ b/RBio/RBio/RBerror.c @@ -7,6 +7,7 @@ //------------------------------------------------------------------------------ +#include "mex.h" #include "RBio.h" void RBerror (int status) diff --git a/RBio/RBio/RBraw.c b/RBio/RBio/RBraw.c index b67984afe..d32b7df4c 100644 --- a/RBio/RBio/RBraw.c +++ b/RBio/RBio/RBraw.c @@ -41,6 +41,7 @@ c See also RBfix, RBread, RBreade. c----------------------------------------------------------------------- */ +#include "mex.h" #include "RBio.h" #define LEN 1024 diff --git a/RBio/RBio/RBread.c b/RBio/RBio/RBread.c index 0ed65f0ee..031a8e9d0 100644 --- a/RBio/RBio/RBread.c +++ b/RBio/RBio/RBread.c @@ -19,6 +19,7 @@ mtype: see RBwrite.m for a description. */ +#include "mex.h" #include "RBio.h" #define LEN 1024 #define TRUE (1) diff --git a/RBio/RBio/RBtype.c b/RBio/RBio/RBtype.c index 8f143004e..f0a4e3b74 100644 --- a/RBio/RBio/RBtype.c +++ b/RBio/RBio/RBtype.c @@ -36,6 +36,7 @@ ----------------------------------------------------------------------- */ +#include "mex.h" #include "RBio.h" #define TRUE (1) diff --git a/RBio/RBio/RBwrite.c b/RBio/RBio/RBwrite.c index 792ca9e83..660f2a68f 100644 --- a/RBio/RBio/RBwrite.c +++ b/RBio/RBio/RBwrite.c @@ -41,6 +41,7 @@ function mtype = RBwrite (filename, A, Z, title, key) %#ok % See also RBread, RBtype. */ +#include "mex.h" #include "RBio.h" #define LEN 1024 #define MAX(a,b) (((a) > (b)) ? (a) : (b)) diff --git a/README.md b/README.md index c8239dbf3..488799b2d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ SuiteSparse: A Suite of Sparse matrix packages at http://suitesparse.com ----------------------------------------------------------------------------- -Aug 20, 2024, SuiteSparse VERSION 7.8.2 +Oct 10, 2024, SuiteSparse VERSION 7.8.3 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 f76fd0e01..9cc5c67ab 100644 --- a/SuiteSparse_config/CMakeLists.txt +++ b/SuiteSparse_config/CMakeLists.txt @@ -2,7 +2,7 @@ # SuiteSparse/SuiteSparse_config/CMakeLists.txt: cmake for SuiteSparse_config #------------------------------------------------------------------------------- -# SuiteSparse_config, Copyright (c) 2012-2023, Timothy A. Davis. +# SuiteSparse_config, Copyright (c) 2012-2024, Timothy A. Davis. # All Rights Reserved. # SPDX-License-Identifier: BSD-3-clause @@ -15,10 +15,10 @@ cmake_minimum_required ( VERSION 3.22 ) # version of both SuiteSparse and SuiteSparse_config -set ( SUITESPARSE_DATE "Aug 20, 2024" ) +set ( SUITESPARSE_DATE "Oct 10, 2024" ) set ( SUITESPARSE_VERSION_MAJOR 7 ) set ( SUITESPARSE_VERSION_MINOR 8 ) -set ( SUITESPARSE_VERSION_SUB 2 ) +set ( SUITESPARSE_VERSION_SUB 3 ) set ( SUITESPARSE_CONFIG_VERSION_MAJOR ${SUITESPARSE_VERSION_MAJOR} CACHE STRING "" FORCE ) set ( SUITESPARSE_CONFIG_VERSION_MINOR ${SUITESPARSE_VERSION_MINOR} CACHE STRING "" FORCE ) set ( SUITESPARSE_CONFIG_VERSION_PATCH ${SUITESPARSE_VERSION_SUB} CACHE STRING "" FORCE ) diff --git a/SuiteSparse_config/Config/SuiteSparse_config.h.in b/SuiteSparse_config/Config/SuiteSparse_config.h.in index d0576a22d..aaef71a77 100644 --- a/SuiteSparse_config/Config/SuiteSparse_config.h.in +++ b/SuiteSparse_config/Config/SuiteSparse_config.h.in @@ -79,10 +79,10 @@ // MATLAB/Octave //------------------------------------------------------------------------------ -#if defined ( MATLAB_MEX_FILE ) -#include "mex.h" -#include "matrix.h" -#endif +// #if defined ( MATLAB_MEX_FILE ) +// #include "mex.h" +// #include "matrix.h" +// #endif //------------------------------------------------------------------------------ // string and token handling macros diff --git a/SuiteSparse_config/SuiteSparse_config.c b/SuiteSparse_config/SuiteSparse_config.c index ee220a77f..175fae015 100644 --- a/SuiteSparse_config/SuiteSparse_config.c +++ b/SuiteSparse_config/SuiteSparse_config.c @@ -13,6 +13,10 @@ #include "SuiteSparse_config.h" +#if defined ( MATLAB_MEX_FILE ) +#include "mex.h" +#endif + /* -------------------------------------------------------------------------- */ /* SuiteSparse_config : a static struct */ /* -------------------------------------------------------------------------- */ diff --git a/SuiteSparse_config/SuiteSparse_config.h b/SuiteSparse_config/SuiteSparse_config.h index b1d9b56e8..d3edfd89f 100644 --- a/SuiteSparse_config/SuiteSparse_config.h +++ b/SuiteSparse_config/SuiteSparse_config.h @@ -79,10 +79,10 @@ // MATLAB/Octave //------------------------------------------------------------------------------ -#if defined ( MATLAB_MEX_FILE ) -#include "mex.h" -#include "matrix.h" -#endif +// #if defined ( MATLAB_MEX_FILE ) +// #include "mex.h" +// #include "matrix.h" +// #endif //------------------------------------------------------------------------------ // string and token handling macros @@ -434,10 +434,10 @@ int SuiteSparse_version // returns SUITESPARSE_VERSION #define SUITESPARSE_HAS_VERSION_FUNCTION -#define SUITESPARSE_DATE "Aug 20, 2024" +#define SUITESPARSE_DATE "Oct 10, 2024" #define SUITESPARSE_MAIN_VERSION 7 #define SUITESPARSE_SUB_VERSION 8 -#define SUITESPARSE_SUBSUB_VERSION 2 +#define SUITESPARSE_SUBSUB_VERSION 3 // version format x.y #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub)) @@ -446,7 +446,7 @@ int SuiteSparse_version // returns SUITESPARSE_VERSION // version format x.y.z #define SUITESPARSE__VERCODE(main,sub,patch) \ (((main)*1000ULL + (sub))*1000ULL + (patch)) -#define SUITESPARSE__VERSION SUITESPARSE__VERCODE(7,8,2) +#define SUITESPARSE__VERSION SUITESPARSE__VERCODE(7,8,3) //============================================================================== // SuiteSparse interface to the BLAS and LAPACK libraries diff --git a/UMFPACK/CMakeLists.txt b/UMFPACK/CMakeLists.txt index cdab3c725..48dd70540 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 "June 20, 2024" ) +set ( UMFPACK_DATE "Sept 23, 2024" ) set ( UMFPACK_VERSION_MAJOR 6 CACHE STRING "" FORCE ) set ( UMFPACK_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( UMFPACK_VERSION_SUB 4 CACHE STRING "" FORCE ) +set ( UMFPACK_VERSION_SUB 5 CACHE STRING "" FORCE ) message ( STATUS "Building UMFPACK version: v" ${UMFPACK_VERSION_MAJOR}. diff --git a/UMFPACK/Config/umfpack.h.in b/UMFPACK/Config/umfpack.h.in index 74eac7df7..94b0dd878 100644 --- a/UMFPACK/Config/umfpack.h.in +++ b/UMFPACK/Config/umfpack.h.in @@ -5008,12 +5008,12 @@ complex int32_t Syntax: #include "umfpack.h" void *Numeric ; - double *Mx, *Mz, *Ex, Info [UMFPACK_INFO] ; + double Mx, Mz, Ex, Info [UMFPACK_INFO] ; int status = umfpack_zl_get_determinant (&Mx, &Mz, &Ex, Numeric, Info) ; packed complex Syntax: - Same as above, except Mz is NULL. + Same as above, except Mz is NULL, and Mx is an array of size 2. Author: Contributed by David Bateman, Motorola, Paris diff --git a/UMFPACK/Demo/umf4hb.out b/UMFPACK/Demo/umf4hb.out index 12833acf7..722ed48aa 100644 --- a/UMFPACK/Demo/umf4hb.out +++ b/UMFPACK/Demo/umf4hb.out @@ -1,4 +1,4 @@ -UMFPACK V6.3.3 (Mar 22, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), Control: Matrix entry defined as: double Int (generic integer) defined as: int32_t @@ -33,17 +33,17 @@ UMFPACK V6.3.3 (Mar 22, 2024), Control: The following options can only be changed at compile-time: 8: BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 compiled for ANSI C - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime compiled with CHOLMOD ordering options computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 4 pointer: 8 double: 8 Entry: 8 (in bytes) -UMFPACK V6.3.3 (Mar 22, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 MATLAB: no. - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime number of rows in matrix A: 67 number of columns in matrix A: 67 entries in matrix A: 294 @@ -106,8 +106,8 @@ UMFPACK V6.3.3 (Mar 22, 2024), 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.00 + numeric factorization mflops (wallclock): 0.77 solve flops: 1.20800e+03 iterative refinement steps taken: 0 @@ -119,7 +119,7 @@ UMFPACK V6.3.3 (Mar 22, 2024), Info: Matrix key: WEST0067 symbolic analysis: status: 0. - time: 0.10E-03 (sec) + time: 0.84E-04 (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.34E-02 actual numeric LU statistics: size of LU: 0.01 (MB) memory needed: 0.04 (MB) @@ -136,5 +136,5 @@ numeric factorization: nnz (L): 331. nnz (U): 340. norm (A*x-b): 1.7763568394002505E-015 - norm (A*x-b): 1.1546319456101628E-014 - norm (A*x-b): 1.1546319456101628E-014 + norm (A*x-b): 1.5099033134902129E-014 + norm (A*x-b): 1.5099033134902129E-014 diff --git a/UMFPACK/Demo/umf4hb64.out b/UMFPACK/Demo/umf4hb64.out index c1c6a0401..4a2f5e6fd 100644 --- a/UMFPACK/Demo/umf4hb64.out +++ b/UMFPACK/Demo/umf4hb64.out @@ -1,4 +1,4 @@ -UMFPACK V6.3.3 (Mar 22, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), Control: Matrix entry defined as: double Int (generic integer) defined as: int64_t @@ -33,17 +33,17 @@ UMFPACK V6.3.3 (Mar 22, 2024), Control: The following options can only be changed at compile-time: 8: BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 compiled for ANSI C - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime compiled with CHOLMOD ordering options computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 8 pointer: 8 double: 8 Entry: 8 (in bytes) -UMFPACK V6.3.3 (Mar 22, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 MATLAB: no. - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime number of rows in matrix A: 67 number of columns in matrix A: 67 entries in matrix A: 294 @@ -106,8 +106,8 @@ UMFPACK V6.3.3 (Mar 22, 2024), 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.33 + numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.77 solve flops: 1.20800e+03 iterative refinement steps taken: 0 @@ -119,7 +119,7 @@ UMFPACK V6.3.3 (Mar 22, 2024), Info: Matrix key: WEST0067 symbolic analysis: status: 0. - time: 0.13E-03 (sec) + time: 0.96E-04 (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.78E-02 + time: 0.34E-02 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 e8c77a7d2..2a2030086 100644 --- a/UMFPACK/Demo/umf4zhb.out +++ b/UMFPACK/Demo/umf4zhb.out @@ -1,4 +1,4 @@ -UMFPACK V6.3.3 (Mar 22, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int32_t @@ -33,17 +33,17 @@ UMFPACK V6.3.3 (Mar 22, 2024), Control: The following options can only be changed at compile-time: 8: BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 compiled for ANSI C - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime compiled with CHOLMOD ordering options computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 4 pointer: 8 double: 8 Entry: 16 (in bytes) -UMFPACK V6.3.3 (Mar 22, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 MATLAB: no. - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime number of rows in matrix A: 324 number of columns in matrix A: 324 entries in matrix A: 26730 @@ -119,10 +119,10 @@ UMFPACK V6.3.3 (Mar 22, 2024), 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): 853.80 - symbolic + numeric wall clock time (sec): 0.02 - symbolic + numeric mflops (wall clock): 770.03 + numeric factorization wallclock time (sec): 0.01 + numeric factorization mflops (wallclock): 2377.42 + symbolic + numeric wall clock time (sec): 0.01 + symbolic + numeric mflops (wall clock): 2023.42 solve flops: 3.70332e+05 iterative refinement steps taken: 0 @@ -134,7 +134,7 @@ UMFPACK V6.3.3 (Mar 22, 2024), Info: Matrix key: QC324 symbolic analysis: status: 0. - time: 0.18E-02 (sec) + time: 0.11E-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.17E-01 + time: 0.60E-02 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 00c7243c0..2aeafe28d 100644 --- a/UMFPACK/Demo/umf4zhb64.out +++ b/UMFPACK/Demo/umf4zhb64.out @@ -1,4 +1,4 @@ -UMFPACK V6.3.3 (Mar 22, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int64_t @@ -33,17 +33,17 @@ UMFPACK V6.3.3 (Mar 22, 2024), Control: The following options can only be changed at compile-time: 8: BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 compiled for ANSI C - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime compiled with CHOLMOD ordering options computer/operating system: Linux size of int32_t: 4 int64_t: 8 Int: 8 pointer: 8 double: 8 Entry: 16 (in bytes) -UMFPACK V6.3.3 (Mar 22, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 MATLAB: no. - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime number of rows in matrix A: 324 number of columns in matrix A: 324 entries in matrix A: 26730 @@ -119,10 +119,10 @@ UMFPACK V6.3.3 (Mar 22, 2024), 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): 852.02 - symbolic + numeric wall clock time (sec): 0.02 - symbolic + numeric mflops (wall clock): 750.09 + numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 2886.50 + symbolic + numeric wall clock time (sec): 0.01 + symbolic + numeric mflops (wall clock): 2357.41 solve flops: 3.70332e+05 iterative refinement steps taken: 0 @@ -134,7 +134,7 @@ UMFPACK V6.3.3 (Mar 22, 2024), Info: Matrix key: QC324 symbolic analysis: status: 0. - time: 0.23E-02 (sec) + time: 0.11E-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.17E-01 + time: 0.50E-02 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 77abc0e74..8dc508f94 100644 --- a/UMFPACK/Demo/umfpack_di_demo.out +++ b/UMFPACK/Demo/umfpack_di_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.3 (June 20, 2024) demo: _di_ version +UMFPACK V6.3 (Sept 23, 2024) demo: _di_ version UMFPACK: Copyright (c) 2005-2024 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.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK -UMFPACK V6.3.4 (June 20, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.06581e-14 UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 4654c8469..ca51c360a 100644 --- a/UMFPACK/Demo/umfpack_dl_demo.out +++ b/UMFPACK/Demo/umfpack_dl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.3 (June 20, 2024) demo: _dl_ version +UMFPACK V6.3 (Sept 23, 2024) demo: _dl_ version UMFPACK: Copyright (c) 2005-2024 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.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK -UMFPACK V6.3.4 (June 20, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.06581e-14 UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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_zi_demo.out b/UMFPACK/Demo/umfpack_zi_demo.out index fb9379f40..72176c435 100644 --- a/UMFPACK/Demo/umfpack_zi_demo.out +++ b/UMFPACK/Demo/umfpack_zi_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.3 (June 20, 2024) demo: _zi_ version +UMFPACK V6.3 (Sept 23, 2024) demo: _zi_ version UMFPACK: Copyright (c) 2005-2024 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.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK -UMFPACK V6.3.4 (June 20, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 @@ -346,7 +346,7 @@ UMFPACK V6.3.4 (June 20, 2024), Info: UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.77636e-15 UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 @@ -605,7 +605,7 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V6.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 e80cc57b8..50f3babe5 100644 --- a/UMFPACK/Demo/umfpack_zl_demo.out +++ b/UMFPACK/Demo/umfpack_zl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V6.3 (June 20, 2024) demo: _zl_ version +UMFPACK V6.3 (Sept 23, 2024) demo: _zl_ version UMFPACK: Copyright (c) 2005-2024 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.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK -UMFPACK V6.3.4 (June 20, 2024), Control: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): OK x (solution of Ax=b): dense vector, n = 5. @@ -362,7 +362,7 @@ maxnorm of residual: 1.77636e-15 UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. -UMFPACK V6.3.4 (June 20, 2024): OK +UMFPACK V6.3.5 (Sept 23, 2024): 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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.3.4 (June 20, 2024), Info: +UMFPACK V6.3.5 (Sept 23, 2024), 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 75b2cad01..d58e9d9ec 100644 --- a/UMFPACK/Doc/ChangeLog +++ b/UMFPACK/Doc/ChangeLog @@ -1,3 +1,8 @@ +Sept 23, 2024: version 6.3.5 + + * typos in comments and user guide for umfpack_get_determinant; + no change to the code + June 20, 2024: version 6.3.4 * minor update for MATLAB on Windows diff --git a/UMFPACK/Doc/UMFPACK_QuickStart.pdf b/UMFPACK/Doc/UMFPACK_QuickStart.pdf index d9686665d..f85a956ba 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 09acd7947..6f9b8254c 100644 Binary files a/UMFPACK/Doc/UMFPACK_UserGuide.pdf and b/UMFPACK/Doc/UMFPACK_UserGuide.pdf differ diff --git a/UMFPACK/Doc/UMFPACK_UserGuide.tex b/UMFPACK/Doc/UMFPACK_UserGuide.tex index 83c4879e5..da1f24631 100644 --- a/UMFPACK/Doc/UMFPACK_UserGuide.tex +++ b/UMFPACK/Doc/UMFPACK_UserGuide.tex @@ -1854,7 +1854,7 @@ \subsection{Getting the contents of opaque objects: real/{\tt int}} status = umfpack_di_serialize_symbolic_size (&blobsize, Symbolic) ; status = umfpack_di_serialize_symbolic (blob, blobsize, Symbolic) ; status = umfpack_di_deserialize_symbolic (&Symbolic, blob, blobsize) ; -status = umfapck_di_get_determinant (Mx, Ex, Numeric, Info) ; +status = umfpack_di_get_determinant (Mx, Ex, Numeric, Info) ; \end{verbatim} } @@ -1963,7 +1963,7 @@ \subsection{Getting the contents of opaque objects: complex/{\tt int}} status = umfpack_zi_serialize_symbolic_size (&blobsize, Symbolic) ; status = umfpack_zi_serialize_symbolic (blob, blobsize, Symbolic) ; status = umfpack_zi_deserialize_symbolic (&Symbolic, blob, blobsize) ; -status = umfapck_zi_get_determinant (Mx, Mz, Ex, Numeric, Info) ; +status = umfpack_zi_get_determinant (Mx, Mz, Ex, Numeric, Info) ; \end{verbatim} } @@ -7013,12 +7013,12 @@ \subsection{umfpack\_*\_get\_determinant} #include "umfpack.h" void *Numeric ; - double *Mx, *Mz, *Ex, Info [UMFPACK_INFO] ; + double Mx, Mz, Ex, Info [UMFPACK_INFO] ; int status = umfpack_zl_get_determinant (&Mx, &Mz, &Ex, Numeric, Info) ; packed complex Syntax: - Same as above, except Mz is NULL. + Same as above, except Mz is NULL, and Mx is an array of size 2. Author: Contributed by David Bateman, Motorola, Paris diff --git a/UMFPACK/Doc/umfpack_version.tex b/UMFPACK/Doc/umfpack_version.tex index 76fb05783..3d9ff5ac6 100644 --- a/UMFPACK/Doc/umfpack_version.tex +++ b/UMFPACK/Doc/umfpack_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/UMFPACK -\date{VERSION 6.3.4, June 20, 2024} +\date{VERSION 6.3.5, Sept 23, 2024} diff --git a/UMFPACK/Include/umfpack.h b/UMFPACK/Include/umfpack.h index c30b26a2e..f88f1f8ff 100644 --- a/UMFPACK/Include/umfpack.h +++ b/UMFPACK/Include/umfpack.h @@ -74,23 +74,23 @@ * below. */ -#define UMFPACK_DATE "June 20, 2024" +#define UMFPACK_DATE "Sept 23, 2024" #define UMFPACK_MAIN_VERSION 6 #define UMFPACK_SUB_VERSION 3 -#define UMFPACK_SUBSUB_VERSION 4 +#define UMFPACK_SUBSUB_VERSION 5 #define UMFPACK_VER_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define UMFPACK_VER UMFPACK_VER_CODE(6,3) -#define UMFPACK__VERSION SUITESPARSE__VERCODE(6,3,4) +#define UMFPACK__VERSION SUITESPARSE__VERCODE(6,3,5) #if !defined (SUITESPARSE__VERSION) || \ (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) -#error "UMFPACK 6.3.4 requires SuiteSparse_config 7.8.0 or later" +#error "UMFPACK 6.3.5 requires SuiteSparse_config 7.8.0 or later" #endif #if !defined (AMD__VERSION) || \ (AMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) -#error "UMFPACK 6.3.4 requires AMD 3.3.3 or later" +#error "UMFPACK 6.3.5 requires AMD 3.3.3 or later" #endif // user code should not directly use GB_STR or GB_XSTR @@ -5008,12 +5008,12 @@ complex int32_t Syntax: #include "umfpack.h" void *Numeric ; - double *Mx, *Mz, *Ex, Info [UMFPACK_INFO] ; + double Mx, Mz, Ex, Info [UMFPACK_INFO] ; int status = umfpack_zl_get_determinant (&Mx, &Mz, &Ex, Numeric, Info) ; packed complex Syntax: - Same as above, except Mz is NULL. + Same as above, except Mz is NULL, and Mx is an array of size 2. Author: Contributed by David Bateman, Motorola, Paris diff --git a/UMFPACK/Source/umfpack_get_determinant.c b/UMFPACK/Source/umfpack_get_determinant.c index ab7ef0e86..0e1f252dd 100644 --- a/UMFPACK/Source/umfpack_get_determinant.c +++ b/UMFPACK/Source/umfpack_get_determinant.c @@ -78,11 +78,11 @@ PRIVATE int rescale_determinant int UMFPACK_get_determinant ( - double *Mx, + double *Mx, // array of size 1 or 2 (2 if complex) #ifdef COMPLEX - double *Mz, + double *Mz, // scalar (imaginary part, if split complex) #endif - double *Ex, + double *Ex, // scalar void *NumericHandle, double User_Info [UMFPACK_INFO] )