suitesparse

SuiteSparse: a suite of sparse matrix packages by @DrTimothyAldenDavis et al. with native CMake support

https://github.com/sergiud/suitesparse

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

linear-algebra matrix-factorization sparse-linear-solver sparse-linear-systems sparse-matrices
Last synced: 6 months ago · JSON representation

Repository

SuiteSparse: a suite of sparse matrix packages by @DrTimothyAldenDavis et al. with native CMake support

Basic Info
  • Host: GitHub
  • Owner: sergiud
  • License: apache-2.0
  • Language: C
  • Default Branch: cmake
  • Homepage:
  • Size: 113 MB
Statistics
  • Stars: 53
  • Watchers: 5
  • Forks: 17
  • Open Issues: 1
  • Releases: 13
Topics
linear-algebra matrix-factorization sparse-linear-solver sparse-linear-systems sparse-matrices
Created over 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

CMake support for SuiteSparse

Linux macOS Windows

This repository provides two things:

  1. Copies of the official versions of SuiteSparse by T. A. Davis et al. Please use the master branch.
  2. Specifically, the cmake branch 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

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

.github/workflows/linux.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/macos.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
.github/workflows/windows.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • msys2/setup-msys2 v2 composite
  • softprops/action-gh-release v1 composite
GraphBLAS/cpu_features/.github/workflows/Dockerfile docker
  • alpine edge build
GraphBLAS/cpu_features/ci/docker/amd64/Dockerfile docker
  • build latest build
  • devel latest build
  • env latest build
  • install_build latest build
  • install_devel latest build
  • install_env latest build
  • ubuntu latest build
GraphBLAS/cpu_features/ci/docker/toolchain/Dockerfile docker
  • build latest build
  • devel latest build
  • env latest build
  • ubuntu latest build