Skip to main content

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.

Release files for heyoka 7.13.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for heyoka 7.13.2
File Size Uploaded
heyoka-7.13.2.tar.gz 1.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for heyoka 7.13.2
File
heyoka-7.13.2-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details
heyoka-7.13.2-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details
heyoka-7.13.2-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.2-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
heyoka-7.13.2-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.2-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
heyoka-7.13.2-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.2-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
heyoka-7.13.2-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.2-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details

Total release size: 1.0 GB

Release files / heyoka-7.13.2.tar.gz

Download URL heyoka-7.13.2.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
90700ffb2ac9a801d61cd8d73076e2eb69c91097154a1e80a52084fba7405de6
BLAKE2b-256 checksum
How to use checksums
32013fb5769e90246ea12ee83ec8f1ce72a4771210ae89201233771589982b41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 104.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1be991180549b50770ed60dc6cb2e8332b7ffc250fef4a688f19b791733ceff1
BLAKE2b-256 checksum
How to use checksums
1545ad0dee64171cdb1ceadf727a0739147452a04363035abb5340056be7ccd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 100.1 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ba3df6ca67156a57a47cb418047da3e06e84a0054ae71b34d2bdd81ebb6c6fe8
BLAKE2b-256 checksum
How to use checksums
e58d9ef5430a404c104d1c2cbee2b3a87a7c6b9987aeaa604a52c4d6472e7561
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.2-cp314-cp314-manylinux_2_28_x86_64.whl
Size 103.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
03a924d88c6e7cc2b42e59691177c06499bb0dffb57059c16a1462ee764a3c10
BLAKE2b-256 checksum
How to use checksums
a52e9b627f69cf311ce244f3297529b0b8d6d70781d1a92340e55d21c566fcbe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.2-cp314-cp314-manylinux_2_28_aarch64.whl
Size 100.1 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ff23e457fd00bf8a0693864073043f0df8e0118c3e055182ca84e28f6b000983
BLAKE2b-256 checksum
How to use checksums
aaeca23b3448c014b9da5005a5f9964b8eae755ddbeca114a7d5f0b92eb3a05a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.2-cp313-cp313-manylinux_2_28_x86_64.whl
Size 103.9 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b8cdc7f99100f1dc020137e290083e69708fdf74fe924283c8a8aa645712dcf6
BLAKE2b-256 checksum
How to use checksums
f929fbf6d2c545d785e89c0c28038cfa5893b7b25b1e4ef8b127dbf463a621b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.2-cp313-cp313-manylinux_2_28_aarch64.whl
Size 100.1 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1ba5b9494fec938b8322329eddc3cd6ff9a6b477e1951594b765bfff32852d72
BLAKE2b-256 checksum
How to use checksums
3955fb5ab7bbba55f2ef80eaa495fc9e79c7a171e0af2a0aede798d370f947ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.2-cp312-cp312-manylinux_2_28_x86_64.whl
Size 103.9 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c2b537f6d1768b74fdc1a2c19d39f8620248ba64f9f0923faeea5791ccd2732e
BLAKE2b-256 checksum
How to use checksums
7e8a4859829f55af43bf596694a8f1b460b8ef5333e57e217ae3893550a35e88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.2-cp312-cp312-manylinux_2_28_aarch64.whl
Size 100.1 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
08a0c4e5c577bfb069763043a832002304ca59388e49af22121c528b9fdb4307
BLAKE2b-256 checksum
How to use checksums
6294f6f4037fac7e2a2a2a455eacebd078fe9d5572ba570ac45ac48e6200c47a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.2-cp311-cp311-manylinux_2_28_x86_64.whl
Size 103.9 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d8ebf379ef17f6cdba2ba8c57716866dd4ac59c4c6ec9d79a3d647d22dce22c4
BLAKE2b-256 checksum
How to use checksums
fcd6941fa3e3a544d43768902c222f1619dc59b63016faba3500a8991e6d7312
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heyoka-7.13.2-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.2-cp311-cp311-manylinux_2_28_aarch64.whl
Size 100.0 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b2d3d0936a7bd8d6a8edf77bd14caf445bb88de29b53e91f457d8cee846c073e
BLAKE2b-256 checksum
How to use checksums
2e2b20ed3987fcde30c1d1c23f348af8115d8269fd68214b1daf49302549c6e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"AlmaLinux","version":"8.10","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

7.13.2 This release

11 release files

7.12.1

7 release files

7.12.0

6 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page