bluescarni
heyoka.py
Python

Python library for ODE integration via Taylor's method and LLVM

Last updated Jul 2, 2026
89
Stars
14
Forks
3
Issues
+1
Stars/day
Attention Score
36
Language breakdown
No language data available.
โ–ธ Files click to expand
README

heyoka.py =========

Build Status Build Status

Anaconda-Server Badge PyPI


Logo

Modern Taylor's method via just-in-time compilation
Explore the docs ยป

Report bug ยท Request feature ยท Discuss

heyoka.py is a Python library for the integration of ordinary differential equations (ODEs) via Taylor's method, based on automatic differentiation techniques and aggressive just-in-time compilation via LLVM. Notable features include:

  • support for single-precision, double-precision, extended-precision (80-bit and 128-bit),
and arbitrary-precision floating-point types,
  • high-precision zero-cost dense output,
  • accurate and reliable event detection,
  • builtin support for analytical mechanics - bring your own Lagrangians/Hamiltonians
and let heyoka.py formulate and solve the equations of motion,
  • builtin support for operational Earth-orbiting spacecraft analysis, including frame
transformations, high-fidelity geopotential models, Earth Orientation Parameters (EOP), atmospheric models, space weather effects, ephemeris-based third-body perturbations,
  • builtin support for high-order variational equations - compute not only the solution,
but also its partial derivatives,
  • builtin support for machine learning applications via neural network models,
  • the ability to maintain machine precision accuracy over
tens of billions of timesteps,
  • batch mode integration to harness the power of modern
SIMD instruction sets (including AVX/AVX2/AVX-512/Neon/VSX),
  • ensemble simulations and automatic parallelisation,
  • interoperability with SymPy.
heyoka.py is based on the heyoka C++ library.

If you are using heyoka.py as part of your research, teaching, or other activities, we would be grateful if you could star the repository and/or cite our work. For citation purposes, you can use the following BibTex entry, which refers to the heyoka.py paper (arXiv preprint):

@article{10.1093/mnras/stab1032,
    author = {Biscani, Francesco and Izzo, Dario},
    title = "{Revisiting high-order Taylor methods for astrodynamics and celestial mechanics}",
    journal = {Monthly Notices of the Royal Astronomical Society},
    volume = {504},
    number = {2},
    pages = {2614-2628},
    year = {2021},
    month = {04},
    issn = {0035-8711},
    doi = {10.1093/mnras/stab1032},
    url = {https://doi.org/10.1093/mnras/stab1032},
    eprint = {https://academic.oup.com/mnras/article-pdf/504/2/2614/37750349/stab1032.pdf}
}

heyoka.py's novel event detection system is described in the following paper (arXiv preprint):

@article{10.1093/mnras/stac1092,
    author = {Biscani, Francesco and Izzo, Dario},
    title = "{Reliable event detection for Taylor methods in astrodynamics}",
    journal = {Monthly Notices of the Royal Astronomical Society},
    volume = {513},
    number = {4},
    pages = {4833-4844},
    year = {2022},
    month = {04},
    issn = {0035-8711},
    doi = {10.1093/mnras/stac1092},
    url = {https://doi.org/10.1093/mnras/stac1092},
    eprint = {https://academic.oup.com/mnras/article-pdf/513/4/4833/43796551/stac1092.pdf}
}

Installation


Via pip:

$ pip install heyoka

Via conda + conda-forge:

$ conda install heyoka.py

Documentation


The full documentation can be found here.

Authors


  • Francesco Biscani (European Space Agency)
  • Dario Izzo (European Space Agency)
License

heyoka.py is released under the MPL-2.0 license.

ยฉ 2026 GitRepoTrend ยท bluescarni/heyoka.py ยท Updated daily from GitHub