QuantLib 1.23 includes 30 pull requests from several contributors.
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/19?closed=1.
-
On Mac OS, the
-std=c++11
flag is now added automatically when needed. This applies to bothconfigure
andcmake
(thanks to Leander Schulten). -
We now assume that the compiler supports Boost::uBLAS and no longer check for it in configure. (The check was originally introduced for versions of gcc before 4.x, which don't support C++ anyway.) Please let us know if this causes problems on some systems.
-
The
Period
,InterestRate
andInterestRateIndex
classes are now visualized more clearly in the Visual Studio debugger (thanks to Francois Botha).
-
Year-on-year and CPI legs are now set a default coupon pricer. In most cases, this removes the need for setting it explicitly.
-
Add new
ZeroInflationCashFlow
class, used in zero-coupon inflation swaps (thanks to Ralf Konrad).
- Added custom constructor that allows to create bespoke currencies not already included in the library (thanks to Marcin Rybacki).
-
Fixed implementation of U.S. 30/360 convention (the old one is still available as 30/360 NASD).
-
The 30/360 ISDA convention can now take the termination date as a constructor argument and use it to adjust the calculation properly.
-
Added the 30/360 ISMA convention; the Bond-Basis convention is now an alias to the former.
-
The 30/360 German convention was renamed to ISDA; "German" remains as an alias.
-
Added new Canadian holiday (National Day for Truth and Reconciliation) established in 2021 (thanks to GitHub user
qiubill
for the heads-up). -
Added new U.S. holiday (Juneteenth) established in 2021.
-
Added new Platinum Jubilee U.K. holiday for 2022 (thanks to Ioannis Rigopoulos for the heads-up.)
-
Added missing Christmas Eve holiday to Norwegian calendar (thanks to Prince Nanda).
- Added ESTR index (thanks to Magnus Mencke).
-
Added zero-coupon swap (thanks to Marcin Rybacki).
-
The
Type
enumeration defined in several swap classes was moved to their baseSwap
class. -
Fixed sign of theta in experimental Kirk engine for spread options (thanks to Xu Ruilong for the heads-up).
- Improved discretization of Cox-Ingersoll-Ross process to avoid occasional divergence (thanks to Magnus Mencke).
-
Deprecated default constructor for actual/actual and 30/360 day counters; the desired convention should now be passed explicitly.
-
Removed features deprecated in version 1.18: the
CalibrationHelperBase
typedef (nowCalibrationHelper
), some overloads of theCalibratedModel::calibrate
andCalibratedModel::value
methods, the constructors ofPiecewiseYieldCurve
andPiecewiseDefaultCurve
taking anaccuracy
parameter, the constructors ofBondHelper
,FixedRateBondHelper
andCPIBondHelper
taking a booleanuseCleanPrice
parameter, theBondHelper::useCleanPrice()
method, and the non-staticCalendar::holidayList
method.
Thanks go also to Francis Duffy, Kevin Kirchhoff, Magnus Mencke and Klaus Spanderen for smaller fixes, enhancements and bug reports.