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.1

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.1
File Size Uploaded
heyoka-7.13.1.tar.gz 1.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for heyoka 7.13.1
File
heyoka-7.13.1-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.1-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details
heyoka-7.13.1-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.1-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
heyoka-7.13.1-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.1-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
heyoka-7.13.1-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.1-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
heyoka-7.13.1-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
heyoka-7.13.1-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.1.tar.gz

Download URL heyoka-7.13.1.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
4c18f5d0f385b00b779e7b5e12efdda535330d0028dce74f7040cfb34ed459cb
BLAKE2b-256 checksum
How to use checksums
a1cebc2324edef332a7eb434d1ab9d277efc9c797b595ada886bda782477bc3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.1-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
d4ccc96331c6690107c65a4a422c7a46e09c118e5f194dc3116d20dc50e0c1ff
BLAKE2b-256 checksum
How to use checksums
b0a614e11bd8a385187c2defe89a7aa4e1a1b6a74c98ed3796cab40381ed4b94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.1-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
218210559bc708e1e498223f62d569e248036cb9ef77d22f01764b3b424c25e2
BLAKE2b-256 checksum
How to use checksums
055425740fde309abe170a04e94f11e5418d92142d652cd8b3b9b513e5035945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.1-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
5c927f27e1fe29ed38c0d9927008c822debce7366d3bb451dafe00718f5d71a7
BLAKE2b-256 checksum
How to use checksums
d589950a86d6e8dea497176f440e8d134cf1f4393982fc24515566a35d082484
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.1-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
9a9de1d86789f849614625a8eab54996e4f75f7f4e49b24e5429e8a790f93698
BLAKE2b-256 checksum
How to use checksums
a61798825dcb547d4ec741e93fdf90c48865533b1680df3a3ba3a9e9ed06a06d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.1-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
60bf3d03a8cdbef5a5dac148db649231b6a3e811f9cdbe811bcea3bc54fff750
BLAKE2b-256 checksum
How to use checksums
4623ad6a0c4e775755b1e6c2e182f0010455398195503ac56b9b5c45cde7de4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.1-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
21c716f604b8cfc60c289a99042434c641338fbfe3b516966e779474c39a7bbe
BLAKE2b-256 checksum
How to use checksums
3d96d3312169dae03ad7c1c3176b78dadf0824868fcfd1cc79b0cacaa0379f4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.1-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
a7fe57a0bf1122595ff19ff6a1013737f055db79f3bfb55b9bee16596729ffd7
BLAKE2b-256 checksum
How to use checksums
e9e9cbfdc24c30a721a9ab9e05c7d0855b84b876b030fa9678ffe7517ff59a02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.1-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
d7faf9909c15526a5210584afbd012e2ed7687a04c3645bdfc7973112e9472b9
BLAKE2b-256 checksum
How to use checksums
797ebf42993d3357f8f9864c2b716d54c38e2aa4eedd8e574d293a8c877efa92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL heyoka-7.13.1-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
72b54be68fec21abf903dfed26eaa52fe43a74e371f28def6c1264b3f18900ca
BLAKE2b-256 checksum
How to use checksums
b148bda8064a460f3d81aba0af901ea48773a6ae727df80835d541bc25fc1574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL heyoka-7.13.1-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
cd3dcaa420a7fb69c15f95dbcefb63ec9cf30ce3247766a7d44a19799eb3686d
BLAKE2b-256 checksum
How to use checksums
4e291a6db38f7121c5e8cb4be8fc1b94b15db8c879e4e7852c17962adc051233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1 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