Completed Phases
Each entry is a one-line dated note. Design rationale lives in mdbook or rustdoc pages, not here.
Phase 16: Neural Solver Workstream — 2026-08-29
Completed the neural_solver package: package scaffolding and committed
reference fixtures, deep BSDE for diffusions, Rust/JAX reference agreement,
jump-aware deep BSDE with deterministic and log-normal Merton jump reference
models, DGM diffusion helpers, and the benchmark ladder. All six stages are
Done in docs/project/plan/status.md.
Phase 15: Correlated Diffusions — 2026-08-22
Added the full symmetric Hessian (StateDerivatives::hessian_full and
with_full_hessian) and the centered four-corner mixed-derivative stencil in
both the BSDE and FD derivative paths. Generalized the LQ regulator generator
to the full covariance C C' cross term and validated a correlated two-
diffusion LQ model against its Riccati closed form (lq_correlated_fd.rs),
keeping the reduced Heston rho drift correction unchanged because the
spot-variance correlation is an exact reduced-form term, not a missing grid
cross-derivative.
Phase 14: Arbitrary Jump Processes — 2026-08-22
Added JumpKernel<N>, JumpTransition, DimensionKind::Jump, and
PdeProblem::jump_kernel with a unit-jump default, generalized the explicit-Euler
FD path to sum arbitrary jump kernels, added the AvellanedaLotSize model
with a lot_size = 1 reduction limit reproducing the base Avellaneda-Stoikov
exact spreads, and documented the jump-kernel convention in solver_pde.md,
solver_bsde.md, and the validation test matrix.
Phase 13: Exact-Reduction and Manufactured-Solution Validation — 2026-08-22
Validated every expanded market-making model's degenerate reduction to a
closed-form Avellaneda-Stoikov target (Heston, Hawkes, Heston-Hawkes,
bilateral Hawkes, order-flow imbalance) at high base intensity with
per-component bid/ask checks, fixed the GlobalDiscrete initialization bug,
and added a manufactured-solution oracle recovered by FD to machine precision
and BSDE to 0.0025.
Phase 12: Stationary and Ergodic Solvers — 2026-08-15
Implemented EllipticProblem, EllipticControlProblem, StationarySolver,
StationaryEigenProblem, and PerronSolver. Validated against
infinite-horizon LQ (algebraic Riccati) and AvellanedaGueant.
Phase 11: Generic Control and PDE Contracts — 2026-08-15
Implemented ControlProblem<N>, PdeProblem<N>, StateDerivatives, and
GridSolution. Replaced the market-making-specific Model<N> and
ControlOutput contract. Validated with Merton, LQ regulator, and American
put; ported the market-making models to ControlProblem.
Phase 10: Signal-Based Engine Strategies — 2026-08-02
Created SignalEngineStrategy bridging market_model::PriceStrategy to
the engine's Strategy trait. Supports multi-signal voting
(SignalCombinator) and configurable position sizing. 6 unit tests.
Updated engine_strategies.md and implementation_matrix.md.
Phase 8: Rigorous Kelly HJB Solution — 2026-08-02
Implemented KellyHjb model solving the true log-utility HJB via FD
policy iteration on a 2D [q, x] grid. Created KellyRigorousStrategy
with 3D [q, x, tau] lookup tables. 11 unit tests. Updated
optimal_criteria.md with full derivation.
Phase 7: Kelly Criterion Optimal Strategy (Heuristic) — 2026-08-02
Implemented KellyStrategy with online EWMA drift/vol estimation and
Kelly target q* = mu/(gamma * sigma^2). 9 tests. Updated docs.
Phase 5: Edition 2024 Migration — 2026-08-01
Changed edition = "2021" to "2024" in all Cargo.toml files. Renamed
gen to grid_gen. Fixed deref-pattern ambiguity and collapsed if let
chains per edition 2024 clippy rules.
Phase 4: VecEnv Process Genericity — 2026-08-01
Replaced hardcoded Heston with VecEnvProcess enum (GBM, Heston, Bates).
Dynamic state_dim. Updated engine_vec_env.md.
Phase 3: Unify Process Dynamics Across Crates — 2026-08-01
Added type Process and fn process() to Model<N>. Process = () for
8 models, Process = HestonProcess for Heston. Integration test confirms
model-process consistency. Updated solver_ndim.md.
Phase 2: Solver Crate Structure — 2026-08-01
Moved examples, merged Matrix into solver/src/linalg/, removed
a/kappa from Solver::solve_with_spreads. Restructured slow-tests.
Phase 1: Code Cleanup — 2026-08-01
Removed debug print from solver/src/models/avellaneda.rs, added
all_outputs() to SimulationResult.
Phase 0: Mathematical Reference Documentation — 2026-08-01
Created docs/src/reference.md with verified equations for all processes,
HJB derivations, analytical solutions, and numerical schemes.