Skip to content

v2.3.0

Choose a tag to compare

@dancixx dancixx released this 01 Jun 14:02
12ee6f9

Highlights

Copulas

  • Multivariate copulas — Student-t copula (Demarta–McNeil χ²-mixer, profile-MLE for ν via Brent), Nested Archimedean Copulas (Hofert 2008: Kanter positive-stable sampling + sufficient-nesting-condition validator), and vine pair-copula constructions — D-vine / C-vine / R-vine built on Aas–Czado (2009) h-functions and inverse-h-functions. [adf1c14, 20a7b66]
  • 7 new bivariate copulas — Joe, FGM, Plackett [db186e9]; AMH, Marshall–Olkin, Galambos, Hüsler–Reiss [cb48062].

Distributions

  • 6 new distributions + 7 SIMD ops — Truncated (Robert 1995 rejection), Skellam (two-Poisson + modified-Bessel), Dirichlet (gamma-trick simplex), GED (Subbotin), Wishart (Bartlett decomposition), GEV (Jenkinson); plus 7 new SIMD ops (A&S 7.1.26 erf, Lanczos g=7 lgamma, …) via the wide crate with a const-N buffered SimdNormal. [1f67b13]

Stochastic processes

  • 3 stochastic-volatility processes — multifactor Heston (Christoffersen–Heston–Jacobs 2009, const-generic K factors), Barndorff-Nielsen–Shephard (non-Gaussian OU with a compound-Poisson + Gamma subordinator), and dynamic / multifactor SABR (piecewise-constant β/ρ/ν term structure, Fernández et al 2024). [13a5849]

Calibration & estimators

  • FRFT Carr–Madan pricer — fractional FFT (Bailey–Swarztrauber chirp convolution) with Lord–Kahl (2010) grid centring; matches the analytic BSM price to 1e-4. [6467ea5]
  • GMM-CIR variance calibration — exact CIR conditional moments (Cox–Ingersoll–Ross 1985), two-step efficient weighting, Hansen J-test. [b6d642f]
  • QMLE for OU / CIR — Kessler (1997) Gaussian quasi-likelihood; the OU fit matches the closed-form Vasicek MLE to 1e-3. [5cb33fd]
  • Bayesian MCMC diffusion calibration — random-walk Metropolis with log-normal priors and 95% credible intervals. [7b1f5d6]
  • Particle-filter MLE for stochastic volatility — Kitagawa (1996) bootstrap filter with common random numbers (Pitt 2002), allocation-free 1-D hot loop. [0c150dd]

Market data

  • Market-data provider abstraction — a synchronous MarketDataProvider trait with a MockProvider and a feature-gated YahooProvider, plus ImpliedVolSurface::from_provider to build a surface straight from a quote source. [e34d77b]

Statistics

  • New stationarity / specification tests — CUSUM / CUSUMQ, RESET, Andrews–Ploberger [65c4ab4]; Lo–MacKinlay variance-ratio [0100007].

Fixed income & calendars

  • Holiday calendars — HKEX, ASX, SGX, B3 [f0106b5]; Joint (intersection) calendar mode, Act/365L, IMM dates [936af1b]; Nearest business-day convention, ACT/ACT ICMA, day helpers [4c2b2ee].
  • Day-count-aware instrumentsTimeExt::dcc(), a BSMPricer day-count field, and calendar-aware bootstrapping that honours non-uniform δᵢ in the par equation. [8c665a2]
  • Curves — full Hagan–West monotone-convex four-region interpolation [c69f63d]; unified calendar date math into date_math.rs [f90252f]; survival-curve fix [9f49272].

Python

  • PyO3 calendar layer — DayCount / Calendar / ScheduleBuilder exposed to Python. [9876791]
  • pytest suite + CI gate — tests across all five API surfaces, run in CI alongside the smoke test. [e52beca]

Infrastructure

  • Repository-wide modularization — large source files split into responsibility-based submodules across every sub-crate (pricing, calibration, copulas, stats, viz, python), with no public-API change.
  • CI on cargo-nextest — a fast workspace test job with a running (N/total) progress counter, a separate doctest gate, and the coverage job moved to push-to-main. The coverage run dropped from ~2h52m to ~53min. [c672cb5, 12ee6f9]

Full Changelog: v2.2.0...v2.3.0