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-disposable
and--enable-std-unique-ptr
. From the next release,Disposable
will always be disabled (and eventually removed) andstd::unique_ptr
will 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-s
instead ofQuantLib-mt-s-x64
) so that the pragma inql/auto_link.hpp
works. -
QuantLib can now also be built as a subproject in a larger CMake build (thanks to Peter Caspers).
- When printed,
Period
instances 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,Period
instances that compare as equal now return the same period from theirnormalize
method.
-
Added Tona (Tokyo overnight average) index (thanks to Jonghee Lee).
-
Added static
laggedFixing
method toCPI
structure which provides interpolation of inflation index fixings.
- The
CPICoupon
andCPICashFlow
classes now take into account the correct dates and observation lag for interpolation.
-
Added a
BondForward
class that generalizes the existingFixedRateBondForward
to any kind of bond (thanks to Marcin Rybacki). -
Avoided unexpected jumps in callable bond OAS (thanks to Ralf Konrad).
-
Fixed
TreeSwaptionEngine
mispricing when adjusting the instrument schedule to a near exercise date (thanks to Ralf Konrad). -
the
ForwardRateAgreement
class now works correctly without an explicit discount curve.
- Dates explixitly passed to
InterpolatedZeroInflationCurve
are no longer adjusted automatically to the beginning of their inflation period.
-
Removed the
MCDiscreteAveragingAsianEngine
class, deprecated in version 1.21. -
Deprecated the
LsmBasisSystem::PolynomType
typedef, now renamed toPolynomialType
;MakeMCAmericanEngine::withPolynomOrder
was also deprecated and renamed towithPolynomialOrder
. -
Deprecated the
ZeroInflationCashFlow
constructor taking an unused calendar and business-day convention. -
Deprecated the
CPICoupon
constructor taking a number of fixing days, as well as theCPICoupon::indexObservation
,CPICoupon::adjustedFixing
andCPICoupon::indexFixing
methods and theCPILeg::withFixingDays
method. -
Deprecated the
CPICashFlow
constructor taking a precalculated fixing date and a frequency. -
Deprecated the
Observer::set_type
andObservable::set_type
typedefs. -
Deprecated the unused
Curve
class. -
Deprecated the unused
LexicographicalView
class. -
Deprecated the unused
Composite
class. -
Deprecated the unused
DriftTermStructure
class.
Thanks go also to Matthias Groncki, Jonathan Sweemer and Li Zhong for smaller fixes, enhancements and bug reports.