https://github.com/darioizzo/audi

Header only, C++ library (and the Python pyaudi package) implementing the algebra of Taylor truncated polynomials and a few algorithms useful for its applications (Differential Intelligence, automatic differentiation, Taylor Models, etc.)

https://github.com/darioizzo/audi

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.8%) to scientific vocabulary

Keywords from Contributors

meta-heuristic astronomy
Last synced: 10 months ago · JSON representation

Repository

Header only, C++ library (and the Python pyaudi package) implementing the algebra of Taylor truncated polynomials and a few algorithms useful for its applications (Differential Intelligence, automatic differentiation, Taylor Models, etc.)

Basic Info
Statistics
  • Stars: 75
  • Watchers: 8
  • Forks: 19
  • Open Issues: 6
  • Releases: 16
Created almost 11 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

DOI Build Status PyPI Anaconda-Server Badge Anaconda-Server Badge

Audi

Audi (not the car, rather from latin: “listen!”) is an open source, header only, C++ library (exposed to python in the pyaudi package) that implements the algebra of Taylor truncated polynomials and a few algorithms useful for its applications (Differential Intelligence, high-order automatic differentiation, Taylor Models, etc.)

The underlying truncated Taylor polynomial algebra (a differential algebra since integration and derivations are defined too) is dealt with using obake and can deal with high orders and many variables without eating up the whole system memory.

The polynomial multiplication algorithm used in obake (original with the software author Francesco Biscani) takes advantage of sparsity, multiple-threads and cache efficiency allowing a modest memory usage also at high orders.

AuDi was developed with the goal to surpass the capabilities of existing automated differentiation libraries enabling high order differentiation in many variables.

While other automated differentiation codes may be more efficient on some targeted application requesting a specific order and sparsity, AuDi was built to be fast and efficient across all application ranges (low orders, high orders, one variable, many variables, sparse and dense).

Documentation (preliminary) can be found here

Comparison with existing code

Alternative projects that have similar capabilities to AuDi are libtaylor and COSY infinity. Unlike libtaylor AuDi can be used in a dynamic library and can compute at high orders with greater efficiency. Unlike COSY infinity AuDi is entirely open source and has vectorization capabilities.

From the point of view of efficiency, the main difference of AuDi w.r.t. existing codes is in the polinomial multiplication algorithm. AuDi uses the third party obake code and thus gets all the pros and cons of that particular algebraic manipulation system which is still actively developed and was born to deal with massively large polynomial manipulations typically encountered in celestial mechanics perturbation theory. To cut a long story short, AuDi will be "unbeatable" for high orders and many variables (n>=11, m>=11). Below this orders AuDi will still be incredibly memory efficient and fast when used in a machine where multiple threading capabilities are possible.

NEW: Audi also allows for making computations using complex numbers and a vectorized type. This last type allows to compute the derivatives (Taylor polynomial) in multiple points at once, making audi the fastest code of its kind for application such as Machine Learning where this has use. See the folloiwng paper for details on the speed-up w.r.t COSY:

Izzo, Dario, Francesco Biscani, and Alessio Mereta. "Differentiable Genetic Programming." arXiv preprint arXiv:1611.04766 (2016).

pyaudi

Pre-compiled pyaudi binaries are available both from the Pyhton Package Index (PyPi) and from conda-forge. Not all architectures are supported, namely only win64 (PyPi), linux 64 (PyPi and conda) and osx (only conda). The best is to try the following:

conda config --add channels conda-forge conda install pyaudi

or

pip install pyaudi --user

Owner

  • Name: Dario Izzo
  • Login: darioizzo
  • Kind: user
  • Location: Noordwijk
  • Company: European Space Agency

GitHub Events

Total
  • Issues event: 1
  • Watch event: 5
  • Push event: 1
  • Fork event: 1
Last Year
  • Issues event: 1
  • Watch event: 5
  • Push event: 1
  • Fork event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 655
  • Total Committers: 6
  • Avg Commits per committer: 109.167
  • Development Distribution Score (DDS): 0.148
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Dario Izzo d****o@g****m 558
Francesco Biscani b****i@g****m 89
cesans c****z@g****m 4
Joerg H. Mueller n****n@g****m 2
mikeheddes m****s@g****m 1
Dario Izzo d****o@g****m 1

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 36
  • Total pull requests: 27
  • Average time to close issues: 4 months
  • Average time to close pull requests: 17 days
  • Total issue authors: 14
  • Total pull request authors: 5
  • Average comments per issue: 3.03
  • Average comments per pull request: 0.52
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • darioizzo (9)
  • bluescarni (8)
  • cesans (2)
  • delvillarfr (2)
  • Serrof (2)
  • neXyon (2)
  • yurivict (2)
  • miaodi (2)
  • Microno95 (2)
  • echo66 (1)
  • AlOa (1)
  • mikeheddes (1)
  • CoolRunning (1)
  • ianhbell (1)
Pull Request Authors
  • darioizzo (16)
  • bluescarni (7)
  • cesans (2)
  • neXyon (1)
  • mikeheddes (1)
Top Labels
Issue Labels
bug (6) enhancement (4) help wanted (1)
Pull Request Labels

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 248 last-month
  • Total dependent packages: 2
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 39
  • Total maintainers: 2
pypi.org: pyaudi

Implementation of a high-order automated differentiation system using generalized dual numbers. Implementation of a differential algebra.

  • Versions: 13
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 248 Last month
Rankings
Dependent packages count: 4.7%
Stargazers count: 8.3%
Forks count: 8.9%
Average: 11.8%
Downloads: 15.3%
Dependent repos count: 21.7%
Maintainers (2)
Last synced: 11 months ago
conda-forge.org: pyaudi
  • Versions: 11
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent packages count: 28.8%
Average: 33.3%
Dependent repos count: 34.0%
Stargazers count: 34.2%
Forks count: 36.1%
Last synced: 11 months ago
conda-forge.org: audi
  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Stargazers count: 34.2%
Forks count: 36.1%
Average: 38.9%
Dependent packages count: 51.2%
Last synced: 11 months ago

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • microsoft/setup-msbuild v1.0.2 composite