sparsematrixcolorings.jl

Coloring algorithms for sparse Jacobian and Hessian matrices

https://github.com/gdalle/sparsematrixcolorings.jl

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

autodiff automatic-differentiation coloring graph greedy sparse
Last synced: 6 months ago · JSON representation ·

Repository

Coloring algorithms for sparse Jacobian and Hessian matrices

Basic Info
Statistics
  • Stars: 26
  • Watchers: 3
  • Forks: 6
  • Open Issues: 15
  • Releases: 31
Topics
autodiff automatic-differentiation coloring graph greedy sparse
Created almost 2 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

SparseMatrixColorings.jl

Build Status Stable Documentation Dev Documentation Coverage Code Style: Blue arXiv DOI

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:

and inspired by previous works:

Some parts of the articles (like definitions) are thus copied verbatim in the documentation.

Alternatives

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

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

.github/workflows/Documentation.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v2 composite
  • julia-actions/setup-julia v2 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/Test.yml actions
  • 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