release(v2.0.0): finalize PyPI metadata, README rewrite, v2 benchmark + McKean-Vlasov animation

- Restore correct PyPI distribution name 'optimiz-rs' (continuity with v1.0.x).
  Rust crate stays 'optimiz-rs'; Python module is 'optimizr'.
- python/optimizr/__init__.py:
  * Bump __version__ from stale '0.2.0' to '2.0.0'.
  * Eagerly bind every v2 primitive from _core (so dir(optimizr), IDE
    auto-complete and 'from optimizr import X' all work without relying on
    the lazy __getattr__ fallback).
  * Extend __all__ with 38 new v2 entries.
- README.md: full v2 features section grouped by domain (rough volatility,
  BSDE/PDE, stochastic control, mean-field, topology/graphs/signatures,
  risk/robust inference, point processes, Kalman). Embedded
  examples/mckean_vlasov.gif at the top. Added v2 benchmark table.
- examples/benchmark_v2.py: honest benchmark vs pure-Python/NumPy
  references on intrinsically loopy workloads. Best-of-3, single-thread,
  Apple M2: HMM 67.7x, DE 13.9x, signatures 11.2x, Hawkes 3.3x, MCMC 1.7x.
- examples/animate_mckean_vlasov.py + examples/mckean_vlasov.gif (5MB):
  cinematic 800-particle mean-reverting McKean-Vlasov flow animation
  using optimizr.mean_reverting_mckean_vlasov.
- tests/test_v2_api.py already in place: 20/20 pass.
This commit is contained in:
ThotDjehuty
2026-05-14 21:54:49 +02:00
parent 1799a2fa7b
commit 24556f51d7
8 changed files with 599 additions and 20 deletions
+3 -3
View File
@@ -9,9 +9,9 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### Added — public release of the v2 API
- Promoted `2.0.0-alpha.1` to the stable `2.0.0` release.
- **PyPI distribution name re-aligned to `optimizr`** (continuity with the
v1.4.x line). The Rust crate stays `optimiz-rs`; both expose the same
Python module name `optimizr`.
- PyPI distribution name remains `optimiz-rs` (continuity with v1.0.x);
the Rust crate is also `optimiz-rs`. Both expose the Python module
`optimizr`.
- New non-regression suite `tests/test_v2_api.py` (20 tests) exercising
every advertised v2 primitive against an analytic ground truth:
`historical_var_py`, `solve_fractional_ode`, `solve_volterra`,