QuantLib 1.30 includes 34 pull requests from several contributors.
Some of the most notable changes are included below. A detailed list of changes is available in ChangeLog.txt and at https://github.com/lballabio/QuantLib/milestone/27?closed=1.
-
Future end of support: as announced in the notes for the previous release, after this release and the next, using
std::tuple,std::functionandstd::bind(instead of theirboostcounterparts) will become the default. If you're usingext::tupleetc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose theboostversions via a configure switch for a while; but we do suggest you start usingext::tupleetc. in the meantime. -
CMake builds now use a stricter warning level by default; thanks to Ralf Konrad (@ralfkonrad).
-
Is it now possible to use
std::anyandstd::optional(and the relatedstd::any_castandstd::nullopt) instead of theirboostcounterparts by setting new compilation switches; thanks to Jonathan Sweemer (@sweemer). Using thestdclasses requires C++17. We expect theboostclasses to remain the default for a while, but in the meantime we encourage to start usingext::anyandext::optionalin preparation for a new default.
-
Good Friday 2023 is now a business day for the US government bond calendar; thanks to Anastasiia Shumyk (@ashumyk).
-
Added specialized Australian calendar for ASX; thanks to Trent Maetzold (@trentmaetzold).
-
Fixed Turkish holidays between 2019 and 2023; thanks to Fredrik Gerdin Börjesson (@gbfredrik).
-
Added a few missing holidays to Danish calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik).
-
Added the Matariki holiday to the New Zealand calendar; thanks to Jake Heke (@jakeheke75).
-
Added a new equity cash flow class to model equity legs in total return swaps; thanks to Marcin Rybacki (@marcin-rybacki). Quanto pricing is also supported.
-
Added an overloaded constructor for CPI coupons that allows to specify a base date instead of a base CPI value; thanks to Matthias Groncki (@mgroncki).
-
Added a new total-return swap; thanks to Marcin Rybacki (@marcin-rybacki). An equity-index class was also added to support this instrument.
-
The analytic engine for barrier options would return NaN for low values of volatility; this is now fixed (@lballabio).
-
The
VanillaOptionandBarrierOptionclasses can now be used to model vanilla and barrier options with discrete dividends; the future dividends (not being part of the terms and conditions of the contract) should be passed to the pricing engine instead (@lballabio). -
Added analytical Greeks to Bjerksund-Stensland engine; thanks to Klaus Spanderen (@klausspanderen).
- Added UKHICP inflation index; thanks to Fredrik Gerdin Börjesson (@gbfredrik).
-
Renamed
SwaptionVolCube1,SwaptionVolCube1x,SwaptionVolCube1aandSwaptionVolCube2toSabrSwaptionVolatilityCube,XabrSwaptionVolatilityCube,NoArbSabrSwaptionVolatilityCubeandInterpolatedSwaptionVolatilityCube, respectively; thanks to Ignacio Anguita (@IgnacioAnguita). The old names are deprecated but still available for a few releases. -
Ensure that inflation curves are re-bootstrapped correctly when seasonality is added (@lballabio).
- Moved the Heston SLV model from experimental to main; thanks to Klaus Spanderen (@klausspanderen).
- Added a few overloads to Array and Matrix operators taking rvalue references for increased speed; thanks to Jonathan Sweemer (@sweemer).
-
Removed features deprecated in version 1.25:
- the protected
spreadLegValue_data member ofBlackIborCouponPricer; - the
WulinYongDoubleBarrierEnginealias forSuoWangDoubleBarrierEngine; - the
settlementDate,incomeDiscountCurve,spotIncome,spotValue,impliedYieldandforwardValuemethods ofForwardRateAgreement, as well as its protectedunderlyingIncome_,underlyingSpotValue_,settlementDays_,payoff_andincomeDiscountCurve_data members; - constructors for
InflationTermStructure,ZeroInflationTermStructure,InterpolatedZeroInflationCurve,PiecewiseZeroInflationCurvetaking anindexIsInterpolatedparameter; - the
indexIsInterpolatedmethod ofInflationTermStructureand its protectedindexIsInterpolated_data member; - some overloaded constructors of
SofrFutureRateHelper.
- the protected
-
Deprecated the
DividendVanillaOptionandDividendBarrierOptionclasses; useVanillaOptionandBarrierOptioninstead (see above). -
Deprecated the constructor of
AnalyticDividendEuropeanEnginethat takes no dividend information; use the other overload instead. -
Deprecated the names
SwaptionVolCube1,SwaptionVolCube1x,SwaptionVolCube1aandSwaptionVolCube2(see above). -
Deprecated the protected
setCommonmethod ofCappedFlooredYoYInflationCoupon.
Thanks go also to Jonathan Sweemer (@sweemer), the Xcelerit Dev Team (@xcelerit-dev), Fredrik Gerdin Börjesson (@gbfredrik), Klaus Spanderen (@klausspanderen) and Peter Caspers (@pcaspers) for a number of smaller fixes and improvements, and to Matthias Groncki (@mgroncki) and @lukey8767 for raising issues.