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.0.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.0-cp314-cp314t-manylinux_2_28_aarch64.whl (101.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

heyoka-7.12.0-cp314-cp314-manylinux_2_28_aarch64.whl (101.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

heyoka-7.12.0-cp313-cp313-manylinux_2_28_aarch64.whl (101.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

heyoka-7.12.0-cp312-cp312-manylinux_2_28_aarch64.whl (101.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

heyoka-7.12.0-cp311-cp311-manylinux_2_28_aarch64.whl (101.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

File details

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

File metadata

  • Download URL: heyoka-7.12.0.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0.tar.gz
Algorithm Hash digest
SHA256 dfe90e2b821539c5d909283d0545b449d42426b958cb373462389c508aa0d4ef
MD5 f9255864ab327f0bf673848d7213bc18
BLAKE2b-256 ac8c76043a7f5928a3b6f41cd1d7b045f7378ed723f62c11255574716f5d599a

See more details on using hashes here.

File details

Details for the file heyoka-7.12.0-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: heyoka-7.12.0-cp314-cp314t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 101.5 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 721cdfc0cb0f2ef06acbd317c1144b1be3d12f794ba86131b53c85f51497f0d8
MD5 a1de56961ca5aa972f8b786bdd056f32
BLAKE2b-256 7f4c95ab28422ecb9ac32474ff5078ff18cb9739c636b5fb55e2bae4ae78fc37

See more details on using hashes here.

File details

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

File metadata

  • Download URL: heyoka-7.12.0-cp314-cp314-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 101.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8538bc3697e7e1c9365ef0cabdd1df3e21d08348a43cf05d6ad252434383288
MD5 656335b1af0be5ec6ccd119889987eee
BLAKE2b-256 eac4ee284a353f24c17ff6ddaddcdb1d708b1857019215204a4ccf2b0b851e5f

See more details on using hashes here.

File details

Details for the file heyoka-7.12.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: heyoka-7.12.0-cp313-cp313-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 101.4 MB
  • Tags: CPython 3.13, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d4567321fdfe790c8e38de66ffe02c477d3be6a5b3299c13b56f60a51db58cc
MD5 a942e22a127ff7e179bca212bad829ea
BLAKE2b-256 8c98d45544478a96116ff560ea1880cfe30c690455caa12ee635500233c8dfea

See more details on using hashes here.

File details

Details for the file heyoka-7.12.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: heyoka-7.12.0-cp312-cp312-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 101.4 MB
  • Tags: CPython 3.12, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed11928f4a3e6d031bcc152d9d720205217b6b3ec9223c4b7081b9013d3da3f9
MD5 8c0017c7c05237d546f1224b2f4c21b6
BLAKE2b-256 a60308a4b7cb46e600c599cdca8e1509cc9096bdfd8180fd305d935407c0bd15

See more details on using hashes here.

File details

Details for the file heyoka-7.12.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: heyoka-7.12.0-cp311-cp311-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 101.4 MB
  • Tags: CPython 3.11, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 096fe97c388de4c22067efec58fb1bc44b2380238cf92d18d0bee824c1b57b17
MD5 997ffa5e88224c55de7c31ef28ce68ab
BLAKE2b-256 c7182cbb7c9d659a2bb695937294f76ad42a4933fa9c95704e16ae8b9bb92c02

See more details on using hashes here.

Release history Release notifications | RSS feed

7.12.1

7 files

This release

7.12.0 This release

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