Skip to content

Commit a34cbdd

Browse files
amontoisongdalle
andauthored
[documentation] Add tutorials & citation (#192)
* [documentation] Add tutorials * Use the option push_preview=true * Use JuliaFormatter on docs/make.jl * Update tutorials.md * Refresh tutorial, add citations --------- Co-authored-by: Guillaume Dalle <[email protected]>
1 parent 172fd12 commit a34cbdd

File tree

6 files changed

+380
-5
lines changed

6 files changed

+380
-5
lines changed

CITATION.cff

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,23 @@ keywords:
2828
- automatic differentiation
2929
- julia programming language
3030
license: MIT
31+
preferred-citation:
32+
authors:
33+
- given-names: Alexis
34+
family-names: Montoison
35+
orcid: 'https://orcid.org/0000-0002-3403-5450'
36+
- given-names: Guillaume
37+
family-names: Dalle
38+
orcid: 'https://orcid.org/0000-0003-4866-1687'
39+
- given-names: Assefaw
40+
family-names: Gebremedhin
41+
orcid: 'https://orcid.org/0000-0001-5383-8032'
42+
title: "Revisiting Sparse Matrix Coloring and Bicoloring"
43+
year: 2025
44+
type: article
45+
url: 'https://arxiv.org/abs/2505.07308'
46+
identifiers:
47+
- type: doi
48+
value: 10.48550/arXiv.2505.07308
49+
description: Arxiv
50+
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."

README.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
[![Dev Documentation](https://img.shields.io/badge/docs-dev-blue.svg)](https://gdalle.github.io/SparseMatrixColorings.jl/dev/)
66
[![Coverage](https://codecov.io/gh/gdalle/SparseMatrixColorings.jl/branch/main/graph/badge.svg)](https://app.codecov.io/gh/gdalle/SparseMatrixColorings.jl)
77
[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/JuliaDiff/BlueStyle)
8+
[![arXiv](https://img.shields.io/badge/arXiv-2505.07308-b31b1b.svg)](https://arxiv.org/abs/2505.07308)
89
[![DOI](https://zenodo.org/badge/801999408.svg)](https://zenodo.org/doi/10.5281/zenodo.11314275)
910

1011
Coloring algorithms for sparse Jacobian and Hessian matrices.
@@ -19,7 +20,11 @@ pkg> add SparseMatrixColorings
1920

2021
## Background
2122

22-
The algorithms implemented in this package are taken from the following articles:
23+
The algorithms implemented in this package are described in the following preprint:
24+
25+
- [_Revisiting Sparse Matrix Coloring and Bicoloring_](https://arxiv.org/abs/2505.07308), Montoison et al. (2025)
26+
27+
and inspired by previous works:
2328

2429
- [_What Color Is Your Jacobian? Graph Coloring for Computing Derivatives_](https://epubs.siam.org/doi/10.1137/S0036144504444711), Gebremedhin et al. (2005)
2530
- [_New Acyclic and Star Coloring Algorithms with Application to Computing Hessians_](https://epubs.siam.org/doi/abs/10.1137/050639879), Gebremedhin et al. (2007)
@@ -35,5 +40,18 @@ Some parts of the articles (like definitions) are thus copied verbatim in the do
3540

3641
## Citing
3742

38-
Please cite this software using the provided `CITATION.cff` file.
43+
Please cite this software using the provided `CITATION.cff` file or the `.bib` entry below:
44+
45+
```bibtex
46+
@unpublished{montoison2025revisitingsparsematrixcoloring,
47+
title={Revisiting Sparse Matrix Coloring and Bicoloring},
48+
author={Alexis Montoison and Guillaume Dalle and Assefaw Gebremedhin},
49+
year={2025},
50+
eprint={2505.07308},
51+
archivePrefix={arXiv},
52+
primaryClass={math.NA},
53+
url={https://arxiv.org/abs/2505.07308},
54+
}
55+
```
56+
3957
The link <https://zenodo.org/doi/10.5281/zenodo.11314275> resolves to the latest version on Zenodo.

docs/make.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,14 @@ makedocs(;
1212
sitename="SparseMatrixColorings.jl",
1313
format=Documenter.HTML(),
1414
pages=[
15-
"Home" => "index.md", "api.md", "Developer Documentation" => ["dev.md", "vis.md"]
15+
"Home" => "index.md",
16+
"tutorial.md",
17+
"api.md",
18+
"Developer Documentation" => ["dev.md", "vis.md"],
1619
],
1720
plugins=[links],
1821
)
1922

20-
deploydocs(; repo="github.com/gdalle/SparseMatrixColorings.jl", devbranch="main")
23+
deploydocs(;
24+
repo="github.com/gdalle/SparseMatrixColorings.jl", push_preview=true, devbranch="main"
25+
)

0 commit comments

Comments
 (0)