European Vanilla Pricing
One PDE solve. LRDE vs scipy BDF vs closed-form Black-Scholes. The anchor that proves the contour method gives the same answer — faster.
- 5–7×
- Speedup vs scipy BDF
- 5+
- Matching digits ATM
- 3–6 ms
- LRDE wall time per solve
- SHA-256
- Every price array hashed
The scenario
Set the picture
A quant needs to price a single European call option. The Black-Scholes PDE on a uniform log-S grid discretizes to a linear ODE system dV/dτ = A·V + g(τ), where A is tridiagonal. Today this is solved by time-stepping: Crank-Nicolson, BDF, or ADI, marching through hundreds of small steps.
LRDE computes V(T) as a single contour integral in the Laplace domain. No marching. Cost is independent of maturity and stiffness.
Cost today
The scipy BDF baseline takes 18–37 ms per solve depending on grid size. An in-house Crank-Nicolson kernel is roughly 3–5× faster than scipy, but still marches through time steps for every solve.
Time-stepping cost scales with maturity: a 5-year option costs more than a 1-month option. Fine grids and high vol make it worse.
What changes with LRDE
LRDE solves in 3–6 ms — 5.2–7.4× faster than scipy BDF at matching precision. Both methods agree with the closed-form Black-Scholes price to 5+ digits ATM.
Cost is independent of T: a 5-year option costs the same as a 1-month option. Cost is independent of stiffness: high-vol and fine-grid problems don’t slow down.
The honest comparison to a hand-tuned in-house CN kernel: LRDE is 1.5–2× faster on a single PDE solve. The structural wins show up in POCs 2–4 where LU amortization across many right-hand sides is the dominant advantage.
Measurable outcome
What we claim — and how it survives review
Each line below maps to a captured number in the demo section. Every number is reproducible from the benchmark suite.
- LRDE and BDF produce the same ATM price to 5+ significant digits across all 9 (n_grid, T) configurations.
- LRDE wall time: 3–6 ms per solve. BDF wall time: 18–37 ms per solve.
- Speedup: 5.2–7.4× across the configuration matrix.
- Both methods agree with the analytical Black-Scholes formula to spatial-discretization precision.
- Every price array is SHA-256 hashed for bit-identical verification.
The demo
What was tested. How. What the script printed.
The bench script builds a uniform log-S grid around spot ($100, σ=30%, r=5%), discretizes the Black-Scholes PDE into a tridiagonal MOL operator A, and prices a single ATM call three ways: LRDE Talbot contour (N=32), scipy solve_ivp BDF (rtol=1e-8, atol=1e-9), and closed-form Black-Scholes.
Repeated across (n_grid, T) ∈ {80…400} × {0.25, 0.5, 1, 2}. Every cell records wall time, ATM relative error vs the closed form, trade-region relative error, and a SHA-256 of the full price array.
Captured benchmark output
The numbers the script actually printed.
| n | T | ATM (true) | LRDE (ms) | BDF (ms) | Speedup | LRDE ATM rel err |
|---|---|---|---|---|---|---|
| 80 | 0.25 | 6.5949 | 3.49 | 17.68 | 5.1× | 2.17e-05 |
| 100 | 0.50 | 9.6454 | 3.02 | 19.51 | 6.5× | 2.65e-05 |
| 100 | 1.00 | 14.2458 | 3.02 | 20.38 | 6.8× | 5.49e-05 |
| 200 | 0.50 | 9.6375 | 3.83 | 25.94 | 6.8× | 6.49e-06 |
| 200 | 1.00 | 14.2348 | 3.58 | 26.60 | 7.4× | 1.36e-05 |
| 200 | 2.00 | 21.1986 | 3.59 | 27.40 | 7.6× | 2.94e-05 |
| 300 | 1.00 | 14.2328 | 6.03 | 31.36 | 5.2× | 6.11e-06 |
| 400 | 1.00 | 14.2322 | 5.47 | 36.11 | 6.6× | 3.51e-06 |
| 400 | 2.00 | 21.1949 | 5.83 | 37.01 | 6.4× | 7.48e-06 |
BDF baseline: scipy.integrate.solve_ivp(method='BDF', rtol=1e-8, atol=1e-9). LRDE: Talbot contour, N=32.
Composes with
Where this POC sits in the benchmark suite
Evidence pointers
Where the claims live in the repo
These are the files a reviewer should run to re-derive every number on this page.
- poc/lrde_hedge_fund/european_vanilla/bench.py
- poc/lrde_hedge_fund/common/black_scholes.py
- poc/contour_integration/talbot_solve.py
- docs/pitch/LRDE_HEDGE_FUND_BRIEF.md §2
Want to see these numbers on your book?
Run the benchmark on your actual vol surface and trade book.
Two weeks, $25K, fully credited. No production integration, no data leaving your premises. Every claim above traces back to a script you can run locally.