QuantLib 1.26 includes 26 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/22?closed=1.
-
End of support: as announced in the notes for the previous release, this release is the last to support Visual Studio 2013.
-
End of support: this release is the last to support the long-deprecated configure switches
--enable-disposableand--enable-std-unique-ptr. From the next release,Disposablewill always be disabled (and eventually removed) andstd::unique_ptrwill always be used instead ofstd::auto_ptr. This has already been the default in the last few releases. -
Future end of support: this release and the next will be the last to avoid C++14 syntax. This should still support most compilers released in the past several years (except for Visual Studio 2013, which we're already dropping in this release).
-
If tagged libraries are specified, as is the default on Windows, CMake now gives the built libraries the same names as the Visual Studio solution (for instance,
QuantLib-x64-mt-sinstead ofQuantLib-mt-s-x64) so that the pragma inql/auto_link.hppworks. -
QuantLib can now also be built as a subproject in a larger CMake build (thanks to Peter Caspers).
- When printed,
Periodinstances now display transparently what their units and length are, instead of doing more fancy formatting (e.g., "16 months" is now displayed instead of "1 year 4 months"). Also,Periodinstances that compare as equal now return the same period from theirnormalizemethod.
-
Added Tona (Tokyo overnight average) index (thanks to Jonghee Lee).
-
Added static
laggedFixingmethod toCPIstructure which provides interpolation of inflation index fixings.
- The
CPICouponandCPICashFlowclasses now take into account the correct dates and observation lag for interpolation.
-
Added a
BondForwardclass that generalizes the existingFixedRateBondForwardto any kind of bond (thanks to Marcin Rybacki). -
Avoided unexpected jumps in callable bond OAS (thanks to Ralf Konrad).
-
Fixed
TreeSwaptionEnginemispricing when adjusting the instrument schedule to a near exercise date (thanks to Ralf Konrad). -
the
ForwardRateAgreementclass now works correctly without an explicit discount curve.
- Dates explixitly passed to
InterpolatedZeroInflationCurveare no longer adjusted automatically to the beginning of their inflation period.
-
Removed the
MCDiscreteAveragingAsianEngineclass, deprecated in version 1.21. -
Deprecated the
LsmBasisSystem::PolynomTypetypedef, now renamed toPolynomialType;MakeMCAmericanEngine::withPolynomOrderwas also deprecated and renamed towithPolynomialOrder. -
Deprecated the
ZeroInflationCashFlowconstructor taking an unused calendar and business-day convention. -
Deprecated the
CPICouponconstructor taking a number of fixing days, as well as theCPICoupon::indexObservation,CPICoupon::adjustedFixingandCPICoupon::indexFixingmethods and theCPILeg::withFixingDaysmethod. -
Deprecated the
CPICashFlowconstructor taking a precalculated fixing date and a frequency. -
Deprecated the
Observer::set_typeandObservable::set_typetypedefs. -
Deprecated the unused
Curveclass. -
Deprecated the unused
LexicographicalViewclass. -
Deprecated the unused
Compositeclass. -
Deprecated the unused
DriftTermStructureclass.
Thanks go also to Matthias Groncki, Jonathan Sweemer and Li Zhong for smaller fixes, enhancements and bug reports.