suitesparse
SuiteSparse: a suite of sparse matrix packages by @DrTimothyAldenDavis et al. with native CMake support
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.5%) to scientific vocabulary
Keywords
Repository
SuiteSparse: a suite of sparse matrix packages by @DrTimothyAldenDavis et al. with native CMake support
Basic Info
Statistics
- Stars: 53
- Watchers: 5
- Forks: 17
- Open Issues: 1
- Releases: 13
Topics
Metadata Files
README.md
CMake support for SuiteSparse
This repository provides two things:
- Copies of the official versions of SuiteSparse by T. A. Davis et
al. Please use the
masterbranch. - Specifically, the
cmakebranch of the repository also implements native CMake support which allows to easily compile SuiteSparse (including CXSparse) on a variety of platforms.
The CMake support layer is provided under the Apache License 2.0. Modifications to the SuiteSparse code base are made available under the same conditions as the original code.
The original SuiteSparse README can be found here.
Highlights
Besides full CMake support, this branch provides the following additions:
- CUDA support
- DLL export on Windows and hidden symbols by default (
-fvisibility=hidden) which enables link time optimization (LTO) - MinGW BLAS/LAPACK can be used to compile SuiteSparse using Visual Studio
- CPack support
Requirements
- C99 compiler (or Microsoft C compiler with complex math support)
- CMake 3.22 or newer
- SuiteSparse only (not required for CXSparse):
- BLAS
- LAPACK
- (optional) C++98 compiler
- (optional) CUDA compiler and toolkit
- (optional) Fortran compiler
- (optional) METIS
- (optional) TBB prior to version 2021.4
Getting Started
First, compile using
bash
$ cmake -S . -B build/
$ cmake --build build/
Then, one can consume SuiteSparse either directly from the build directory or after installing the project as follows:
```cmake findpackage (SuiteSparse 5.12 NOMODULE)
addexecutable (myexe main.cpp) targetlink_libraries (myexe PRIVATE SuiteSparse::CHOLMOD) ```
Background
The repository was created in 2015 to keep track of original releases before
SuiteSparse became a
Github project at the end of 2019. At the same time, the cmake branch
introduced modifications to the original code base in order to enable native
CMake support across major platforms.
While suitesparse-metis-for-windows was already available at the time and confusingly worked not only on Windows as the name might suggest, its CMake support did have several limitations. In particular, the implementation did not provide relocatable CMake package configuration and awkwardly relied on Python for preprocessing source files (as of August 2021, it still does.)
For IP (and legal) reasons, the provided CMake additions cannot become part of official SuiteSparse releases. For more information, please refer to this post.
Owner
- Name: Sergiu Deitsch
- Login: sergiud
- Kind: user
- Repositories: 25
- Profile: https://github.com/sergiud
GitHub Events
Total
- Watch event: 2
- Delete event: 1
- Issue comment event: 1
- Push event: 35
- Pull request review event: 1
- Pull request event: 2
- Create event: 4
Last Year
- Watch event: 2
- Delete event: 1
- Issue comment event: 1
- Push event: 35
- Pull request review event: 1
- Pull request event: 2
- Create event: 4
Dependencies
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- msys2/setup-msys2 v2 composite
- softprops/action-gh-release v1 composite
- alpine edge build
- build latest build
- devel latest build
- env latest build
- install_build latest build
- install_devel latest build
- install_env latest build
- ubuntu latest build
- build latest build
- devel latest build
- env latest build
- ubuntu latest build