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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

heyoka-7.12.1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

heyoka-7.12.1-cp314-cp314t-manylinux_2_28_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

heyoka-7.12.1-cp314-cp314-manylinux_2_28_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

heyoka-7.12.1-cp314-cp314-manylinux_2_28_aarch64.whl (99.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

heyoka-7.12.1-cp313-cp313-manylinux_2_28_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

heyoka-7.12.1-cp312-cp312-manylinux_2_28_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

heyoka-7.12.1-cp311-cp311-manylinux_2_28_x86_64.whl (103.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

File details

Details for the file heyoka-7.12.1.tar.gz.

File metadata

  • Download URL: heyoka-7.12.1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1.tar.gz
Algorithm Hash digest
SHA256 fc169d892e43c7643a335643bb803470abb52b8cfd77014fd245fe5024b450da
MD5 4cfedd781a8759b14d5bdba626ecc9fd
BLAKE2b-256 a688ea534e9ec0e5b4afe5e31fa7e0eb548f1e1cee0498a3d2523240b617256b

See more details on using hashes here.

File details

Details for the file heyoka-7.12.1-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: heyoka-7.12.1-cp314-cp314t-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 103.8 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6a7fb9ccd97b0d2197ef04e7de2328d9b361eccb5a51e5716dbbff0e65021b5
MD5 97d79652efbd03226e37d97ce0a36a52
BLAKE2b-256 4f0829f4d074b6751a9847fc967a8db65f384c96ef7f335d05cf0c2ea31170c5

See more details on using hashes here.

File details

Details for the file heyoka-7.12.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: heyoka-7.12.1-cp314-cp314-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 103.8 MB
  • Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb8b1494ed5843a08c30b934cb2438f7e9399e4a33e101858ed89e23dca272bd
MD5 eb9c9b9cf12b88ba7317388d7aca721a
BLAKE2b-256 0e1d397b561807589e1bb3d755a3b2cd53103617abc1929f0f4bcfd7b3f9149e

See more details on using hashes here.

File details

Details for the file heyoka-7.12.1-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: heyoka-7.12.1-cp314-cp314-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 99.9 MB
  • Tags: CPython 3.14, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0458fa9348f818f6a0d0b05a90d84f9a56c5a4a0d2f650fbd3672e96e64ed7fe
MD5 be434a1c97215b1e5bc35e8b4f25372f
BLAKE2b-256 dc73b9032cbf4c1ba7015c1f429ea55564b87d3d02ef030e4efc76c1aba9184a

See more details on using hashes here.

File details

Details for the file heyoka-7.12.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: heyoka-7.12.1-cp313-cp313-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 103.8 MB
  • Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec73b4f612f54ae8d803b05a7588edc418c938c18a07b30ff99f73c71bed9a55
MD5 2950aecdba494713e26b9acc62d29669
BLAKE2b-256 af8df0b5ef834ff0ded3931fc44416538904f20c47c2fc1a5b393faa000b6e65

See more details on using hashes here.

File details

Details for the file heyoka-7.12.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: heyoka-7.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 103.8 MB
  • Tags: CPython 3.12, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15ec0a3107820bb4ae998108524bc12083b95b6695ca68360569e61f787c6b49
MD5 b9b8ec96408d0a3aa233422e2e5b43c9
BLAKE2b-256 2bc38c3ccf62ab592ac59573e88eff907066d89774073d45314428514650ecb0

See more details on using hashes here.

File details

Details for the file heyoka-7.12.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: heyoka-7.12.1-cp311-cp311-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 103.8 MB
  • Tags: CPython 3.11, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","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}

File hashes

Hashes for heyoka-7.12.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b039c25dc6e44fc20bc1f016f17977c2a2cccf14b81110fc8ab921f601d18a3f
MD5 adf14896e1503edac715711464402f11
BLAKE2b-256 9a4f40c3936f822c8afd1e2544826e52524775db66e9a053a7a842fcc87a57c2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

7.12.1 This release

7 files

7.12.0

6 files

7.11.1

11 files

7.11.0

11 files

7.10.1

11 files

7.9.2

11 files

7.9.1

11 files

7.8.1

11 files

7.8.0

11 files

7.7.0

11 files

7.6.0

11 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