QuantLib v1.42.1 Release Notes

Release Date: 2026-04-17 // about 2 months ago

Previous changes from v1.42

  • 🚀 This is a release candidate. Please try it out and report any issues here on GitHub.

    What's Changed

    • Set version to 1.42-dev by @lballabio-bot in #2423
    • ✂ Remove features deprecated in version 1.37 by @lballabio in #2424
    • 🗄 Deprecate a last few unused parts of the old finite-difference framework by @lballabio in #2425
    • Avoid storing references in GSR and Markov-functional state processes by @pcaspers in #2418
    • 🛠 Fix accrued amount calculation for simple-averaging overnight indexed coupon by @thrasibule in #2427
    • ➕ Add constructor validation in OvernightIndexedCoupon to prevent paymentDate < accrualEndDate by @jay-jain in #2421
    • Faster skipTo() implementation in Burley's scrambled Sobol RNG by @pcaspers in #2431
    • 🛠 Fix testCachedHullWhite failure with -O3 optimization by @Vatsalpatni73 in #2435
    • ⚠ Avoid warning when copying a partially initialized struct by @lballabio in #2437
    • ✂ Remove code duplication in FuturesConvAdjustmentQuote by @eltoder in #2436
    • ➕ Add FX Forward instrument, engine, and tests by @chiragpdesai77 in #2414
    • ⚡️ Update generated headers by @lballabio-bot in #2440
    • ⚡️ Update copyright list in license by @github-actions[bot] in #2439
    • 👉 Make all interpolation implementations final by @eltoder in #2438
    • Adjust Bessel K tolerance for catastrophic cancellation by @pandashark in #2445
    • Avoid underflow and out-of-bounds access in SmileSectionUtils by @pandashark in #2444
    • ➕ Added Chinese holidays for the year 2026 by @wegamekinglc in #2446
    • ➕ Add fixingConvention parameter to FloatingRateCoupon by @pandashark in #2442
    • ➕ Add ZabrSwaptionVolatilityCube for ZABR-based swaption volatility cubes by @aaditya-panik in #2434
    • 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2452
    • 🛠 Fix calculate() implementation in FlatExtrapolator2D by @eltoder in #2448
    • Respect AmericanExercise earliest date in FD engines by @alienbrett in #2449
    • 👌 Support matching first derivatives in MixedLinearCubicInterpolation by @eltoder in #2450
    • 🛠 Use contract dates for fixed-leg year fraction in ZeroCouponInflationSwap by @pandashark in #2451
    • ⬆️ Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #2464
    • ➕ Add 2025 and 2026 TWSE holidays to Taiwan calendar by @zippyg in #2462
    • 🛠 Fix pillar assignment in inflation-curve bootstrap for CPI::Linear by @pandashark in #2456
    • 🗄 Deprecate classes using Kruger with monotonic=true by @eltoder in #2457
    • 🗄 Deprecate day-counter argument in z-spread functions by @zippyg in #2465
    • ✂ Remove virtual destructor from Extrapolator by @eltoder in #2466
    • 🛠 Fix address sanitizer failure by @eltoder in #2467
    • ➕ Add Singapore (SGX) trading holidays for 2026 by @GuillermoPL in #2468
    • 🛠 Fix call price accrued during ex-coupon period by @pandashark in #2455
    • ➕ Add PiecewiseBlackVarianceSurface for ragged vol grids by @pandashark in #2443
    • ⚡️ Update copyright list in license by @github-actions[bot] in #2470
    • 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2461
    • ⬆️ Bump docker/login-action from 3 to 4 by @dependabot[bot] in #2477
    • 🛠 Fix MakeOIS and MakeVanillaSwap end-of-month handling by @pcaspers in #2459
    • ➕ Add operator== to FdmLinearOpIterator by @quantales in #2472
    • ➕ Add single-section constructor and tests to PiecewiseBlackVarianceSurface by @quantales in #2478
    • 0️⃣ Bring MakeCreditDefaultSwap up to date with CDS instrument by @lballabio in #2479
    • ➕ Add MultipleResetsSwap instrument and rate helper by @zippyg in #2474
    • ➕ Add BlackVolatilitySurfaceDelta class for FX options by @paolodelia99 in #2368
    • 🛠 Fix MakeVanillaSwap fixed-tenor inference with explicit termination date by @pandashark in #2480
    • ⚡️ Update copyright list in license by @github-actions[bot] in #2482
    • 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2486
    • ➕ Add withExerciseCalendar to MakeSwaption by @pandashark in #2484
    • Throw when both effective date and settlement days are set in MakeVanillaSwap/MakeOIS by @pandashark in #2481
    • 🌲 Use log interpolation for discount curves by @eltoder in #2491
    • Avoid 0.0 in Burley2020SobolRsg output by @zippyg in #2494
    • ✂ Remove special initial guess for spread discount curves by @eltoder in #2495
    • 👌 Support custom pillar date in interest-rate futures helpers by @Krishn1412 in #2415
    • ✅ Deprecate ForwardRateStructure in favor of ZeroYieldStructure by @eltoder in #2261
    • 👉 Use variant to reduce duplication in SofrFutureRateHelper constructors by @lballabio in #2501
    • Cache derived and composite quotes by @eltoder in #2499
    • ➕ Add MultiCompositeQuote by @eltoder in #2500
    • 👉 Use custom type aliases instead of raw double by @wegamekinglc in #2503
    • ⚡️ Update copyright list in license by @github-actions[bot] in #2502
    • Replace Boost macros that might not work with AAD types by @lballabio-bot in #2508
    • Check for negative rates in Barone-Adesi-Whaley engine by @pandashark in #2505
    • 👌 Support OIS underlyings in FdmAffineModelSwapInnerValue by @pandashark in #2488
    • Forward notifications after failed calculations in LazyObject by @pandashark in #2504
    • 👌 Support separate exercise date in MC arithmetic average-strike Asian engine by @pandashark in #2506
    • 🛠 Fix first-period regularity check in Schedule backwards date generation by @pandashark in #2511
    • Replace dynamic_cast with static_cast in interpolations by @eltoder in #2510
    • 📦 Use QL_ prefix for PACKAGE macros in CMake config template by @pandashark in #2512
    • 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2516
    • Implement fair spread for FloatFloatSwap by @shubhamessier in #2411
    • ⚡️ Update copyright list in license by @github-actions[bot] in #2518
    • ➕ Add 3 new fuzzing harnesses by @DavidKorczynski in #2514
    • ⚡️ Update copyright list in license by @github-actions[bot] in #2520
    • 👉 Use Real instead of double in range-for loops by @auto-differentiation-dev in #2521
    • 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2524
    • 👉 Use Real instead of double as initial value for accumulate by @auto-differentiation-dev in #2525
    • Set version to 1.42-rc by @lballabio-bot in #2526

    🆕 New Contributors