QuantLib v1.42.1 Release Notes
Release Date: 2026-04-17 // about 2 months ago-
Downloads:
🔄 Changes for QuantLib 1.42.1
🚀 This is a bug-fix release removing a regression in the
Gsrclass possibly leading to an infinite notification loop. Thanks to Aleksis Ali Raza for the heads-up.What's Changed
- Avoid notification loop in GSR model by @lballabio in #2543
- Set version to 1.42.1 final by @lballabio-bot in #2545
Full Changelog : v1.42...v1.42.1
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
OvernightIndexedCouponto preventpaymentDate < accrualEndDateby @jay-jain in #2421 - Faster
skipTo()implementation in Burley's scrambled Sobol RNG by @pcaspers in #2431 - 🛠 Fix
testCachedHullWhitefailure with -O3 optimization by @Vatsalpatni73 in #2435 - ⚠ Avoid warning when copying a partially initialized struct by @lballabio in #2437
- ✂ Remove code duplication in
FuturesConvAdjustmentQuoteby @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
SmileSectionUtilsby @pandashark in #2444 - ➕ Added Chinese holidays for the year 2026 by @wegamekinglc in #2446
- ➕ Add
fixingConventionparameter toFloatingRateCouponby @pandashark in #2442 - ➕ Add
ZabrSwaptionVolatilityCubefor ZABR-based swaption volatility cubes by @aaditya-panik in #2434 - 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2452
- 🛠 Fix
calculate()implementation inFlatExtrapolator2Dby @eltoder in #2448 - Respect
AmericanExerciseearliest date in FD engines by @alienbrett in #2449 - 👌 Support matching first derivatives in
MixedLinearCubicInterpolationby @eltoder in #2450 - 🛠 Use contract dates for fixed-leg year fraction in
ZeroCouponInflationSwapby @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::Linearby @pandashark in #2456 - 🗄 Deprecate classes using Kruger with
monotonic=trueby @eltoder in #2457 - 🗄 Deprecate day-counter argument in z-spread functions by @zippyg in #2465
- ✂ Remove virtual destructor from
Extrapolatorby @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
PiecewiseBlackVarianceSurfacefor 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
MakeOISandMakeVanillaSwapend-of-month handling by @pcaspers in #2459 - ➕ Add
operator==toFdmLinearOpIteratorby @quantales in #2472 - ➕ Add single-section constructor and tests to
PiecewiseBlackVarianceSurfaceby @quantales in #2478 - 0️⃣ Bring
MakeCreditDefaultSwapup to date with CDS instrument by @lballabio in #2479 - ➕ Add
MultipleResetsSwapinstrument and rate helper by @zippyg in #2474 - ➕ Add
BlackVolatilitySurfaceDeltaclass for FX options by @paolodelia99 in #2368 - 🛠 Fix
MakeVanillaSwapfixed-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
withExerciseCalendartoMakeSwaptionby @pandashark in #2484 - Throw when both effective date and settlement days are set in
MakeVanillaSwap/MakeOISby @pandashark in #2481 - 🌲 Use log interpolation for discount curves by @eltoder in #2491
- Avoid 0.0 in
Burley2020SobolRsgoutput 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
ForwardRateStructurein favor ofZeroYieldStructureby @eltoder in #2261 - 👉 Use variant to reduce duplication in
SofrFutureRateHelperconstructors by @lballabio in #2501 - Cache derived and composite quotes by @eltoder in #2499
- ➕ Add
MultiCompositeQuoteby @eltoder in #2500 - 👉 Use custom type aliases instead of raw
doubleby @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
FdmAffineModelSwapInnerValueby @pandashark in #2488 - Forward notifications after failed calculations in
LazyObjectby @pandashark in #2504 - 👌 Support separate exercise date in MC arithmetic average-strike Asian engine by @pandashark in #2506
- 🛠 Fix first-period regularity check in
Schedulebackwards date generation by @pandashark in #2511 - Replace
dynamic_castwithstatic_castin interpolations by @eltoder in #2510 - 📦 Use
QL_prefix forPACKAGEmacros in CMake config template by @pandashark in #2512 - 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2516
- Implement fair spread for
FloatFloatSwapby @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
Realinstead ofdoublein range-for loops by @auto-differentiation-dev in #2521 - 🛠 Automated fixes by clang-tidy by @lballabio-bot in #2524
- 👉 Use
Realinstead ofdoubleas initial value foraccumulateby @auto-differentiation-dev in #2525 - Set version to 1.42-rc by @lballabio-bot in #2526
🆕 New Contributors
- @jay-jain made their first contribution in #2421
- @Vatsalpatni73 made their first contribution in #2435
- @chiragpdesai77 made their first contribution in #2414
- @pandashark made their first contribution in #2445
- @aaditya-panik made their first contribution in #2434
- @alienbrett made their first contribution in #2449
- @zippyg made their first contribution in #2462
- @GuillermoPL made their first contribution in #2468
- @quantales made their first contribution in https://...