Repository navigation
Description
Audited 2026-09-27 against released v0.29.0. Deferred remainder, under #71. The original MultiPath/LSM/Sobol backlog is mostly delivered; do not reimplement those components.
Delivered
- MultiPath and MultiPathGenerator ([QL-9.x] MultiPath + MultiPathGenerator, multi-factor path generation (Batch HMC 2/4) #476), generalized Monte Carlo accumulation and antithetic averaging ([QL-9.x] Generalize the Monte-Carlo stack over path type + antithetic averaging (Batch HMC 3/4) #477), and the European Heston consumer/shared engine base ([QL-11.x] MCEuropeanHestonEngine + testMcVsCached bit-exact cached gate (Batch HMC 4/4) #478/[QL-11.x] Unify McVanillaEngineBase on the multi-factor StochasticProcess #482).
- Scalar antithetic generation and single-asset Longstaff-Schwartz American/Bermudan pricing ([MC-American][T2] EarlyExercisePathPricer trait + LsmBasisSystem + PathPricer-for-Shared bridge #759-[MC-American][T4] MCLongstaffSchwartzEngine + MCAmericanEngine + MakeMCAmericanEngine #761, [MC-American][DEFER] Depth: remaining testAmericanOption grid + Gauss basis families + BermudanExercise #763).
- LowDiscrepancy/Sobol European engine policy ([QL-9.x][DEFER] Low-discrepancy RSG bundle + scalar InverseCumulativeRng + Poisson traits #454), with fixed-sample semantics rather than unsupported QMC error estimates.
- Mandatory-time TimeGrid constructors,
indexandclosest_indexare present in TimeGrid.
Remaining
- Implement scalar
BrownianBridgeand the bridge-enabled PathGenerator path. The released PathGenerator explicitly rejects it. - Add control-variate accumulation and simulation/engine plumbing. Released McSimulation still rejects
control_variate=true. - Add the original
TimeGrid::closest_timeconvenience accessor, which is still absent; preserve existingindex/closest_indexbehavior.
Activation and acceptance
Activate with a named scalar pricing consumer and a bounded bridge or control-variate slice. Verify bridge endpoint/distribution behavior on nonuniform time grids, deterministic draw ordering, forward/antithetic reuse, estimator weighting and a reference control-variate price. Preserve all existing seeded MC and Heston regressions without widening tolerances. Pair newly exposed pricing controls with Python/C/Go tests and document unsupported combinations.
MultiPath bridge remains explicitly unsupported in both this port and the referenced QuantLib generator; any implementation needs a separately agreed extension contract rather than an assumed parity requirement. Multi-asset LSM and Sobol LSM are outside this refreshed original remainder. Keep this ticket open until the checklist is delivered or its scope is explicitly superseded.
Activity
benbenbang commentedon Jul 22, 2026
Carve-out: MultiPath + MultiPathGenerator (+ antithetic) is now scoped as #476 (Batch HMC 2/4), and the generic multi-variate MC spine as #477 (HMC 3/4). This tracker retains BrownianBridge, Longstaff-Schwartz (LSM), Sobol RSG, and the remaining variance-reduction methods.
benbenbang commentedon Aug 5, 2026
Scope shrink: single-factor antithetic path generation (pathgenerator.hpp:110-154) is implemented as of #762 (negated cached last sequence; antithetic-before-next Errs per D4), including MonteCarloModel antithetic averaging over the single-factor generator. This issue's remaining MC-advanced scope: MultiPath/multi-asset LSM, BrownianBridge, control variate. Sobol stays on #454; MC-American depth (grid/Gauss families/Bermudan) is #763.
[-][QL-9.x][DEFER] MC advanced: MultiPath + BrownianBridge + variance reduction + LSM + Sobol RSG[/-][+][QL-9.x][DEFER] MC remainder: Brownian bridge, control variates and TimeGrid accessor[/+]benbenbang commentedon Nov 3, 2026
Split into concrete children (user order #453 -> #624 -> #828):
MultiPath bridge stays Err and stays tracked here.
feat(pricingengines): add Brownian bridge to the MC European builder
chore(release): update version to 0.49.0 [skip ci]
feat(itofin-py): expose brownian bridge and control variate on MC eng…
chore(release): update version to 0.50.0 [skip ci]