The official SuiteSparse library: a suite of sparse matrix algorithms authored or co-authored by Tim Davis, Texas A&M University.
The official SuiteSparse library: a suite of sparse matrix algorithms authored or co-authored by Tim Davis, Texas A&M University.
Sept 12, 2026, SuiteSparse VERSION 7.14.1
SuiteSparse is a set of sparse-matrix-related packages written or co-authored by Tim Davis, available at https://github.com/DrTimothyAldenDavis/SuiteSparse .
Primary author of SuiteSparse (codes and algorithms, excl. METIS): Tim Davis
Code co-authors, in alphabetical order (not including METIS or LAGraph): Patrick Amestoy, Mohsen Aznaveh, David Bateman, Jinhao Chen, Yanqing Chen, Iain Duff, Joe Eaton, Les Foster, William Hager, Raye Kimmerer, Scott Kolodziej, Chris Lourenco, Stefan Larimore, Lorena Mejia Domenzain, Erick Moreno-Centeno, Markus Mützel, Corey Nolet, Ekanathan Palamadai, Sivasankaran Rajamanickam, Sanjay Ranka, Wissam Sid-Lakhdar, and Nuri Yeralan.
LAGraph has been developed by the highest number of developers of any of the packages in SuiteSparse and deserves its own list. The list also appears in LAGraph/Contibutors.txt:
Janos B. Antal Budapest University of Technology and Economics, Hungary
Mohsen Aznaveh Texas A&M University
David A. Bader New Jersey Institute of Technology
Georgiy Belyanin St. Petersburg State University
Aydin Buluc Lawrence Berkeley National Lab
Jinhao Chen Texas A&M University
Tim Davis Texas A&M University
Florentin Dorre Technische Univeritat Dresden, Neo4j
Marton Elekes Budapest University of Technology and Economics, Hungary
Alexandra Goff Texas A&M University
Gabriel Gomez Texas A&M University
Semyon Grigoriev St. Petersburg State University
Balint Hegyi Budapest University of Technology and Economics, Hungary
Tanner Hoke Texas A&M University
James Kitchen Anaconda
Scott Kolodziej Texas A&M University
Ilhom Kombaev St. Petersburg State University
Pranav Konduri Texas A&M University
Christina Koutsou Aristotle University of Thessaloniki
Roi Lipman Redis Labs
Tze Meng Low Carnegie Mellon University
Vidith Madhu Texas A&M University
Tim Mattson Intel
Scott McMillan Carnegie Mellon University
Markus Muetzel
Hemanth Mukesh Texas A&M University
Olumayowa Olowomeye Texas A&M University
Casey Pei Texas A&M University
Michel Pelletier Graphegon, OneSparse
Darin Peries Texas A&M University
Cameron Quilici Texas A&M University
Aurko Routh Texas A&M University
Gabor Szarnyas CWI Amsterdam, The Netherlands
Erik Welch Anaconda, then NVIDIA
Carl Yang University of California at Davis, Waymo
Yongzhe Zhang SOKENDAI, JapanMETIS is authored by George Karypis.
Additional algorithm designers: Esmond Ng and John Gilbert.
Refer to each package for license, copyright, and author information.
Refer to each package for the documentation on each package, typically in the Doc subfolder.
Packages in SuiteSparse, and files in this directory:
AMD
approximate minimum degree ordering. This is the built-in AMD function in MATLAB.
authors: Tim Davis, Patrick Amestoy, Iain Duff
bin
where programs are placed when compiled, for make local
BTF
permutation to block triangular form
authors: Tim Davis, Ekanathan Palamadai
build
folder for default build tree
CAMD
constrained approximate minimum degree ordering
authors: Tim Davis, Patrick Amestoy, Iain Duff, Yanqing Chen
CCOLAMD
constrained column approximate minimum degree ordering
authors: Tim Davis, Sivasankaran Rajamanickam, Stefan Larimore.
Algorithm design collaborators: Esmond Ng, John Gilbert (for COLAMD)
ChangeLog
a summary of changes to SuiteSparse. See */Doc/ChangeLog for details for
each package.
CHOLMOD
sparse Cholesky factorization. Requires AMD, COLAMD, CCOLAMD, the BLAS, and
LAPACK. Optionally uses METIS. This is chol and x=A\b in MATLAB.
author for all modules: Tim Davis
CHOLMOD/Modify module authors: Tim Davis and William W. Hager
CHOLMOD/SuiteSparse_metis: a modified version of METIS, embedded into the CHOLMOD library. See the README.txt files for details. author: George Karypis. This is a slightly modified copy included with SuiteSparse via the open-source license provided by George Karypis. SuiteSparse cannot use an unmodified copy of METIS.
CITATION.bib
citations for SuiteSparse packages, in bibtex format.
CMakeLists.txt
optional, to compile all of SuiteSparse. See below.
CODE_OF_CONDUCT.md
community guidelines
COLAMD
column approximate minimum degree ordering. This is the built-in COLAMD function in MATLAB.
authors (of the code): Tim Davis and Stefan Larimore
Algorithm design collaborators: Esmond Ng, John Gilbert
Contents.m
a list of contents for 'help SuiteSparse' in MATLAB.
CONTRIBUTING.md
how to contribute to SuiteSparse
CONTRIBUTOR-LICENSE.txt
required contributor agreement
CSparse
a concise sparse matrix package, developed for my book, "Direct Methods for Sparse Linear Systems", published by SIAM. Intended primarily for teaching. Note that the code is (c) Tim Davis, as stated in the book.
For production, use CXSparse instead. In particular, both CSparse and
CXSparse have the same include filename: cs.h. This package is used for
the built-in DMPERM in MATLAB.
author: Tim Davis
CXSparse
CSparse Extended. Includes support for complex matrices and both int or long integers. Use this instead of CSparse for production use; it creates a libcsparse.so (or dylib on the Mac) with the same name as CSparse. It is a superset of CSparse. Any code that links against CSparse should also be able to link against CXSparse instead.
author: Tim Davis, David Bateman
Example
a simple package that relies on almost all of SuiteSparse
.github
workflows for CI testing on GitHub.
GraphBLAS
graph algorithms in the language of linear algebra.
authors: Tim Davis, Joe Eaton, Corey Nolet
include
make install places user-visible include files for each package here, after
make local.
KLU
sparse LU factorization, primarily for circuit simulation. Requires AMD, COLAMD, and BTF. Optionally uses CHOLMOD, CAMD, CCOLAMD, and METIS.
authors: Tim Davis, Ekanathan Palamadai
LAGraph
a graph algorithms library based on GraphBLAS. See also https://github.com/GraphBLAS/LAGraph
Authors: many.
LDL
a very concise LDL' factorization package
author: Tim Davis
lib
make install places shared libraries for each package here, after
make local.
LICENSE.txt
collected licenses for each package.
Makefile
optional, to compile all of SuiteSparse using make, which is used as a
simple wrapper for cmake in each subproject.
make
compiles SuiteSparse libraries. Subsequent make install will install
in CMAKE_INSTALL_PATH (might default to /usr/local/lib on Linux or Mac).
make local
compiles SuiteSparse. Subsequent make install will install in ./lib,
./include. Does not install in CMAKE_INSTALL_PATH.
make global
compiles SuiteSparse libraries. Subsequent make install will install in
/usr/local/lib (or whatever the configured CMAKE_INSTALL_PREFIX is).
Does not install in ./lib and ./include.
make install
installs in the current directory (./lib, ./include), or in
/usr/local/lib and /usr/local/include, (the latter defined by
CMAKE_INSTALL_PREFIX) depending on whether make, make local, or
make global has been done.
make uninstall
undoes make install.
make distclean
removes all files not in distribution, including ./bin, ./share,
./lib, and ./include.
make purge
same as make distclean.
make clean
removes all files not in distribution, but keeps compiled libraries and
demos, ./lib, ./share, and ./include.
Each individual subproject also has each of the above make targets.
Things you don't need to do:
make docs
creates user guides from LaTeX files
make cov
runs statement coverage tests (Linux only)
MATLAB_Tools
various m-files for use in MATLAB
author: Tim Davis (all parts)
for spqr_rank: author Les Foster and Tim Davis
Contents.m
list of contents
dimacs10
loads matrices for DIMACS10 collection
Factorize
object-oriented x=A\b for MATLAB
find_components
finds connected components in an image
GEE
simple Gaussian elimination
getversion.m
determine MATLAB version
gipper.m
create MATLAB archive
hprintf.m
print hyperlinks in command window
LINFACTOR
predecessor to Factorize package
MESHND
nested dissection ordering of regular meshes
pagerankdemo.m
illustrates how PageRank works
SFMULT
C=S*F where S is sparse and F is full
shellgui
display a seashell
sparseinv
sparse inverse subset
spok
check if a sparse matrix is valid
spqr_rank
SPQR_RANK package. MATLAB toolbox for rank deficient sparse matrices: null spaces, reliable factorizations, etc. With Leslie Foster, San Jose State Univ.
SSMULT
C=A*B where A and B are both sparse.
This was the basis for the built-in C=A*B in MATLAB, until it was
superseded by GraphBLAS in MATLAB R2021a.
SuiteSparseCollection
for the SuiteSparse Matrix Collection
waitmex
waitbar for use inside a mexFunction
Mongoose
graph partitioning.
authors: Nuri Yeralan, Scott Kolodziej, William Hager, Tim Davis
ParU
a parallel unsymmetric pattern multifrontal method.
authors: Mohsen Aznaveh and Tim Davis
RBio
read/write sparse matrices in Rutherford/Boeing format
author: Tim Davis
README.md
this file
SPEX
solves sparse linear systems in exact arithmetic.
Requires the GNU GMP and MPRF libraries.
This will be soon replaced by a more general package, SPEX v3 that includes this method (exact sparse LU) and others (sparse exact Cholesky, and sparse exact update/downdate). The API of v3 will be changing significantly.
authors: Chris Lourenco, Jinhao Chen, Erick Moreno-Centeno, Lorena Lorena Mejia Domenzain, and Tim Davis.
See https://github.com/clouren/SPEX for the latest version.
SPQR
sparse QR factorization. This the built-in qr and x=A\b in MATLAB. Also
called SuiteSparseQR.
Includes two GPU libraries: SPQR/GPUQREngine and
`SPQR/SuiteSparse_GPU
No open issues yet, or sync has not completed.