sparsematrixcolorings.jl
Coloring algorithms for sparse Jacobian and Hessian matrices
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, acm.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.3%) to scientific vocabulary
Keywords
Repository
Coloring algorithms for sparse Jacobian and Hessian matrices
Basic Info
- Host: GitHub
- Owner: gdalle
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://gdalle.github.io/SparseMatrixColorings.jl/
- Size: 3.08 MB
Statistics
- Stars: 26
- Watchers: 3
- Forks: 6
- Open Issues: 15
- Releases: 31
Topics
Metadata Files
README.md
SparseMatrixColorings.jl
Coloring algorithms for sparse Jacobian and Hessian matrices.
Getting started
To install this package, run the following in a Julia Pkg REPL:
julia
pkg> add SparseMatrixColorings
Background
The algorithms implemented in this package are described in the following preprint:
- Revisiting Sparse Matrix Coloring and Bicoloring, Montoison et al. (2025)
and inspired by previous works:
- What Color Is Your Jacobian? Graph Coloring for Computing Derivatives, Gebremedhin et al. (2005)
- New Acyclic and Star Coloring Algorithms with Application to Computing Hessians, Gebremedhin et al. (2007)
- Efficient Computation of Sparse Hessians Using Coloring and Automatic Differentiation, Gebremedhin et al. (2009)
- ColPack: Software for graph coloring and related problems in scientific computing, Gebremedhin et al. (2013)
Some parts of the articles (like definitions) are thus copied verbatim in the documentation.
Alternatives
- ColPack.jl: a Julia interface to the C++ library ColPack
- SparseDiffTools.jl: contains Julia implementations of some coloring algorithms
Citing
Please cite this software using the provided CITATION.cff file or the .bib entry below:
bibtex
@unpublished{montoison2025revisitingsparsematrixcoloring,
title={Revisiting Sparse Matrix Coloring and Bicoloring},
author={Alexis Montoison and Guillaume Dalle and Assefaw Gebremedhin},
year={2025},
eprint={2505.07308},
archivePrefix={arXiv},
primaryClass={math.NA},
url={https://arxiv.org/abs/2505.07308},
}
The link https://zenodo.org/doi/10.5281/zenodo.11314275 resolves to the latest version on Zenodo.
Owner
- Name: Guillaume Dalle
- Login: gdalle
- Kind: user
- Location: Lausanne
- Company: EPFL
- Website: https://gdalle.github.io/
- Twitter: giomdal
- Repositories: 21
- Profile: https://github.com/gdalle
Postdoctoral researcher
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: SparseMatrixColorings.jl
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Guillaume
family-names: Dalle
orcid: 'https://orcid.org/0000-0003-4866-1687'
- given-names: Alexis
family-names: Montoison
orcid: 'https://orcid.org/0000-0002-3403-5450'
identifiers:
- type: doi
value: 10.5281/zenodo.11314275
description: Zenodo
repository-code: 'https://github.com/gdalle/SparseMatrixColorings.jl'
abstract: >-
Coloring algorithms for sparse Jacobian and Hessian
matrices
keywords:
- graph coloring
- sparse matrices
- automatic differentiation
- julia programming language
license: MIT
preferred-citation:
authors:
- given-names: Alexis
family-names: Montoison
orcid: 'https://orcid.org/0000-0002-3403-5450'
- given-names: Guillaume
family-names: Dalle
orcid: 'https://orcid.org/0000-0003-4866-1687'
- given-names: Assefaw
family-names: Gebremedhin
orcid: 'https://orcid.org/0000-0001-5383-8032'
title: "Revisiting Sparse Matrix Coloring and Bicoloring"
year: 2025
type: article
url: 'https://arxiv.org/abs/2505.07308'
identifiers:
- type: doi
value: 10.48550/arXiv.2505.07308
description: Arxiv
abstract: "Sparse matrix coloring and bicoloring are fundamental building blocks of sparse automatic differentiation. Bicoloring is particularly advantageous for rectangular Jacobian matrices with at least one dense row and column. Indeed, in such cases, unidirectional row or column coloring demands a number of colors equal to the number of rows or columns. We introduce a new strategy for bicoloring that encompasses both direct and substitution-based decompression approaches. Our method reformulates the two variants of bicoloring as star and acyclic colorings of an augmented symmetric matrix. We extend the concept of neutral colors, previously exclusive to bicoloring, to symmetric colorings, and we propose a post-processing routine that neutralizes colors to further reduce the overall color count. We also present the Julia package SparseMatrixColorings, which includes these new bicoloring algorithms alongside all standard coloring methods for sparse derivative matrix computation. Compared to ColPack, the Julia package also offers enhanced implementations for star and acyclic coloring, vertex ordering, as well as decompression."
GitHub Events
Total
- Create event: 93
- Commit comment event: 24
- Issues event: 42
- Release event: 13
- Watch event: 9
- Delete event: 75
- Issue comment event: 223
- Push event: 410
- Pull request review event: 185
- Pull request review comment event: 165
- Pull request event: 165
- Fork event: 3
Last Year
- Create event: 93
- Commit comment event: 24
- Issues event: 42
- Release event: 13
- Watch event: 9
- Delete event: 75
- Issue comment event: 223
- Push event: 410
- Pull request review event: 185
- Pull request review comment event: 165
- Pull request event: 165
- Fork event: 3
Dependencies
- actions/checkout v4 composite
- julia-actions/cache v2 composite
- julia-actions/setup-julia v2 composite
- JuliaRegistries/TagBot v1 composite
- actions/checkout v4 composite
- codecov/codecov-action v4 composite
- julia-actions/cache v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v2 composite