Integration and ODE kernels, in POST Python.
ppintegrate reimplements scipy.integrate in
POST Python — every kernel is
fully-typed Python that runs under the standard CPython interpreter and
compiles ahead-of-time to native code (a plain C shared library and a NumPy
ufunc extension module) with the POST Python reference compiler.
Status: Planning — this repository is scaffolding, ready for an agent or contributor to claim. It is part of the PostSciPy effort to rebuild SciPy one subpackage at a time as the compiler's proving ground.
Primary compiler pressure this package generates: fixed-sample rules today; callable parameters for adaptive quadrature.
- Read the POST Python spec and the PostSciPy roadmap (package map, working rules, capability matrix).
- Copy the layout of ppspecial,
the exemplar package:
ppintegrate/sources,tests/,scripts/build_native.py,scripts/build_ext.py, a pixi workspace withtest/build-native/build-exttasks, a git dependency on postpython, and aROADMAP.mdtracking targets and upstream requests. - Start with a slice from "Compiles today" below; land it as a small PR with tests in both execution modes.
- Fixed-sample rules as gufuncs:
trapezoidandsimpson(n),(n)->()(y, x) plus uniform-dxvariants,romb,cumulative_trapezoid(n),(n)->(n) fixed_quadfor low orders with Gauss-Legendre nodes as module constants
File these as postpython issues with minimal reproducers when you start on them — the filing is part of the work and drives the compiler roadmap.
quad/ adaptive quadrature — needs callable parameters (co-lead the design with ppoptimize; file the postpython issue with a minimal reproducer)solve_ivp— callables plus result structs plus adaptive stepping
- Pure POST Python: no compiler-specific escape hatches; every kernel runs interpreted and compiled.
scipyis the reference, never a runtime dependency. Tests may use it optionally; prefer deterministic hardcoded reference values.- Compiler gaps go upstream as postpython issues with reproducers, not silent workarounds.
- Verify against a postpython checkout on
main. - Document accuracy targets and reference sources per function.
The full rules and the definition of done live in the PostSciPy roadmap.