The official SuiteSparse library: a suite of sparse matrix algorithms authored or co-authored by Tim Davis, Texas A&M University.
OTHER License
Bot releases are visible (Hide)
Published by DrTimothyAldenDavis about 1 year ago
Oct 7, 2023: version 7.2.1.beta2
* GraphBLAS 8.2.1: bug fix to GrB_mxm; incorrect handling of typecasting
* cross-compiler support: replace check_c_source_runs with _compiles,
for GraphBLAS and SuiteSparse_config, and remove check for
getenv("HOME").
* cmake update: add "None" build type, from Antonio Rojas, for Arch Linux,
to all *Config.cmake files for all packages except CSparse (CXSparse
is built instead, and CSparse does not have CSparseConfig.cmake file)
* 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.
Published by DrTimothyAldenDavis about 1 year ago
Sept 18, 2023: version 7.2.1
* cmake update: add "None" build type, from Antonio Rojas, for Arch Linux,
to all *Config.cmake files for all packages except CSparse (CXSparse
is built instead, and CSparse does not have CSparseConfig.cmake file)
* 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.
Published by DrTimothyAldenDavis about 1 year ago
Sept 8, 2023: version 7.2.0
* build system: modern cmake structure, by Markus Muetzel, @mmuetzel
Most packages updated to vX.2.0 where X is unchanged (except SPQR
and Example package).
* SPQR v4.2.0: Major SO update. Support for int32 indices by Raye Kimmerer, @Wimmerer
This release includes GraphBLAS v8.2.0. The next release of SuiteSparse will include GraphBLAS v9.0.0, which is already in a beta release in the GraphBLAS github repo (https://github.com/DrTimothyAldenDavis/GraphBLAS/releases/tag/v9.0.0.beta3). That version implements the new GrB get/set methods in the v2.1 C API, and will become stable once the GraphBLAS v2.1 C API is officially released.
Published by DrTimothyAldenDavis about 1 year ago
Revised maximum user-defined type size of GraphBLAS when using MSVC (or any compiler that does not support variable sized types).
Published by DrTimothyAldenDavis about 1 year ago
Added rule to build.yaml (testing the build of CHOLMOD without OpenMP on MSVC). Move SuiteSparse__thread.cmake to proper directory.
Published by DrTimothyAldenDavis about 1 year ago
Sept 8, 2023: version 7.2.0
* build system: modern cmake structure, by Markus Muetzel.
Most packages updated to vX.2.0 where X is unchanged (except SPQR
and Example package).
* SPQR v4.2.0: Major SO update. Support for int32 indices by Raye Kimmerer
Published by DrTimothyAldenDavis over 1 year ago
June 29, 2023: version 7.1.0
* GraphBLAS v8.0.2: major update with a new JIT feature.
* build system: many changes to build systems of all packages, contributed
by Markus Muetzel.
* RBio 4.0.0: revised API: declaring many input parameters as const
* CXSparse 4.0.4: changed complex types for C++ callers
Published by DrTimothyAldenDavis over 1 year ago
METIS prototypes and update to Example package.
Published by DrTimothyAldenDavis over 1 year ago
June 16, 2023: SuiteSparse version 7.1.0
* GraphBLAS v8.0.2: major update with a new JIT feature.
* build system: many changes to build systems of all packages, contributed
by Markus Muetzel.
* RBio 4.0.0: revised API: declaring many input parameters as const
* CXSparse 4.0.4: changed complex types for C++ callers
Published by DrTimothyAldenDavis over 1 year ago
Jan 20, 2023: version 7.0.1
* GraphBLAS v7.4.3: debug was left on in GrB_Matrix_removeElement
* Example package revised
Published by DrTimothyAldenDavis almost 2 years ago
Jan 17, 2023: version 7.0.0
* SuiteSparse_config: now v7.0.0
* SuiteSparse_config struct: removed from external visibility to simplify
the Windows build, so that no global data is externally visible.
This requires a major version number increase from v6.x to v7.x for the
SuiteSparse meta-package (which has the same version number as
SuiteSparse_config). Added get/set methods to SuiteSparse_config to
access the contents of the struct.
* NFORTRAN: option added to ignore any Fortran methods, even if a Fortran
compiler is available.
* port of new cmake-based build system to Windows
* UMFPACK 6.1.0: copy/serialize/deserialize methods: added new methods to
copy, serialize, and deserialize the Numeric and Symbolic objects. By
Will Kimmerer, revised by T. Davis.
Published by DrTimothyAldenDavis almost 2 years ago
Jan 17, 2023: version 7.0.0
* SuiteSparse_config: now v7.0.0
* SuiteSparse_config struct: removed from external visibility to simplify
the Windows build, so that no global data is externally visible.
This requires a major version number increase from v6.x to v7.x for the
SuiteSparse meta-package (which has the same version number as
SuiteSparse_config). Added get/set methods to SuiteSparse_config to
access the contents of the struct.
* NFORTRAN: option added to ignore any Fortran methods, even if a Fortran
compiler is available.
* port of new cmake-based build system to Windows
* UMFPACK 6.1.0: copy/serialize/deserialize methods: added new methods to
copy, serialize, and deserialize the Numeric and Symbolic objects. By
Will Kimmerer, revised by T. Davis.
* NFORTRAN: option added to disable Fortran entirely
* GraphBLAS v7.4.2: global free pool disabled, and GrB_mxm heuristics
revised. Build system revised. NTHREADS and CHUNK in descriptor deprecated.
Published by DrTimothyAldenDavis almost 2 years ago
Jan 9, 2023: version 7.0.0 (beta1 release)
* SuiteSparse_config: now v7.0.0
* SuiteSparse_config struct: removed from external visibility to simplify
the Windows build, so that no global data is externally visible.
This requires a major version number increase from v6.x to v7.x for the
SuiteSparse meta-package (which has the same version number as
SuiteSparse_config). Added get/set methods to SuiteSparse_config to
access the contents of the struct.
* NFORTRAN: option added to ignore any Fortran methods, even if a Fortran
compiler is available.
* port of new cmake-based build system to Windows
* UMFPACK 6.1.0: copy/serialize/deserialize methods: added new methods to
copy, serialize, and deserialize the Numeric and Symbolic objects. By
Will Kimmerer, revised by T. Davis.
Published by DrTimothyAldenDavis almost 2 years ago
Dec 29, 2022: SuiteSparse 6.0.4
* NFORTRAN: option added to disable Fortran entirely
* GraphBLAS v7.4.1: global free pool disabled, and GrB_mxm heuristics
revised.
Published by DrTimothyAldenDavis almost 2 years ago
Dec 23, 2022: SuiteSparse 6.0.3
* GraphBLAS v7.4.0: added non-va_arg get/set methods.
* Mongoose v3.0.3: change in build for test coverage
Published by DrTimothyAldenDavis almost 2 years ago
Dec 9, 2022: SuiteSparse 6.0.2
* minor change to build system for nearly all packages: (except CSparse,
ssget, and MATLAB_Tools): allows static linkage of all libraries.
Fortran no longer required.
* AMD 3.0.2: Fortran no longer required (amd.f and amdbar.f skipped);
minor change to build system
* BTF 2.0.2: minor change to build system
* CAMD 3.0,2: minor change to build system
* CCOLAMD 3.0.2: minor change to build system
* CHOLMOD 4.0.2: Fortran no longer required; minor change to build system
* CXSparse 4.0.2: minor change to build system
* GPUQREngine 2.0.2: minor change to build system
* GraphBLAS 7.3.3: -latomic added if needed, using ANSI C11 atomic functions
for gcc (atomic_compare_exachange_weak instead of __atomic_* variants),
chunk factor revised for GrB_mxm (generic saxpy3 method);
minor change to build system
* KLU 2.0.2: Fortran no longer required; minor change to build system
* LDL 3.0.2: minor change to build system
* Mongoose 3.0.2: fixed matrix download in python test scripts (no change
to the compiled library itself, other than the version/date);
minor change to build system
* RBio 3.0.2: minor change to build system
* SPEX 2.0.2: minor change to build system
* SPQR 3.0.2: Fortran no longer required; minor change to build system
* SuiteSparse_GPURuntime 2.0.2: minor change to build system
* SuiteSparse_config 6.0.2: override C-to-Fortran interface handling if
no Fortran compiler found; minor change to build system
* UMFPACK 6.0.2: Fortran no longer required; minor change to build system
* Example: simple package that illustrates how to use SuiteSparse
Find*.cmake modules in cmake.
* not changed from SuiteSparse v6.0.1: ssget, CSparse, MATLAB_Tools
Published by DrTimothyAldenDavis almost 2 years ago
Dec 9, 2022: SuiteSparse 6.0.2
* minor change to build system for nearly all packages: (except CSparse,
ssget, and MATLAB_Tools): allows static linkage of all libraries.
Fortran no longer required.
* AMD 3.0.2: Fortran no longer required (amd.f and amdbar.f skipped);
minor change to build system
* BTF 2.0.2: minor change to build system
* CAMD 3.0,2: minor change to build system
* CCOLAMD 3.0.2: minor change to build system
* CHOLMOD 4.0.2: Fortran no longer required; minor change to build system
* CXSparse 4.0.2: minor change to build system
* GPUQREngine 2.0.2: minor change to build system
* GraphBLAS 7.3.3: -latomic added if needed, using ANSI C11 atomic functions
for gcc (atomic_compare_exachange_weak instead of __atomic_* variants),
chunk factor revised for GrB_mxm (generic saxpy3 method);
minor change to build system
* KLU 2.0.2: Fortran no longer required; minor change to build system
* LDL 3.0.2: minor change to build system
* Mongoose 3.0.2: fixed matrix download in python test scripts (no change
to the compiled library itself, other than the version/date);
minor change to build system
* RBio 3.0.2: minor change to build system
* SPEX 2.0.2: minor change to build system
* SPQR 3.0.2: Fortran no longer required; minor change to build system
* SuiteSparse_GPURuntime 2.0.2: minor change to build system
* SuiteSparse_config 6.0.2: override C-to-Fortran interface handling if
no Fortran compiler found; minor change to build system
* UMFPACK 6.0.2: Fortran no longer required; minor change to build system
* Example: simple package that illustrates how to use SuiteSparse
Find*.cmake modules in cmake.
* not changed from SuiteSparse v6.0.1: ssget, CSparse, MATLAB_Tools
Note that SPEX fails to build using the MINGW32 and MINGW64 compilers, because of a linking problem with GMP. The CI system was added after v6.0.1 was released, and it's likely that SPEX didn't build for that version of SuiteSparse either.
Published by DrTimothyAldenDavis almost 2 years ago
Nov 12, 2022: SuiteSparse 6.0.1
* BLAS: C prototypes for the Fortan BLAS were unintentionally exposed to
the user application. Removed. If you want to use them, see the
instructions in SuiteSparse_config.h.
Published by DrTimothyAldenDavis almost 2 years ago
Nov 12, 2022: SuiteSparse 6.0.0
* major update: using CMake build system for all packages
* CMake Find*: all packages now have a Find*.cmake. See
SuiteSparse_config/cmake_modules.
* integers: int (32-bit) and SuiteSparse_long (nominally 64-bit) replaced
with int32_t and int64_t. The SuiteSparse_long #define has been
deprecated and removed. Replace its use with int64_t in any code that
uses SuiteSparse v6.0.0 or later. This is unlikely to change any
use of any SuiteSparse package, but since it's possible that
SuiteSparse_long was 32-bits on some platforms, the SO_VERSIION of
all packages has been increased by one.
* UMFPACK: new options to support ParU. Single umfpack.h include file.
* CHOLMOD: Single cholmod.h include file.
* SuiteSparse/metis-5.1.0: now embedded into CHOLMOD, in a different
name space. No longer an independent library.
* SPDX License Identifier: added to each file. No change in license.
* BLAS/LAPACK interface: now supports any Fortran BLAS/LAPACK, with
either 32-bit (default) or 64-bit integers, via FindBLAS.cmake.
* SPEX: replaces SLIP_LU
Published by DrTimothyAldenDavis almost 2 years ago
Added NOPENMP option to disable OpenMP for UMFPACK, CHOLMOD, SPQR, SuiteSparse_config (where it was just using omp_get_wtime) and GraphBLAS. Note the comments in the GraphBLAS userguide about thread-safety. If GraphBLAS is compiled without OpenMP, the #pragma omp flush in GrB_wait cannot guarantee thread safety if one user thread writes to a GrB_Matrix, does a GrB_wait, and another user thread reads that same matrix. The user application would have to ensure that the 1st thread's cache is properly flushed (perhaps with a pthreads construct). In this case, without OpenMP, thread safety is the responsibility of the user application, not GraphBLAS. Details and caveats are in the GraphBLAS user guide.