Tags: lballabio/QuantLib
Tags
Changes for QuantLib 1.36: ========================== QuantLib 1.36 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/34?closed=1>. Portability ----------- - **New minimum C standard:** starting from this release, a compiler supporting C 17 is required. Passing `--enable-std-classes` to `configure` now causes `std::any` and `std::optional` to be used. - **End of support:** related to the above, and as announced since release 1.32, this release drops support Visual C 2015, g up to version 6.x, and clang up to version 4. Also, given the testing environments available on GitHub actions, clang 5 and 6 are no longer available to us for testing, and the same holds for g 7. Therefore, it is suggested to upgrade to a newer version if possible. - **End of support:** this release also removes the configure switch that allowed to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; the `std` classes were already the default since release 1.32. The corresponding classes in the `ext` namespace are now deprecated. - **Future change of default:** in a couple of releases, we're going to switch the default for `ext::any` and `ext::optional` from the Boost implementation to the standard one. Dates and calendars ------------------- - Added `startOfMonth` and `isStartOfMonth` methods to both `Date` and `Calendar`; thanks to Francois Botha (@igitur). - Added specialized Warsaw Stock Exchange (WSE) calendar to Poland; thanks to Marcin Bogusz (@marcinfair). - Added a new one-off holiday to South Korean calendar; thanks to Jongbong An (@jongbongan). Cash flows ---------- - Made` OvernightIndexedCouponPricer` public and renamed to `CompoundingOvernightIndexedCouponPricer`, and moved `ArithmeticAveragedOvernightIndexedCouponPricer` from experimental to core library; thanks to Ralf Konrad Eckel (@ralfkonrad). Indexes ------- - **Possibly breaking:** inherited the `Index` class from `Observer` and added a virtual `pastFixing` method. If you inherited a class from both `Index` and `Observer`, change your code to avoid inheriting twice from `Observer`. Thanks to Ralf Konrad Eckel (@ralfkonrad). - Added currency information to `EquityIndex`; thanks to Ralf Konrad Eckel (@ralfkonrad). Inflation --------- - Inflation indexes are now better at deciding when to forecast (@lballabio); also added a `needsForecast` method that makes the information available. - Added `CPI::laggedYoYRate`; also, `YoYInflationCoupon`, `yoyInflationLeg`, `CappedFlooredYoYInflationCoupon`, `YearOnYearInflationSwap`, `MakeYoYInflationCapFloor`, `YearOnYearInflationSwapHelper`, `YoYOptionletHelper` and the experimental `YoYCapFloorTermPriceSurface` and `InterpolatedYoYCapFloorTermPriceSurface` can now take an explicit `CPI::InterpolationType` parameter instead of relying on the index being defined as interpolated or not (@lballabio). This is a first step in removing interpolation from `YoYInflationIndex` and moving it into the coupons where it belongs. - Added method to YoY inflation index returning the date of the last available fixing (@lballabio). Term structures --------------- - Allow passing a pricer to the constructor of the `OISRateHelper` and `DatedOISRateHelper` classes (@lballabio); this makes it possible to use arithmetic averaging of overnight rates. - Allow custom constraint in non-linear fitting methods; thanks to Kai Lin (@klin333). - Allow creating a swap helper with frequency "Once" (@lballabio). - The `GlobalBootstrap` constructor can now take an optional optimizer and end criteria, allowing for better configuration; thanks to Eugene Toder (@eltoder). Volatility ---------- - Added exact Bachelier implied-vol formula from Jäckel's paper; thanks to Peter Caspers (@pcaspers). Deprecated features ------------------- - **Removed** features deprecated in version 1.31: - the `BlackVanillaOptionPricer` typedef; - the constructors of `CPICoupon` taking a `spread` parameter, its `spread` method, and its protected `spread_` data member; - the `withSpreads` method of `CPILeg`; - the protected `adjustedFixing` method and `spread_` data member of `CPICouponPricer`; - the `YYAUCPIr`, `YYEUHICPr`, `YYFRHICPr`, `YYUKRPIr`, `YYUSCPIr` and `YYZACPIr` indexes and the experimental `YYGenericCPIr` class; - the constructor of `YoYInflationIndex` taking a `ratio` parameter; - a couple of constructors of `ForwardRateAgreement`; - the empty files `ql/math/curve.hpp`, `ql/math/lexicographicalview.hpp`, `ql/termstructures/yield/drifttermstructure.hpp` and `ql/patterns/composite.hpp`; - the `const_iterator` and `const_value_iterator` typedefs in the `Garch11` class; - the `const_time_iterator`, `const_value_iterator`, `const_reverse_time_iterator` and `const_reverse_value_iterator` typedefs and the `cbegin_values`, `cend_values`, `crbegin_values`, `crend_values`, `cbegin_time`, `cend_time`, `crbegin_time` and `crend_time` methods of the `TimeSeries` class; - the `base`, `increment`, `decrement`, `advance` and `distance_to` method of the `step_iterator` class. - Deprecated `ext::function`, `ext::bind`, `ext::ref`, `ext::cref`, `ext::placeholders`, `ext::tuple`, `ext::make_tuple`, `ext::get` and `ext::tie`; use the corresponding `std::` classes and functions instead. - Deprecated the `ArithmeticAverageOIS`, `MakeArithmeticAverageOIS` and `ArithmeticOISRateHelper` classes; use `OvernightIndexedSwap`, `MakeOIS` and `OISRateHelper` instead. - Deprecated the `YoYInflationCoupon`, `yoyInflationLeg`, `CappedFlooredYoYInflationCoupon`, `YearOnYearInflationSwap`, `MakeYoYInflationCapFloor`, `YearOnYearInflationSwapHelper`, `YoYOptionletHelper`, `YoYCapFloorTermPriceSurface` and `InterpolatedYoYCapFloorTermPriceSurface` constructors that don't take an explicit CPI interpolation type. - Deprecated the `getInfo` method of `LevenbergMarquardt`; inspect the result of `minimize` instead. - Deprecated the `ql/experimental/averageois/averageoiscouponpricer.hpp` file; include `ql/cashflows/overnightindexedcouponpricer.hpp` instead. - Deprecated the somewhat out-of-scope and experimental `CreditRiskPlus`, `SensitivityAnalysis`, `aggregateNPV`, `parallelAnalysis` and `bucketAnalysis`. **Thanks go also** to Jonathan Sweemer (@sweemer), Eugene Toder (@eltoder), Ralf Konrad Eckel (@ralfkonrad), Tony Wang (@twan3617) and the XAD team (@auto-differentiation-dev) for miscellaneous smaller fixes, improvements or reports.
Changes for QuantLib 1.35: ========================== QuantLib 1.35 includes 32 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/33?closed=1>. Portability ----------- - **Future end of support:** as announced since release 1.32, this release is the last to support Visual C 2015, g up to version 6.x, and clang up to version 4; support for those compilers will be dropped in next release, 1.36, about three months from now. From that point onwards, this will allows us to enable the use of C 17 in the code base. Also, given the testing environments available on GitHub actions, clang 5 and 6 are no longer available to us for testing, and the same holds for g 7. Therefore, it is suggested to upgrade to a newer version if possible. - **Future end of support:** at the same time as the above, we'll also remove the configure switch that allows to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; the `std` classes are already the default since release 1.32. - The `config.hpp` generated by cmake now behaves like the one generated by autotools and provides values for the defines so that they can be used in `static_assert` (@lballabio). Thanks to Tom Anderson (@tomwhoiscontrary) for the heads-up. Calendars --------- - Some fixes for the Chilean calendar; thanks to Eugene Toder (@eltoder). - Better NFP/SIFMA rule for Good Friday in U.S. government bond calendar; thanks to Eugene Toder (@eltoder). - Updated Indian NSE holidays for 2024; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Some fixes for the Mexican calendar; thanks to Lucas Dias (@lukedays). Cash flows ---------- - Added lookback days, lockout days and observation shift to overnight-indexed coupons; thanks to Marcin Rybacki (@marcin-rybacki). The same parameters were propagated to overnight-indexed swaps and to the corresponding helpers. - Added the `hasFixed` method to IBOR coupons that detects whether they have fixed or still need to be forecast; thanks to Tom Anderson (@tomwhoiscontrary). Instruments ----------- - Overnight index futures didn't manage a start date falling on a holiday; this is now fixed (@lballabio). Thanks to GitHub user @JustCallMeDavid for the heads-up. - Callable bonds didn't account for nominal when calculating OAS; this is now fixed. Thanks to Hristo Raykov (@HristoRaykov). - For European swaption, sometimes the price is quoted as a forward price to be paid at exercise time. Such a quoted price can now be used for implied-volatility calculation. The forward price is also returned by the Black and Bachelier swaption engines as an additional result (@lballabio). Random numbers -------------- - Added the fast `ZigguratGaussianRng` generator; thanks to Ralf Konrad Eckel (@ralfkonrad). Term structures --------------- - Fix treatment of custom end date in `FuturesRateHelper` (@lballabio). - Add possibility to reset guess in fitted bond curves (@lballabio). Thanks to GitHub user @klin333 for the suggestion. Utilities --------- - Overloaded `Handle` and `RelinkableHandle` constructors on lvalue and rvalue references for performance; thanks to Jonathan Sweemer (@sweemer). Tools ----- - Better benchmark utility; thanks to Jacques du Toit (@amd-jadutoit). Examples -------- - Reworked bond example (@lballabio). Deprecated features ------------------- - **Removed** features deprecated in version 1.30: - the `DividendVanillaOption` and `DividendBarrierOption` classes; - the constructor of `AnalyticDividendEuropeanEngine` taking only a process and no dividends; - the `SwaptionVolCube1`, `SwaptionVolCube1a`, `SwaptionVolCube1x` and `SwaptionVolCube2` typedefs and the empty headers `ql/experimental/volatility/swaptionvolcube1.hpp`, `ql/experimental/volatility/swaptionvolcube1a.hpp` and `ql/experimental/volatility/swaptionvolcube2.hpp`; - the `setCommon` method of `CappedFlooredYoYInflationCoupon`. - Deprecated the constructor of `DatedOISRateHelper` taking a forward start; use the other overload instead. - Deprecated the specialized `Bibor9M`, `Euribor2W`, `Euribor3W`, `Euribor2M`, `Euribor4M`, `Euribor5M`, `Euribor7M`, `Euribor8M`, `Euribor9M`, `Euribor10M`, `Euribor11M`, `Euribor365_SW`, `Euribor365_2W`, `Euribor365_3W`, `Euribor365_1M`, `Euribor365_2M`, `Euribor365_3M`, `Euribor365_4M`, `Euribor365_5M`, `Euribor365_6M`, `Euribor365_7M`, `Euribor365_8M`, `Euribor365_9M`, `Euribor365_10M`, `Euribor365_11M`, `Euribor365_1Y`, `EURLiborSW`, `EURLibor2W`, `EURLibor2M`, `EURLibor4M`, `EURLibor5M`, `EURLibor7M`, `EURLibor8M`, `EURLibor9M`, `EURLibor10M`, `EURLibor11M`; if needed, use the corresponding generic class and pass the tenor (for instance, `Euribor(4 * Months)`). - Renamed `EuriborSW` to `Euribor1W` and deprecated the old name. - Deprecated the constructor of `RelinkableHandle` taking a raw pointer. **Thanks go also** to Dmitri Goloubentsev (@DmitriGoloubentsev), Eleanor Green (@eleanorTurintech), Tom Anderson (@tomwhoiscontrary), Peter Caspers (@pcaspers), Jonghee Lee (@nistick21), Ralf Konrad Eckel (@ralfkonrad) and the XAD team (@auto-differentiation-dev) for miscellaneous fixes, improvements or reports.
Changes for QuantLib 1.34: ========================== QuantLib 1.34 includes 35 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/32?closed=1>. Portability ----------- - **Future end of support:** as announced in release 1.32, we're targeting next release (1.35) as the last to support Visual C 2015, g up to version 6.x, and clang up to version 4; support for those compilers will be dropped in release 1.36, about six months from now. From that point onwards, this will allows us to enable the use of C 17 in the code base. Also, given the testing environments available on GitHub actions, clang 5 is already no longer available to us for testing, and in a while the same will hold for clang 6 and g 7. Therefore, it is suggested to upgrade to a newer version if possible. - **Future end of support:** at the same time as the above, we'll also remove the configure switch that allows to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; the `std` classes are already the default since release 1.32. - Generate and install pkg-config files in CMake builds; thanks to GitHub user @jez6. Dates and calendars ------------------- - Prevent `Calendar::advance` from returning the business end of month (instead of the calendar end) when `endOfMonth` is `true` and `convention` is `Unadjusted`; thanks to GitHub user @DeimosXing. - Add good Friday holiday for SOFR fixing; thanks to GitHub user @PaulXiCao. - Properly restrict São Paulo city holiday to years before 2022; thanks to Marco Bruno Ferreira Vasconcellos (@marcobfv). - Update holidays for 2023 and 2024 in calendars for India, Thailand, Singapore and South Africa; thanks to Fredrik Gerdin Börjesson (@gbfredrik). Cash flows ---------- - Fixed a couple of cases in which notifications were not forwarded properly; thanks to GitHub user @djkrystul for the heads-up. - Fixed past payment dates and added support for OIS in `LinearTsrPricer`; thanks to Peter Caspers (@pcaspers). Instruments ----------- - Swaptions can now take an OIS as underlying; thanks to Guillaume Horel (@thrasibule) and Peter Caspers (@pcaspers). So far, only `BlackSwaptionEngine` manages OIS explicitly; other engines might work and return approximated values. - More methods in `MakeOIS` and `MakeVanillaSwap`; thanks to Eugene Toder (@eltoder). - More methods in the `BondFunctions` class now support either clean or dirty prices; thanks to Francois Botha (@igitur). - The `basisPointValue` and `yieldValueBasisPoint` methods in `BondFunctions` didn't always manage the settlement date correctly; this is now fixed (thanks to GitHub user @jez6). - Add `Custom` to `Futures::Type` enumeration to allow passing custom dates to futures; thanks to Eugene Toder (@eltoder). Term structures --------------- - Inflation curves can now be built passing an explicit base date (corresponding to the last published fixing) instead of an observation lag (@lballabio). - Fixed calculation of year fraction under Actual/365 Canadian convention in `FuturesRateHelper`; thanks to GitHub user @PaulXiCao. - Fixed settlement date calculation in cross-currency basis-swap rate helpers in some cases; thanks to Marcin Rybacki (@marcin-rybacki) for the fix and to Aleksis Ali Raza for the heads-up. Math ---- - Handle non-equidistant grids and arbitrary dimensions in Laplace interpolation; thanks to Peter Caspers (@pcaspers). Deprecated features ------------------- - **Removed** features deprecated in version 1.29: - The `argument_type`, `first_argument_type`, `second_argument_type` and `result_type` typedefs in several classes; - The overloads of zero-rate inflation index constructors taking an `interpolated` argument; - The `interpolated` method and the protected `interpolated_` data member in `InflationIndex`; - The overload of `CashFlows::npvbps` taking the result by reference; - The protected `rateCurve_` method in `InflationCouponPricer`; - The `ThreadKey` typedef; - The empty header `ql/experimental/credit/riskybond.hpp`. - Deprecated the constructors of `InflationTermStructure`, `ZeroInflationTermStructure`, `YoYInflationTermStructure`, `InterpolatedZeroInflationCurve`, `InterpolatedYoYInflationCurve`, `PiecewiseZeroInflationCurve` and `PiecewiseYoYInflationCurve` taking an observation lag; use the overloads taking an explicit base date instead. - Deprecated the `Bond::yield`, `BondFunctions::atmRate`, `BondFunctions::yield` and `BondFunctions::zSpread` overloads taking a clean price as a number; use the overloads taking a `Bond::Price` instead. - Deprecated the `InflationTermStructure::setSeasonality` overload taking no arguments; use the overload taking a pointer and pass an empty one to remove seasonality. - Deprecated the `InflationTermStructure::setBaseRate` method; set `baseRate_` directly if needed. - Deprecated the `Swaption::underlyingSwap` and `SwaptionHelper::underlyingSwap` methods; use `underlying` instead. - Deprecated the broken `FixedRateBondHelper::fixedRateBond` and `CPIBondHelper::cpiBond` methods and the corresponding `fixedRateBond_` and `cpiBond_` data members. **Thanks go also** to Isuru Fernando (@isuruf), Viktor Zhou (@yyuuhhjjnnmm), Stephen Dacek (@sdacek), Yi Jiang (@yjian012), Jonathan Sweemer (@sweemer), Eugene Toder (@eltoder), the XAD team (@auto-differentiation-dev) and GitHub user @PaulXiCao and @klin333 for miscellaneous fixes, improvements or reports.
Changes for QuantLib 1.33: ========================== QuantLib 1.33 includes 43 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/31?closed=1>. Portability ----------- - **Future end of support:** as announced in release 1.32, we're targeting the future release 1.35 as the last to support Visual C 2015, g up to version 6.x, and clang up to version 4; support for those compilers will be dropped in release 1.36, about nine months from now. From that point onwards, this will allows us to enable the use of C 17 in the code base. - **Future end of support:** at the same time as the above, we'll also remove the configure switch that allows to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; the `std` classes are already the default since release 1.32. - Added CMake presets for Apple; thanks to Christian Köhnenkamp (@kohnech). Dates and calendars ------------------- - Added New Year's Eve as a holiday to the Chilean calendar; thanks to GitHub user @MoixaStrikes. - Added Black Awareness Day as a holiday to the Brazilian calendar starting from 2024; thanks to GitHub user @PaulXiCao. - Added Inauguration Day as a holiday to the Mexican calendar starting from 2024; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Added Chinese holidays for 2024; thanks to Cheng Li (@wegamekinglc). - Updated list of known ECB dates; thanks to GitHub user @PaulXiCao. - Added Thailandese and Taiwanese holidays up to 2024; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Added a one-time holiday to the South African calendar; thanks to Francois Botha (@igitur). Models ------ - Added support for angled contour shift integrals to Heston model; thanks to Klaus Spanderen (@klausspanderen). Instruments ----------- - Allow different calendars and frequencies for different legs in `MakeOIS` and `OISRateHelper`; thanks to Eugene Toder (@eltoder). - Enabled negative payment lag in swap legs; thanks to GitHub user @Stoozy. Random numbers -------------- - Added Burley 2020 scrambled Sobol sequence generator; thanks to Peter Caspers (@pcaspers). Tests ----- - Use automated registration of unit tests; thanks to Siddharth Mehrotra (@Sidsky). - Added a few fuzzing tests; thanks to Nathaniel Brough (@silvergasp). - Improved test coverage for a few classes; thanks to GitHub user @PaulXiCao. Deprecated features ------------------- - **Removed** features deprecated in version 1.28: - The overload of `CallableBond::impliedVolatility` taking an NPV as target. - The constructor of `AmortizingFixedRateBond` taking a sinking frequency. - The constructor of `AmortizingFixedRateBond` taking a vector of `InterestRate` instances. - The constructor of `FixedRateBond` taking start date, maturity date etc. instead of a schedule. - The constructor of `FixedRateBond` taking a vector of `InterestRate` instances. - The constructor of `FloatingRateBond` taking start date, maturity date etc. instead of a schedule. - The constructor of `CPICapFloor` taking a handle to an interest-rate index. - The `CPICapFloor::inflationIndex` method. - The `infIndex` data member of the `CPICapFloor::arguments` class. - A redundant constructor of `SabrSmileSection`. - The empty headers `ql/experimental/amortizingbonds/amortizingcmsratebond.hpp`, `ql/experimental/amortizingbonds/amortizingfixedratebond.hpp` and `ql/experimental/amortizingbonds/amortizingfloatingratebond.hpp`. - Deprecated the constructor of `Currency` and `Currency::Data` taking a format string, and the `Currency::format` method. **Thanks go also** to Yi Jiang (@yjian012), Hoang Giap Vu (@hgv79116), Jonathan Sweemer (@sweemer) and the XAD team (@auto-differentiation-dev) for smaller fixes and improvements.
Changes for QuantLib 1.32: ========================== QuantLib 1.32 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/29?closed=1>. Portability ----------- - **Possibly breaking change:** the protected `evaluationDate_` data member of the `SwaptionVolatilityDiscrete` class was renamed to `cachedReferenceDate_`. - **Future end of support:** we're targeting the future release 1.35 as the last to support Visual C 2015, g up to version 6.x, and clang up to version 4; support for those compilers will be dropped in release 1.36, about one year from now. From that point onwards, this will allows us to enable the use of C 17 in the code base. - **Future end of support:** at the same time as the above, we'll also remove the configure switch that allows to use `boost::tuple`, `boost::function` and `boost::bind` instead of their `std` counterparts; starting from this release, the `std` classes are already the default. - Reorganized the CMake presets; thanks to the XAD team (@auto-differentiation-dev). Cash flows ---------- - All cash flows are now lazy; thanks to Peter Caspers (@pcaspers). Instruments ----------- - Overnight-indexed swaps can now have different schedules and nominals on the two legs; thanks to Tom Anderson (@tomwhoiscontrary). - Margrabe options, compound options and chooser options were moved from experimental to core (@lballabio). - Introduced common base class `FixedVsFloatingSwap` for vanilla swap and overnight-indexed swaps; this will be used in the future to help a few existing swap engines support OIS (@lballabio). - Added optional `redemptions` argument to amortizing bond constructors. This allows them to be used for pools of loans where a certain proportion of the underlying loans are subject to defaults and losses. Thanks to Gyan Sinha (@gyansinha). - It is now possible to manually prune the notification tree for swaps and bonds if one knows that the cashflows won't change pricer; thanks to Peter Caspers (@pcaspers). Models ------ - Fixed the algorithm to add instruments to the calibration set of the Markov model; thanks to Peter Caspers (@pcaspers) for the fix and Giuseppe Trapani (@lePidduN7) for the heads-up. Term structures --------------- - Time-to-date conversion in some swaption volatility classes could return the wrong date before the first exercise date; this is now fixed, thanks to Peter Caspers (@pcaspers). - It's now possible to specify the maximum number of iteration for the solver inside a bootstrapped term structure; thanks to Jonathan Sweemer (@sweemer) for the change and Daniel Ángeles Ortiz (@Danie8) for the heads-up. - Reduced the number of notifications for bootstrap helpers; thanks to Peter Caspers (@pcaspers). Random numbers -------------- - Added the xoshiro265** random-number generator; thanks to Ralf Konrad (@ralfkonrad). It is faster than the Mersenne Twister and might be used as default in the future. Examples -------- - The code of the examples has been modernized a bit; thanks to Jonathan Sweemer (@sweemer). Patterns -------- - Avoided a possible crash when using observables in a multi-threaded setting; thanks to Peter Caspers (@pcaspers). Deprecated features ------------------- - **Removed** features deprecated in version 1.27: - The `QL_NULL_INTEGER`, `QL_NULL_REAL`, `QL_NOEXCEPT`, `QL_CONSTEXPR` and `QL_USE_STD_UNIQUE_PTR` macros. - The `MultiCurveSensitivities` class. - The `constant`, `identity`, `square`, `cube`, `fourth_power`, `add`, `subtract`, `subtract_from`, `multiply_by`, `divide`, `divide_by`, `less_than`, `greater_than`, `greater_or_equal_to`, `not_zero`, `not_null`, `everywhere`, `nowhere`, `equal_within`, `clipped_function`, `clip`, `composed_function`, `compose`, `binary_compose3_function` and `compose3` functors. - The `PdeShortRate`, `ShoutCondition`, `FDShoutCondition`, `FDStepConditionEngine` and `FDEngineAdapter` classes from the old finite-differences framework. - The `dsd::inner_product` function. - The `FDDividendEngineBase`, `FDDividendEngineMerton73`, `FDDividendEngineShiftScale` and `FDDividendEngine` pricing engines. - The empty headers `ql/auto_ptr.hpp`, `ql/math/initializers.hpp`, `ql/methods/finitedifferences/americancondition.hpp`, `ql/methods/finitedifferences/onefactoroperator.hpp`, `ql/pricingengines/vanilla/fddividendshoutengine.hpp`, `ql/pricingengines/vanilla/fdshoutengine.hpp` and `ql/utilities/disposable.hpp`. - Deprecated the overload of the `withReplication` method in the `DigitalIborLeg`, `DigitalCmsLeg` and `DigitalCmsSpreadLeg` classes that takes no arguments; use the other overload instead. - Deprecated the `StandardFiniteDifferenceModel`, `StandardSystemFiniteDifferenceModel` and `StandardStepCondition` typedefs; define your own typedefs if needed. - Deprecated the `FDVanillaEngine`, `FDMultiPeriodEngine`, `StepConditionSet`, `ParallelEvolverTraits`, `ParallelEvolver` and `SampledCurve`classes and the `BSMTermOperator` and `SampledCurveSet` typedefs; use the new finite-differences framework instead. - Deprecated the `QL_NULL_FUNCTION` macro; to check if a function is empty, use it in a bool context instead. - Deprecated the now empty headers `ql/experimental/exoticoptions/margrabeoption.hpp`, `ql/experimental/exoticoptions/analyticcomplexchooserengine.hpp`, `ql/experimental/exoticoptions/analyticeuropeanmargrabeengine.hpp`, `ql/experimental/exoticoptions/analyticcompoundoptionengine.hpp`, `ql/experimental/exoticoptions/simplechooseroption.hpp`, `ql/experimental/exoticoptions/compoundoption.hpp`, `ql/experimental/exoticoptions/analyticamericanmargrabeengine.hpp`, `ql/experimental/exoticoptions/analyticsimplechooserengine.hpp`, `ql/experimental/exoticoptions/complexchooseroption.hpp`, `ql/experimental/termstructures/multicurvesensitivities.hpp`, `ql/methods/finitedifferences/shoutcondition.hpp`, `ql/methods/finitedifferences/pdeshortrate.hpp`, `ql/pricingengines/vanilla/fddividendengine.hpp`, `ql/pricingengines/vanilla/fdstepconditionengine.hpp`, `ql/pricingengines/vanilla/fdconditions.hpp` and `ql/models/marketmodels/duffsdeviceinnerproduct.hpp`. **Thanks go also** to Jonathan Sweemer (@sweemer), Ralf Konrad (@ralfkonrad), Klaus Spanderen (@klausspanderen), Peter Caspers (@pcaspers), Tom Anderson (@tomwhoiscontrary), Fredrik Gerdin Börjesson (@gbfredrik), Guillaume Horel (@thrasibule) and the XAD team (@auto-differentiation-dev) for a number of smaller fixes and improvements.
Changes for QuantLib 1.31.1: ============================ QuantLib 1.31.1 is a bug-fix release for QuantLib 1.31. It fixes a regression that could cause a segmentation fault when bootstrapping an interest-rate curve using OIS rates. Details are available at <https://github.com/lballabio/QuantLib/milestone/30?closed=1>.
Changes for QuantLib 1.31: ========================== QuantLib 1.31 includes a record 68 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/28?closed=1>. Portability ----------- - **Future end of support:** as announced in the notes for the previous release, after this release using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while; but we do suggest you start using `ext::tuple` etc. in the meantime. - The cmake build now creates (but doesn't install) a `quantlib-config` script that can be used to retrieve flags for compiling QuantLib-dependent projects; thanks to Christian Köhnenkamp (@kohnech). - A number of Boost classes and functions only used internally were replaced by their standard-library equivalent; thanks to Jonathan Sweemer (@sweemer). Patterns -------- - **Optional change of behavior:** by default, the `LazyObject` class forwards only one notification after recalculating and silently ignores the others. In some edge cases, this could lead to objects not being updated. It's now possible to enable a different behavior where all notifications are forwarded; the new behavior can be chosen at compile time via the configure option `--disable-faster-lazy-objects` (or disabling `QL_FASTER_LAZY_OBJECTS` in cmake or `userconfig.hpp`) or at run time by calling `LazyObject::Defaults::instance().alwaysForwardNotifications()`. This might cause a slow down, so you're invited to try it out and report on the mailing list. If there are no problems, the new behavior might become the default in future releases. Also, a new configure option `--enable-throwing-in-cycles` (`QL_THROW_IN_CYCLES` in cmake or `userconfig.hpp`) is optionally available; when both this option and the new behavior are enabled, notifications cycles involving a lazy object will throw an exception. It is suggested to try enabling the option and removing such loops, if any. Thanks to Peter Caspers (@pcaspers) for the change and to Ralf Konrad (@ralfkonrad), Jonathan Sweemer (@sweemer) and GitHub user @djkrystul for feedback. Date/time --------- - **Change of behavior:** when the end-of-month option is true, the constructor of a schedule no longer adjust to the end of their month the effective date and the termination date if they were passed explicitly. Thanks to Hristo Raykov (@HristoRaykov). - Added separate US SOFR calendar to manage days that are business days for the US government bond market but in which SOFR doesn't fix; for instance, Good Friday 2023 (@lballabio). Thanks to Tom Anderson (@tomwhoiscontrary) for reporting the issue. - Fixed some rolling rules for South Korean calendar; thanks to Jonghee Lee (@nistick21). - Fixed incorrect 2023 holidays for Hong Kong calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Added Hong Kong holidays for 2021-2024; thanks to Rémy Frèrebeau (@rfrerebe-stx) and Binrui Dong (@BrettDong). - Added Singapore holidays for 2019-2023; thanks to Rémy Frèrebeau (@rfrerebe-stx). - Added Indian holidays for 2021-2025; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Added Taiwanese holidays for 2020-2023; thanks to @jsmx. - Added a few election days for South African and South Korean calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Updated Danish calendar; starting in 2024, General Prayer Day will no longer be a holiday. Thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Fixed a few holidays in Finland and Singapore calendars; Thanks to Fredrik Gerdin Börjesson (@gbfredrik). - More day counters (Act/364, Act/365.25, Act/366) now take into account intraday resolution when enabled; thanks to Klaus Spanderen (@klausspanderen). Cash flows ---------- - The accrued amount for CPI coupons is now correctly based on the index ratio at settlement date. An inspector for retrieving the index ratio at a given date was also added (@lballabio). - Enabled the use of normal volatilities in Hagan pricer for CMS coupons; thanks to Andre Miemiec (@amiemiec). - Floating-rate coupons are now lazy; thanks to Peter Caspers (@pcaspers). Indexes ------- - When passed a tenor of 7 or 14 business days, interest-rate indexes would wrongly convert it to 1 or 2 weeks. This is now fixed (@lballabio). Thanks to Eugene Toder (@eltoder) for reporting the issue. - Added DESTR and SWESTR indexes; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Added CORRA index; thanks to @AND2797. - When an YoY inflation index is calculated as a ratio, the underlying inflation index is available through an inspector and its fixings are used to calculate the fixing of the YoY index (@lballabio). Instruments ----------- - Instruments now register automatically with the global evaluation date and are notified when it changes. This makes sense in general (if the evaluation date changes, you probably want to recalculate) and can also help avoid some edge cases when lazy objects only forward their first notification (@lballabio). - Allowed passing a schedule without a regular tenor to callable fixed-rate bonds; thanks to Hristo Raykov (@HristoRaykov) for the fix and to @OleBueker for reporting the issue. - Reorganized the constructors of FRA instruments; thanks to Jake Heke (@jakeheke75). Term structures --------------- - Ensures that upfront CDS helpers update correctly when the global evaluation date changes; thanks to Andrea Pellegatta (@andrea85p) for the fix and to @bkhoor for reporting the issue. - Allow more maturities for SOFR quarterly contract in SOFR futures rate helper; thanks to Jake Heke (@jakeheke75). - Added constructor for date-dependent strikes to StrippedOptionlet; thanks to Peter Caspers (@pcaspers). Test suite ---------- - Global settings (such as the evaluation date) are now restored and index fixings are now cleaned automatically at the end of each test case, making it unnecessary to clean them up manually. Thanks to Eugene Toder (@eltoder). - The parallel unit-test runner now passes the `--run_test=<filter>` option down to the underlying Boost.Test implementation. Thanks to Eugene Toder (@eltoder). Deprecated features ------------------- - **Removed** features deprecated in version 1.26: - The `CPICoupon` constructor taking a number of fixing days and its `indexObservation`, `adjustedFixing` and `indexFixing(date)` methods. - The `CPICashFlow` constructor taking a fixing date. - The `withFixingDays` methods of `CPILeg`. - The `ZeroInflationCashFlow` constructor taking a calendar and business-day convention. - The `LsmBasisSystem::PolynomType` typedef and the `MakeMCAmericanEngine::withPolynomOrder` method. - The `Observer::set_type` and `Observable::set_type` typedefs. - The `Curve` class. - The `LexicographicalView` class. - The `Composite` class. - The `DriftTermStructure` class. - Deprecated the various `time_iterator` and `value_iterator` types in `TimeSeries`, as well as methods returning them. The more general `const_iterator` and `const_reverse_iterator` types can be used instead. - Deprecated the constructors of `CPICoupon` taking a spread, as well as its `spread` method, its protected `spread_` data member, and the `withSpreads` methods of `CPILeg`. - Deprecated the `adjustedFixing` method and the protected `spread_` data member of `CPICouponPricer`. - Renamed `BlackVanillaOptionPricer` to `MarketQuotedOptionPricer` and deprecated the old name. - Deprecated a couple of constructors of `ForwardRateAgreement`. - Deprecated the constructor of `YoYInflationIndex` taking a `ratio`. Also, deprecated explicit classes for YoY ratio indexes `YYGenericCPIr`, `YYAUCPIr`, `YYEUHICPr`, `YYFRHICPr`, `YYUKRPIr`, `YYUSCPIr` and `YYZACPIr`. - Deprecated the `base`, `increment`, `decrement`, `advance` and `distance_to` methods of the `step_iterator` class. **Thanks go also** to Jonathan Sweemer (@sweemer), Jose Garcia (@j053g), Jake Heke (@jakeheke75), Eugene Toder (@eltoder), Binrui Dong (@BrettDong), the Xcelerit Dev Team (@xcelerit-dev), Ralf Konrad (@ralfkonrad), Fredrik Gerdin Börjesson (@gbfredrik) and Tom Anderson (@tomwhoiscontrary) for a number of smaller fixes and improvements.
Changes for QuantLib 1.30: ========================== 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>. Portability ----------- - **Future end of support:** as announced in the notes for the previous release, after this release and the next, using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while; but we do suggest you start using `ext::tuple` etc. 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::any` and `std::optional` (and the related `std::any_cast` and `std::nullopt`) instead of their `boost` counterparts by setting new compilation switches; thanks to Jonathan Sweemer (@sweemer). Using the `std` classes requires C 17. We expect the `boost` classes to remain the default for a while, but in the meantime we encourage to start using `ext::any` and `ext::optional` in preparation for a new default. Date/time --------- - 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). Cashflows --------- - 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). Instruments ----------- - 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 `VanillaOption` and `BarrierOption` classes 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). Indexes ------- - Added UKHICP inflation index; thanks to Fredrik Gerdin Börjesson (@gbfredrik). Term structures --------------- - Renamed `SwaptionVolCube1`, `SwaptionVolCube1x`, `SwaptionVolCube1a` and `SwaptionVolCube2` to `SabrSwaptionVolatilityCube`, `XabrSwaptionVolatilityCube`, `NoArbSabrSwaptionVolatilityCube` and `InterpolatedSwaptionVolatilityCube`, 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). Models ------ - Moved the Heston SLV model from experimental to main; thanks to Klaus Spanderen (@klausspanderen). Math ---- - Added a few overloads to Array and Matrix operators taking rvalue references for increased speed; thanks to Jonathan Sweemer (@sweemer). Deprecated features ------------------- - **Removed** features deprecated in version 1.25: - the protected `spreadLegValue_` data member of `BlackIborCouponPricer`; - the `WulinYongDoubleBarrierEngine` alias for `SuoWangDoubleBarrierEngine`; - the `settlementDate`, `incomeDiscountCurve`, `spotIncome`, `spotValue`, `impliedYield` and `forwardValue` methods of `ForwardRateAgreement`, as well as its protected `underlyingIncome_`, `underlyingSpotValue_`, `settlementDays_`, `payoff_` and `incomeDiscountCurve_` data members; - constructors for `InflationTermStructure`, `ZeroInflationTermStructure`, `InterpolatedZeroInflationCurve`, `PiecewiseZeroInflationCurve` taking an `indexIsInterpolated` parameter; - the `indexIsInterpolated` method of `InflationTermStructure` and its protected `indexIsInterpolated_` data member; - some overloaded constructors of `SofrFutureRateHelper`. - Deprecated the `DividendVanillaOption` and `DividendBarrierOption` classes; use `VanillaOption` and `BarrierOption` instead (see above). - Deprecated the constructor of `AnalyticDividendEuropeanEngine` that takes no dividend information; use the other overload instead. - Deprecated the names `SwaptionVolCube1`, `SwaptionVolCube1x`, `SwaptionVolCube1a` and `SwaptionVolCube2` (see above). - Deprecated the protected `setCommon` method of `CappedFlooredYoYInflationCoupon`. **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.
Changes for QuantLib 1.29: ========================== QuantLib 1.29 includes 42 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/26?closed=1>. Portability ----------- - **End of support:** as announced in the notes for the previous release, this release no longer manages thread-local singletons via a user-provided `sessionId` function, and therefore the latter is no longer needed. Instead, the code now uses the built-in language support for thread-local variables. Thanks go to Peter Caspers (@pcaspers). - **Future end of support:** as announced in the notes for the previous release, after the next couple of releases, using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while; but we do suggest you start using `ext::tuple` etc. in the meantime. - Replaced internal usage of `boost::thread` with `std::thread`; thanks to Jonathan Sweemer (@sweemer). This removed our last dependency on Boost binaries and makes it possible to compile QuantLib using a header-only Boost installation. - On Windows, it is now possible to use the MSVC dynamic runtime when using cmake by passing `-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL` on the command line; thanks to Jonathan Sweemer (@sweemer). The static runtime remains the default. - It is now possible to build QuantLib with Intel's `icpx` compiler using cmake; thanks to Jonathan Sweemer (@sweemer). Note that in order to get all the unit tests passing, `-fp-model=precise` must be added to `CMAKE_CXX_FLAGS`. Date/time --------- - Updated Chinese holidays for 2023; thanks to Cheng Li (@wegamekinglc). - Added in-lieu holiday for Christmas 2022 to South-African calendar; thanks to Joshua Hayes (@JoshHayes). - Added King Charles III coronation holiday to UK calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik). - Added holiday for National Day of Mourning to Australian calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik). Instruments ----------- - Added high performance/precision American engine based on fixed-point iteration for the exercise boundary; thanks to Klaus Spanderen (@klausspanderen). - Bonds with draw-down (i.e., increasing notionals) are now allowed; thanks to Oleg Kulkov (@Borgomi42 ). - Added `withIndexedCoupons` and `withAtParCoupons` methods to `MakeSwaption` for easier initialization; thanks to Ralf Konrad (@ralfkonrad). - It is now possible to use the same pricing engine for vanilla and dividend vanilla options, or for barrier and dividend barrier options (@lballabio). Indexes ------- - Creating a zero inflation index as "interpolated" is now deprecated; thanks to Ralf Konrad (@ralfkonrad). The index should only return monthly fixings. Interpolation is now the responsibility of inflation-based coupons. Term structures --------------- - The `ConstantCPIVolatility` constructor can now take a handle to a volatility quote, instead of just an immutable number (@lballabio). Deprecated features ------------------- - **Removed** features deprecated in version 1.24: - the `createAtParCoupons`, `createIndexedCoupons` and `usingAtParCoupons` methods of `IborCoupon`; - the `RiskyBond` class and its subclasses `RiskyFixedBond` and `RiskyFloatingBond`; - the `CrossCurrencyBasisSwapRateHelper` typedef; - the `termStructure_` data member of `BlackCalibrationHelper`; - the static `baseCurrency` and `conversionType` data members of `Money`; - the `nominalTermStructure` method and the `nominalTermStructure_` data member of `InflationTermStructure`; - the constructor of the `UnitedStates` calendar not taking an explicit market. - Deprecated the `argument_type`, `first_argument_type`, `second_argument_type` and `result_type` typedefs in a number of classes; use `auto` or `decltype` instead. - Deprecated the constructors of `InflationIndex`, `ZeroInflationIndex`, `FRHICP`, `ZACPI`, `UKRPI`, `EUHICP`, `EUHICPXT`, `USCPI`, `AUCPI` and `GenericCPI` taking an `interpolated` parameter; use another constructor. - Deprecated the `interpolated` method and the `interpolated_` data member of `InflationIndex`. - Deprecated the `ThreadKey` typedef. It was used in the signature of `sessionId`, which is no longer needed after the changes in the `Singleton` implementation. - Deprecated the `rateCurve_` data member of the `InflationCouponPricer` base class. If you need it, provide it in your derived class. - Deprecated the `npvbps` function taking NPV and BPS as references. Use the overload returning a pair of `Real`s. **Thanks go also** to Matthias Groncki (@mgroncki), Jonathan Sweemer (@sweemer) and Nijaz Kovacevic (@NijazK) for a number of smaller fixes and improvements, to the Xcelerit Dev Team (@xcelerit-dev) for improvements to the automated CI builds, and to Vincenzo Ferrazzanno (@vincferr), @alienbrett, @xuruilong100 and @philippb90 for raising issues.
Changes for QuantLib 1.28: ========================== QuantLib 1.28 includes 33 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/24?closed=1>. Portability ----------- - **New language standard:** as announced in the notes for the previous release, this release started using some C 14 syntax. This should be supported by most compilers released in the past several years. - **End of support:** as announced in the notes for the previous release, this release is the last to manage thread-local singletons via a user-provided `sessionId` function. Future releases will use the built-in language support for thread-local variables. - **Future end of support:** after the next two or three releases, using `std::tuple`, `std::function` and `std::bind` (instead of their `boost` counterparts) will become the default. If you're using `ext::tuple` etc. in your code (which is suggested), this should be a transparent change. If not, you'll still be able to choose the `boost` versions via a configure switch for a while. Date/time --------- - Added Act/366 and Act/365.25 day counters; thanks to Ignacio Anguita (@IgnacioAnguita). - Added H.M. the Queen's funeral to the UK calendars; thanks to Tomass Wilson (@Wilsontomass). Instruments ----------- - Amortizing bonds were moved out of the experimental folder. Also, a couple of utility functions were provided to calculate amortization schedules and notionals. Pricing engines --------------- - Fixed results from `COSHestonEngine` in the case of an option with short time to expiration and deep ITM or deep OTM strike prices; thanks to Ignacio Anguita (@IgnacioAnguita). - The ISDA engine for CDS could calculate the fair upfront with the wrong sign; this is now fixed, thanks to Gualtiero Chiaia (@gchiaia). Term structures --------------- - The constructor for `OISRateHelper` now allows to specify the `endOfMonth` parameter; thanks to Guillaume Horel (@thrasibule). Finite differences ------------------ - Fixed computation of cds boundaries in `LocalVolRNDCalculator`; thanks to @mdotlic. Experimental folder ------------------- The `ql/experimental` folder contains code whose interface is not fully stable, but is released in order to get user feedback. Experimental classes make no guarantees of backward compatibility; their interfaces might change in future releases. - **Breaking change**: the constructor of the `CPICapFloorTermPriceSurface` class now also takes an explicit interpolation type. - **Possibly breaking**: the protected constructor for `CallableBond` changes its arguments. If you inherited from this class, you'll need to update your code. If you're using the existing derived bond classes, the change will be transparent. - Pricing engines for callable bonds worked incorrectly when the face amount was not 100. This is now fixed. - The `impliedVolatility` method for callable bonds was taking a target NPV, not a price. This implementation is now deprecated, and a new overload was added taking a price in base 100. Deprecated features ------------------- - **Removed** features deprecated in version 1.23: - the constructors of `ZeroCouponInflationSwap` and `ZeroCouponInflationSwapHelper` missing an explicit CPI interpolation type; - the constructors of `ActualActual` and `Thirty360` missing an explicit choice of convention, and the constructor of `Thirty360` passing an `isLastPeriod` boolean flag. - Deprecated the constructors of `FixedRateBond` taking an `InterestRate` instance or not taking a `Schedule` instance. - Deprecated the constructor of `FloatingRateBond` not taking a `Schedule` instance. - Deprecated the constructors of `AmortizingFixedRateBond` taking a sinking frequency or a vector of `InterestRate` instances. - Deprecated the constructor of `CPICapFloor` taking a `Handle` to an inflation index, and its `inflationIndex` method returning a `Handle`. New versions of both were added using `shared_ptr` instead. - Deprecated one of the constructors of `SabrSmileSection`; a new version was added also taking an optional reference date. - Deprecated the old `impliedVolatility` method for callable bonds; see above. **Thanks go also** to Konstantin Novitsky (@novitk), Peter Caspers (@pcaspers), Klaus Spanderen (@klausspanderen), Fredrik Gerdin Börjesson (@gbfredrik) and Dirk Eddelbuettel (@eddelbuettel) for a number of smaller fixes, and to Jonathan Sweemer (@sweemer) for various improvements to the automated CI builds.
PreviousNext