Skip to content

Commit 2b7c5e9

Browse files
authored
chore: update citation to JMLR paper (#973)
1 parent 7e80fef commit 2b7c5e9

2 files changed

Lines changed: 55 additions & 53 deletions

File tree

CITATION.cff

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ references:
5858
abstract: An abstract interface for automatic differentiation.
5959
license: MIT
6060
preferred-citation:
61-
type: generic
61+
type: article
6262
authors:
6363
- family-names: "Dalle"
6464
given-names: "Guillaume"
@@ -67,9 +67,9 @@ preferred-citation:
6767
given-names: "Adrian"
6868
orcid: "https://orcid.org/0009-0009-5977-301X"
6969
title: "A Common Interface for Automatic Differentiation"
70-
year: 2025
71-
eprint: "2505.05542"
72-
archivePrefix: "arXiv"
73-
primaryClass: "cs.MS"
74-
url: "https://arxiv.org/abs/2505.05542"
75-
doi: "10.48550/arXiv.2505.05542"
70+
year: 2026
71+
journal: "Journal of Machine Learning Research"
72+
volume: 27
73+
number: 25
74+
pages: "1--13"
75+
url: "http://jmlr.org/papers/v27/25-1024.html"

DifferentiationInterface/README.md

Lines changed: 48 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -19,31 +19,31 @@ An interface to various automatic differentiation (AD) backends in Julia.
1919

2020
This package provides a unified syntax to differentiate functions, including:
2121

22-
- First- and second-order operators (gradients, Jacobians, Hessians and more)
23-
- In-place and out-of-place differentiation
24-
- Preparation mechanism (e.g. to pre-allocate a cache or record a tape)
25-
- Built-in sparsity handling
26-
- Thorough validation on standard inputs and outputs (numbers, vectors, matrices)
27-
- Testing and benchmarking utilities accessible to users with [DifferentiationInterfaceTest](https://github.com/JuliaDiff/DifferentiationInterface.jl/tree/main/DifferentiationInterfaceTest)
22+
- First- and second-order operators (gradients, Jacobians, Hessians and more)
23+
- In-place and out-of-place differentiation
24+
- Preparation mechanism (e.g. to pre-allocate a cache or record a tape)
25+
- Built-in sparsity handling
26+
- Thorough validation on standard inputs and outputs (numbers, vectors, matrices)
27+
- Testing and benchmarking utilities accessible to users with [DifferentiationInterfaceTest](https://github.com/JuliaDiff/DifferentiationInterface.jl/tree/main/DifferentiationInterfaceTest)
2828

2929
## Compatibility
3030

3131
We support the following backends defined by [ADTypes.jl](https://github.com/SciML/ADTypes.jl):
3232

33-
- [ChainRulesCore.jl](https://github.com/JuliaDiff/ChainRulesCore.jl)
34-
- [Diffractor.jl](https://github.com/JuliaDiff/Diffractor.jl) (currently broken)
35-
- [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) (see below)
36-
- [FastDifferentiation.jl](https://github.com/brianguenter/FastDifferentiation.jl)
37-
- [FiniteDiff.jl](https://github.com/JuliaDiff/FiniteDiff.jl)
38-
- [FiniteDifferences.jl](https://github.com/JuliaDiff/FiniteDifferences.jl)
39-
- [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl)
40-
- [GTPSA.jl](https://github.com/bmad-sim/GTPSA.jl)
41-
- [Mooncake.jl](https://github.com/chalk-lab/Mooncake.jl)
42-
- [PolyesterForwardDiff.jl](https://github.com/JuliaDiff/PolyesterForwardDiff.jl)
43-
- [ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl)
44-
- [Symbolics.jl](https://github.com/JuliaSymbolics/Symbolics.jl)
45-
- [Tracker.jl](https://github.com/FluxML/Tracker.jl)
46-
- [Zygote.jl](https://github.com/FluxML/Zygote.jl)
33+
- [ChainRulesCore.jl](https://github.com/JuliaDiff/ChainRulesCore.jl)
34+
- [Diffractor.jl](https://github.com/JuliaDiff/Diffractor.jl) (currently broken)
35+
- [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) (see below)
36+
- [FastDifferentiation.jl](https://github.com/brianguenter/FastDifferentiation.jl)
37+
- [FiniteDiff.jl](https://github.com/JuliaDiff/FiniteDiff.jl)
38+
- [FiniteDifferences.jl](https://github.com/JuliaDiff/FiniteDifferences.jl)
39+
- [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl)
40+
- [GTPSA.jl](https://github.com/bmad-sim/GTPSA.jl)
41+
- [Mooncake.jl](https://github.com/chalk-lab/Mooncake.jl)
42+
- [PolyesterForwardDiff.jl](https://github.com/JuliaDiff/PolyesterForwardDiff.jl)
43+
- [ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl)
44+
- [Symbolics.jl](https://github.com/JuliaSymbolics/Symbolics.jl)
45+
- [Tracker.jl](https://github.com/FluxML/Tracker.jl)
46+
- [Zygote.jl](https://github.com/FluxML/Zygote.jl)
4747

4848
> [!CAUTION]
4949
> Note that in some cases, going through DifferentiationInterface.jl might be slower or cause more errors than a direct call to the backend's API. This is especially true for Enzyme.jl, whose handling of activities and multiple arguments is not fully supported here. We are working on this challenge, and welcome any suggestions or contributions. Meanwhile, if differentiation fails or takes too long, consider using Enzyme.jl through its [native API](https://enzymead.github.io/Enzyme.jl/stable/) instead.
@@ -92,42 +92,44 @@ To improve your performance by up to several orders of magnitude compared to thi
9292

9393
Whenever you refer to this package or the ideas it contains, please cite:
9494

95-
1. our preprint [*A Common Interface for Automatic Differentiation*](https://arxiv.org/abs/2505.05542);
95+
1. our JMLR paper [*A Common Interface for Automatic Differentiation*](https://jmlr.org/papers/v27/25-1024.html);
9696
2. our inspiration [AbstractDifferentiation.jl](https://github.com/JuliaDiff/AbstractDifferentiation.jl).
97+
3. if you use sparse differentiation capabilities, our companion packages [SparseConnectivityTracer.jl](https://github.com/adrhill/SparseConnectivityTracer.jl) and [SparseMatrixColorings.jl](https://github.com/gdalle/SparseMatrixColorings.jl) which provide these capabilities (see their respective repositories for guidelines).
9798

98-
You can use the provided [`CITATION.cff`](https://github.com/JuliaDiff/DifferentiationInterface.jl/blob/main/CITATION.cff) file or the following BibTeX entries:
99+
For the first two items, you can use the provided [`CITATION.cff`](https://github.com/JuliaDiff/DifferentiationInterface.jl/blob/main/CITATION.cff) file or the following BibTeX entries:
99100

100101
```bibtex
101-
@misc{dalle2025commoninterfaceautomaticdifferentiation,
102-
title={A Common Interface for Automatic Differentiation},
103-
author={Guillaume Dalle and Adrian Hill},
104-
year={2025},
105-
eprint={2505.05542},
106-
archivePrefix={arXiv},
107-
primaryClass={cs.MS},
108-
url={https://arxiv.org/abs/2505.05542},
102+
@article{dalle2026commoninterfaceautomaticdifferentiation,
103+
author = {Guillaume Dalle and Adrian Hill},
104+
title = {A Common Interface for Automatic Differentiation},
105+
journal = {Journal of Machine Learning Research},
106+
year = {2026},
107+
volume = {27},
108+
number = {25},
109+
pages = {1--13},
110+
url = {http://jmlr.org/papers/v27/25-1024.html}
109111
}
110112
111-
@misc{schäfer2022abstractdifferentiationjlbackendagnosticdifferentiableprogramming,
112-
title={AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia},
113-
author={Frank Schäfer and Mohamed Tarek and Lyndon White and Chris Rackauckas},
114-
year={2022},
115-
eprint={2109.12449},
116-
archivePrefix={arXiv},
117-
primaryClass={cs.MS},
118-
url={https://arxiv.org/abs/2109.12449},
113+
@misc{schäfer2022abstractdifferentiationjlbackendagnostic,
114+
title = {AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia},
115+
author = {Frank Schäfer and Mohamed Tarek and Lyndon White and Chris Rackauckas},
116+
year = {2022},
117+
eprint = {2109.12449},
118+
archiveprefix = {arXiv},
119+
primaryclass = {cs.MS},
120+
url = {https://arxiv.org/abs/2109.12449}
119121
}
120122
```
121123

122-
If you use the software, additionally cite us using the precise [Zenodo DOI](https://zenodo.org/records/11092033) of the package version you used, or the BibTeX entry below:
124+
If you run the actual software as part of your experiments, please cite the precise [Zenodo DOI](https://zenodo.org/records/11092033) of the package version you used, or the BibTeX entry below:
123125

124126
```bibtex
125-
@software{dalleDifferentiationInterface2025,
126-
author={Dalle, Guillaume and Hill, Adrian},
127-
title={Differentiation{I}nterface.jl},
128-
year={2024},
129-
publisher={Zenodo},
130-
doi={10.5281/zenodo.11092033},
131-
url={https://doi.org/10.5281/zenodo.11092033},
127+
@software{dalle2024DifferentiationInterface202,
128+
author = {Dalle, Guillaume and Hill, Adrian},
129+
title = {Differentiation{I}nterface.jl},
130+
year = {2024},
131+
publisher = {Zenodo},
132+
doi = {10.5281/zenodo.11092033},
133+
url = {https://doi.org/10.5281/zenodo.11092033}
132134
}
133135
```

0 commit comments

Comments
 (0)