Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Implementation status

Evidence-backed status as of 2026-08-03:

ModuleRust corePython APIGolden parityIndependent testsBenchmarkedDocs
Foundationsimplementedimplemented3.0.1series, derivatives, geometryCriterion harnesscomplete
Epoch/anomaliesimplementedimplemented3.0.1round trips, calendar boundariesCriterion harnesscomplete
Elementsimplementedimplemented3.0.12,000 round trips, finite differencesCriterion harnesscomplete
Propagation/STMimplementedimplemented3.0.1invariants, reversal, finite differences, compositionCriterion harnesscomplete
Lambert/transfers/flyby/MIMAimplementedimplemented3.0.1round trips, endpoint reconstruction, finite differencesCriterion harnesscomplete
Planet/Keplerian ephemerisimplementedimplemented3.0.1period, element round trips, thread stressCriterion harnesscomplete
JPL low-precision ephemeridesimplementedimplemented3.0.1names, window boundaries, ordered batchesCriterion harnesscomplete
VSOP2013 ephemeridesimplemented (>=1e-9 feature)implemented3.0.1/heyoka 7.10.0expanded epoch grid, threshold selection, feature-off buildCriterion + C++ harnesscomplete
Adaptive integration backendsDOP853 general; Taylor for 11 built-insDOP853 model APIsanalytic/C++/heyoka 7.10.1drift, reversal, dense, events (DOP853), seeded sensitivities, closed-form seriesCriterion + fixed Taylor protocolcomplete
Kepler/CR3BP/BCP dynamicsimplementedimplemented3.0.1/heyoka 7.10.0equilibria, invariants, finite differences, singularitiesCriterion + C++ harnesscomplete
ZOH dynamicsimplementedimplemented3.0.1/heyoka 7.10.0switches, reversal, zero control, sensitivity activationCriterion + C++ harnesscomplete
Pontryagin dynamicsimplementedimplemented3.0.1/heyoka 7.10.0Hamiltonians, coordinate transform, finite differences, singular primerCriterion + C++ harnesscomplete
Sims–Flanagan legsimplementedimplemented3.0.1cuts, odd/even and one-segment cases, central differences, validationCriterion + C++ harnesscomplete
Generic ZOH legimplementedimplemented3.0.1/heyoka 7.10.0four models, cuts, central differences, contextual failuresCriterion + C++ harnesscomplete
Ordered parallel batchesshared executor plus named core batcheslisted numerical familiessame scalar entry pointsscalar parity, shapes, ordering, worker modes, error ordercompanion Lambert benchmarkcomplete
Python API auditsame native corecomplete typed surfacesame core entry pointsexports, adversarial buffers, ownership, threads, clean wheelswrapper/batch harnesscomplete

“Implemented” means the public contract is documented, validation is explicit, the committed C++ golden data passes except for documented numerical improvements, independent properties pass, and Rust/Python tests call the same core implementation. It does not imply that later modules exist.

The Python wheel uses the collision-safe pykep_rust import, ships a complete stub and py.typed, and has no C++ runtime dependency. Clean-wheel CI covers CPython 3.11–3.13 on Linux, macOS, and Windows. The upstream migration matrix records renames, deliberate contract changes, deferrals, and unsupported ecosystem modules.

The runnable example matrix covers every major public module in Rust and through the installed Python extension. Each example states units, expected behavior, runtime orientation, and required features; CI compiles all Rust examples and executes all Python scripts.

The synchronized 0.1.4 release is published as pykep-core on crates.io and pykep-rust on PyPI. The internal pykep-py implementation crate remains publish = false by design. Tag-gated trusted-publishing workflows, clean crate/wheel/source-distribution consumption, docs.rs, and GitHub Pages are part of the release process. Performance regression, Miri, fuzz, Valgrind, dependency, MSRV, cross-platform wheel, and API-documentation checks remain maintained quality gates rather than claims of formal verification.

Version 0.1.4 includes incremental Taylor coefficient evaluation for all eleven built-in models and Rust-only method selection for nominal ZOH-leg mismatch/history calculations. Existing no-suffix ZOH-leg methods, Jacobians, and the Python ZOH-leg surface retain their DOP853 behavior. See the performance decision guide for the measured boundary between the ahead-of-time Rust backend and warmed upstream heyoka.