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

Source map

The port baseline is pykep/kep3 3.0.1 at commit 53b1ca3ce5f8c223f96819b2ea9ba16c3719e63e. A checked box means the Rust module, C++ golden parity, independent validation, Python binding, and documentation required by the definition of done are complete.

Header-only numerical sources

  • include/kep3/core_astro/constants.hppconstants (Phase 2)
  • include/kep3/core_astro/convert_julian_dates.hpptime::julian (Phase 2)
  • include/kep3/core_astro/kepler_equations.hppmath::kepler_equations (Phase 2)
  • include/kep3/core_astro/special_functions.hppmath::stumpff (Phase 2)
  • include/kep3/core_astro/convert_anomalies.hppastro::anomalies (Phase 3)

Translation units

  • src/linalg.cppmath::linalg (Phase 2)
  • src/epoch.cpptime::epoch (Phase 3)
  • src/core_astro/ic2par2ic.cppastro::elements::classical (Phase 4)
  • src/core_astro/mee2par2mee.cppastro::elements::equinoctial (Phase 4)
  • src/core_astro/ic2mee2ic.cppastro::elements::equinoctial (Phase 4)
  • src/core_astro/propagate_lagrangian.cppastro::propagation::lagrangian (Phase 5)
  • src/core_astro/stm.cppastro::propagation::stm (Phase 5)
  • src/core_astro/basic_transfers.cppastro::transfers::basic (Phase 6)
  • src/core_astro/encodings.cppastro::encodings (Phase 6)
  • src/core_astro/flyby.cppastro::flyby (Phase 6)
  • src/lambert_problem.cppastro::lambert (Phase 6)
  • src/core_astro/mima.cppastro::mima (Phase 6)
  • src/planet.cppephemeris (Phase 7)
  • src/udpla/keplerian.cppephemeris::keplerian (Phase 7)
  • src/udpla/jpl_lp.cppephemeris::jpl_lp (Phase 8)
  • src/udpla/vsop2013.cppephemeris::vsop2013 (Phase 9)
  • heyoka integration requirements → integration facade and ADR 0004 (Phase 10; infrastructure rather than a source translation)
  • src/ta/kep.cppdynamics::KeplerDynamics (Phase 11)
  • src/ta/cr3bp.cppdynamics::Cr3bpDynamics (Phase 11)
  • src/ta/bcp.cppdynamics::BcpDynamics (Phase 11)
  • src/ta/zoh_kep.cppdynamics::zoh::ZohKeplerDynamics (Phase 12)
  • src/ta/zoh_cr3bp.cppdynamics::zoh::ZohCr3bpDynamics (Phase 12)
  • src/ta/zoh_eq.cppdynamics::zoh::ZohEquinoctialDynamics (Phase 12)
  • src/ta/zoh_ss.cppdynamics::zoh::ZohSolarSailDynamics (Phase 12)
  • src/ta/pontryagin_cartesian.cppdynamics::pontryagin::{CartesianMassOptimal, CartesianTimeOptimal} (Phase 13)
  • src/ta/pontryagin_equinoctial.cppdynamics::pontryagin::{EquinoctialMassOptimal, EquinoctialTimeOptimal} (Phase 13)
  • src/leg/sf_checks.cppleg::sims_flanagan validation (Phase 14)
  • src/leg/sims_flanagan.cppleg::sims_flanagan (Phase 14)
  • src/leg/sims_flanagan_alpha.cppleg::sims_flanagan::SimsFlanaganAlphaLeg (Phase 14)
  • src/leg/zoh.cppleg::zoh (Phase 15)

The C++-specific visibility, serialization, and type-erasure support headers are reviewed for semantics but are not port targets.

Explicitly unavailable upstream ecosystem areas

These are not unchecked source-map rows. They are technically outside the native numerical-core product and have stable internal tracking identifiers:

  • PY-EXT-001: SPICE kernels, TLE parsing, and Python-defined UDPLA providers require external data/runtime and dynamic Python callback contracts that are absent from the C/C++-free core.
  • TA-SYMBOLIC-001: arbitrary heyoka expression graphs and Taylor-integrator objects cannot be reproduced without exposing a symbolic/JIT runtime; native evaluated dynamics and DOP853 propagation are the supported contract.
  • PY-ECOSYSTEM-001: plotting, trajectory-optimization UDPs, gym utilities, and third-party integrations belong to their Python ecosystems rather than the numerical core.
  • MIMA-HOP-001: mima_from_hop and mima2_from_hop depend on an upstream higher-order-propagation object that the native API intentionally does not expose. The Python migration matrix gives user-visible alternatives. A future change must resolve the corresponding tracking item and add a source-map row before claiming support.