AbstractDifferentiation

An abstract interface for automatic differentiation.

https://github.com/juliadiff/abstractdifferentiation.jl

Science Score: 54.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
  • Academic publication links
  • Committers with academic emails
    1 of 11 committers (9.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary

Keywords from Contributors

numerical pde automatic-differentiation matrix-exponential julialang sde ode differential-equations differentialequations sciml
Last synced: 10 months ago · JSON representation ·

Repository

An abstract interface for automatic differentiation.

Basic Info
Statistics
  • Stars: 140
  • Watchers: 12
  • Forks: 17
  • Open Issues: 46
  • Releases: 16
Created over 5 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

AbstractDifferentiation

Stable Dev CI Coverage Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Motivation

This is a package that implements an abstract interface for differentiation in Julia. This is particularly useful for implementing abstract algorithms requiring derivatives, gradients, jacobians, Hessians or multiple of those without depending on specific automatic differentiation packages' user interfaces.

Julia has more (automatic) differentiation packages than you can count on 2 hands. Different packages have different user interfaces. Therefore, having a backend-agnostic interface to request the function value and its gradient for example is necessary to avoid a combinatorial explosion of code when trying to support every differentiation package in Julia in every algorithm package requiring gradients. For higher order derivatives, the situation is even more dire since you can combine any 2 differentiation backends together to create a new higher-order backend.

Getting started

  • If you are an autodiff user and want to write code in a backend-agnostic way, read the user guide in the docs.
  • If you are an autodiff developer and want your backend to implement the interface, read the implementer guide in the docs (still in construction).

Citing this package

If you use this package in your work, please cite the package:

bib @article{schafer2021abstractdifferentiation, title={AbstractDifferentiation. jl: Backend-Agnostic Differentiable Programming in Julia}, author={Sch{\"a}fer, Frank and Tarek, Mohamed and White, Lyndon and Rackauckas, Chris}, journal={NeurIPS 2021 Differentiable Programming Workshop}, year={2021} }

Owner

  • Name: JuliaDiff
  • Login: JuliaDiff
  • Kind: organization

Differentiation Tools in Julia

Citation (Citation.bib)

@article{schafer2021abstractdifferentiation,
  title={AbstractDifferentiation. jl: Backend-Agnostic Differentiable Programming in Julia},
  author={Sch{\"a}fer, Frank and Tarek, Mohamed and White, Lyndon and Rackauckas, Chris},
  journal={NeurIPS 2021 Differentiable Programming Workshop},
  year={2021}
}

GitHub Events

Total
  • Issues event: 1
  • Watch event: 3
  • Pull request event: 3
  • Fork event: 1
  • Create event: 2
Last Year
  • Issues event: 1
  • Watch event: 3
  • Pull request event: 3
  • Fork event: 1
  • Create event: 2

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 93
  • Total Committers: 11
  • Avg Commits per committer: 8.455
  • Development Distribution Score (DDS): 0.677
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
David Widmann d****n 30
Frank Schaefer f****r@u****h 23
Mohamed Tarek m****8@g****m 16
Seth Axen s****n@g****m 9
Guillaume Dalle 2****e 7
github-actions[bot] 4****] 2
dependabot[bot] 4****] 2
Hendrik Ranocha m****l@r****e 1
Gabriel Gerlero g****o 1
Christopher Rackauckas a****s@c****m 1
Adrian Hill a****l@m****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 69
  • Total pull requests: 69
  • Average time to close issues: 9 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 20
  • Total pull request authors: 15
  • Average comments per issue: 3.07
  • Average comments per pull request: 3.64
  • Merged pull requests: 49
  • Bot issues: 0
  • Bot pull requests: 9
Past Year
  • Issues: 1
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • gdalle (17)
  • sethaxen (12)
  • mohamed82008 (9)
  • oxinabox (4)
  • prbzrg (4)
  • marius311 (4)
  • Qfl3x (2)
  • devmotion (2)
  • ChrisRackauckas (2)
  • adrhill (1)
  • alecloudenback (1)
  • ToucheSir (1)
  • gaurav-arya (1)
  • fph (1)
  • scheidan (1)
Pull Request Authors
  • devmotion (16)
  • sethaxen (12)
  • mohamed82008 (10)
  • dependabot[bot] (8)
  • github-actions[bot] (6)
  • gdalle (6)
  • ranocha (3)
  • frankschae (3)
  • marius311 (2)
  • prbzrg (2)
  • gerlero (2)
  • timholy (2)
  • ChrisRackauckas (1)
  • adrhill (1)
  • ToucheSir (1)
Top Labels
Issue Labels
feature (12) design (9) question (6) bug (5) performance (5) documentation (5) help wanted (4) good first issue (2) enhancement (1) wontfix (1)
Pull Request Labels
dependencies (6) feature (3) help wanted (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 63 total
  • Total dependent packages: 15
  • Total dependent repositories: 0
  • Total versions: 16
juliahub.com: AbstractDifferentiation

An abstract interface for automatic differentiation.

  • Versions: 16
  • Dependent Packages: 15
  • Dependent Repositories: 0
  • Downloads: 63 Total
Rankings
Dependent packages count: 6.4%
Stargazers count: 7.0%
Average: 8.8%
Dependent repos count: 9.9%
Forks count: 11.7%
Last synced: 10 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/CompatHelper.yml actions