Skip to content

Tags: geetek/QuantLib

Tags

QuantLib-v1.23

Toggle QuantLib-v1.23's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.23:

==========================

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>.

Portability
-----------

- On Mac OS, the `-std=c++11` flag is now added automatically when
  needed.  This applies to both `configure` and `cmake` (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` and `InterestRateIndex` classes are now
  visualized more clearly in the Visual Studio debugger (thanks to
  Francois Botha).

Cashflows
---------

- 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).

Currencies
----------

- Added custom constructor that allows to create bespoke currencies
  not already included in the library (thanks to Marcin Rybacki).

Date/time
---------

- 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).

Indexes
-------

- Added ESTR index (thanks to Magnus Mencke).

Instruments
-----------

- Added zero-coupon swap (thanks to Marcin Rybacki).

- The `Type` enumeration defined in several swap classes was moved to
  their base `Swap` class.

- Fixed sign of theta in experimental Kirk engine for spread options
  (thanks to Xu Ruilong for the heads-up).

Processes
---------

- Improved discretization of Cox-Ingersoll-Ross process to avoid
  occasional divergence (thanks to Magnus Mencke).

Deprecated features
-------------------

- 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 (now `CalibrationHelper`), some
  overloads of the `CalibratedModel::calibrate` and
  `CalibratedModel::value` methods, the constructors of
  `PiecewiseYieldCurve` and `PiecewiseDefaultCurve` taking an
  `accuracy` parameter, the constructors of `BondHelper`,
  `FixedRateBondHelper` and `CPIBondHelper` taking a boolean
  `useCleanPrice` parameter, the `BondHelper::useCleanPrice()` method,
  and the non-static `Calendar::holidayList` method.

Thanks go also to Francis Duffy, Kevin Kirchhoff, Magnus Mencke and
Klaus Spanderen for smaller fixes, enhancements and bug reports.

QuantLib-v1.22

Toggle QuantLib-v1.22's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.22:

==========================

QuantLib 1.22 includes 54 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/18?closed=1>.

Portability
-----------

- As previously announced, this release drops support for Visual
  C++ 2012.  VC++ 2013 or later is now required.

- The `Date` and `Array` classes are now visualized more clearly in
  the Visual Studio debugger (thanks to Francois Botha).

Language standard
-----------------

- QuantLib now uses the C++11 standard and no longer compiles in C++03
  mode.  As before, it can be compiled with later versions of the
  standard.  For details on the C++11 features used, see the pull
  requests marked "C++11 modernization" at the above link; for
  information on possible problems, see
  <https://www.implementingquantlib.com/2021/02/leaving-03-for-real.html>.

Cashflows
---------

- Revised and tested the `SubPeriodCoupon` class (thanks to Marcin
  Rybacki).  The class was moved out of the `ql/experimental` folder
  and its interface can now be considered stable.

- Add simple averaging to overnight-index coupons in addition to the
  existing compound averaging (thanks to Marcin Rybacki).

- Fixed accrual calculation for inflation coupon when trading
  ex-coupon (thanks to GitHub user `bachhani`).

Currencies
----------

- Added the Nigerian Naira (thanks to Bryte Morio).

Date/time
---------

- Fixed actual/actual (ISMA) day counter calculation for long/short
  final periods (thanks to Francois Botha).

- Updated a couple of changed rules for New Zealand calendar (thanks
  to Paul Giltinan).

Indexes
-------

- Added `hasHistoricalFixing` inspector to `Index` class to check if
  the fixing for a given past date is available (thanks to Ralf
  Konrad).

Instruments
-----------

- Added new-style finite-difference engine for shout options (thanks
  to Klaus Spanderen).  In the case of dividend shout options, an
  escrowed dividend model is used.

- Revised the `OvernightIndexFutures` class.  The class was moved out
  of the `ql/experimental` folder and its interface can now be
  considered stable.

- Added an overloaded constructor for Asian options that takes all
  past fixings and thus allows to reprice them correctly when the
  evaluation date changes (thanks to Jack Gillett).

- Added support for seasoned geometric Asian options to the Heston
  engine (thanks to Jack Gillett).

Patterns
--------

- Faster implementation of the `Observable` class in the thread-safe
  case (thanks to Klaus Spanderen).

Term structures
---------------

- Added experimental rate helper for constant-notional cross-currency
  basis swaps (thanks to Marcin Rybacki).

- Added volatility type and displacements to year-on-year inflation
  volatility surfaces (thanks to Peter Caspers).

Deprecated features
-------------------

- Removed features deprecated in version 1.17: the `Callability::Type`
  typedef (now `Bond::Price`), the `FdmOrnsteinUhlenbackOp` typedef
  (now correctly spelled as `FdmOrnsteinUhlenbeckOp`, and a number of
  old-style finite-difference engines (`FDAmericanEngine`,
  `FDBermudanEngine`, `FDDividendAmericanEngine` and its variants,
  `FDDividendEuropeanEngine` and its variants, and `FDEuropeanEngine`)
  all replaced by the `FdBlackScholesVanillaEngine` class.

- Deprecated the old-style finite difference engines for shout
  options; they are now replaced by the new `FDDividendShoutEngine`
  class.

- Deprecated a few unused parts of the old-style finite-differences
  framework: the `AmericanCondition` class, the `OneFactorOperator`
  typedef, and the `FDAmericanCondition` class.

Test suite
----------

- Reduced the run time for the longest-running test cases.

Thanks go also to Francis Duffy and Cay Oest for smaller fixes,
enhancements and bug reports.

QuantLib-v1.21

Toggle QuantLib-v1.21's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.21:

==========================

QuantLib 1.21 includes 24 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/17?closed=1>.

Portability
-----------

- As previously announced, this is the last release to support Visual
  C++ 2012.  Starting from next release, VC++ 2013 or later will be
  required in order to enable use of C++11 features.

Instruments
-----------

- Improve date generation for CDS schedules under the post-big-bang
  rules (thanks to Francis Duffy).

- Amortizing fixed-rate bonds can now use a generic `InterestRate`
  object (thanks to Piter Dias).

- Added Monte Carlo pricer for discrete-average arithmetic Asian
  options under the Heston model (thanks to Jack Gillett).

- Added analytic and Monte Carlo pricers for discrete-average
  geometric Asian options under the Heston model (thanks to Jack
  Gillett).  Together, they can also be used as a control variate in
  Monte Carlo models for arithmetic Asian options.

- Added analytic pricer for continuous-average geometric Asian
  options under the Heston model (thanks to Jack Gillett).

- Added analytic pricer for forward options under the Heston model
  (thanks to Jack Gillett).

- Added Monte Carlo pricers for forward options under the
  Black-Scholes and the Heston models (thanks to Jack Gillett).

Term structures
---------------

- Added Dutch regulatory term structure, a.k.a. ultimate forward term
  structure (thanks to Marcin Rybacki).

- Generalized exponential spline fitting to an arbitrary number of
  parameters; it is now also possible to fix kappa (thanks to David
  Sansom).

- Fixed averaging period for 1-month SOFR futures rate helper (thanks
  to Eisuke Tani).

Date/time
---------

- Fixed a bug and added 2017 holidays in Thailand calendar (thanks to
  GitHub user `phil-zxx` for the heads-up).

- Updated Chinese calendar for 2021 (thanks to Cheng Li).

- Updated Japanese calendar for 2021 (thanks to Eisuke Tani).

Thanks go also to Francois Botha, Peter Caspers, Ralf Konrad, Matthias
Siemering, Klaus Spanderen and Joseph Wang for smaller fixes,
enhancements and bug reports.

QuantLib-v1.20

Toggle QuantLib-v1.20's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.20:

==========================

QuantLib 1.20 includes 24 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/16?closed=1>.

Portability
-----------

- Support for Visual C++ 2012 is being deprecated.  It will be dropped
  after the next release in order to enable use of C++11 features.

- It is now possible to opt into using `std::tuple` instead of
  `boost::tuple` when the compiler allows it.  The default is still to
  use the Boost implementation.  The feature can be enabled by
  uncommenting the `QL_USE_STD_TUPLE` macro in `ql/userconfig.hpp` on
  Visual C++ or by passing the `--enable-std-tuple` switch to
  `./configure` on other systems.  The `--enable-std-tuple` switch is
  also implied by `--enable-std-classes`.  (Thanks to Joseph Wang.)

Instruments
-----------

- Added mixing-factor parameter to Heston finite-differences barrier,
  rebate and double-barrier engines (thanks to Jack Gillett).

- Added a few additional results to Black swaption engine and to
  analytic European option engine (thanks to Peter Caspers and Marcin
  Rybacki).

- Improved calculation of spot date for vanilla swap around holidays
  (thanks to Paul Giltinan).

- Added ex-coupon feature to amortizing bonds, callable bonds and
  convertible bonds.

- Added optional first-coupon day counter to fixed-rate bonds (thanks
  to Jacob Lee-Howes).

Math
----

- Added convenience classes `LogCubic` and `LogMixedLinearCubic`
  hiding a few default parameters (thanks to Andrea Maffezzoli).

Models
------

- Added control variate based on asymptotic expansion for the Heston
  model (thanks to Klaus Spanderen).

Date/time
---------

- Added missing Hong Kong holiday (thanks to GitHub user `CarrieMY`).

- Added a couple of one-off closing days to the Romanian calendar.

- Added a one-off holiday to South Korean calendar (thanks to GitHub
  user `fayce66`).

- Added a missing holiday to Turkish calendar (thanks to Berat
  Postalcioglu).

Documentation
-------------

- Added basic documentation to optimization methods (thanks to GitHub
  user `martinbrose`).

Deprecated features
-------------------

- Features deprecate in version 1.16 were removed: a constructor of
  the `FdmOrnsteinUhlenbeckOp` class and a constructor of the
  `SwaptionVolatilityMatrix` class.

QuantLib-v1.19

Toggle QuantLib-v1.19's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.19:

==========================

QuantLib 1.19 includes 40 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/15?closed=1>.

Portability
-----------

- Support for Visual C++ 2012 is being deprecated.  It will be dropped
  around the end of 2020 or the beginning of 2021 in order to enable
  use of C++11 features.

- Avoided use in Makefiles of functions only available to GNU Make
  (thanks to GitHub user `UnitedMarsupials` for the heads-up).

Build
-----

- Automated builds on Travis and GitHub Actions were extended.  We now
  have a build for Mac OS X, as well as a few builds that run a number
  of checks on the code (including clang-tidy) and automatically open
  pull requests with fixes.

Term structures
---------------

- Added options for iterative bootstrap to widen the search domain or
  to keep the best result upon failure (thanks to Francis Duffy).

- Added flat-extrapolation option to fitted bond curves (thanks to
  Peter Caspers).

Instruments
-----------

- Added finite-difference pricing engine for equity options under the
  Cox-Ingersoll-Ross process (thanks to Lew Wei Hao).

- Added Heston engine based on exponentially-fitted Laguerre
  quadrature rule (thanks to Klaus Spanderen).

- Added Monte Carlo pricing engines for lookback options (thanks to
  Lew Wei Hao).

- Added Monte Carlo pricing engine for double-barrier options (thanks
  to Lew Wei Hao).

- Added analytic pricing engine for equity options under the
  Vasicek model (thanks to Lew Wei Hao).

- The `Bond::yield` method can now specify a guess and whether the
  passed price is clean or dirty (thanks to Francois Botha).

Models
------

- Improved grid scaling for FDM Heston SLV calibration, and fixed
  drift and diffusion for Heston SLV process (thanks to Klaus
  Spanderen and Peter Caspers).

- Added mixing factor to Heston SLV process (thanks to Lew Wei Hao).

Math
----

- Improved nodes/weights for the exponentially fitted Laguerre
  quadrature rule and added sine and cosine quadratures (thanks to
  Klaus Spanderen).

Date/time
---------

- Improved performance of the Calendar class (thanks to Leonardo Arcari).

- Updated holidays for Indian and Russian calendars (thanks to Alexey
  Indiryakov).

- Added missing All Souls Day holiday to Mexican calendar (thanks to
  GitHub user `phil-zxx` for the heads-up).

- Restored New Year's Eve holiday to Eurex calendar (thanks to Joshua
  Engelman).

Deprecated features
-------------------

- Features deprecate in version 1.15 were removed: constructors of
  inflation swap helpers, inflation-based pricing engines and
  inflation coupon pricers that didn't take a nominal term structure.

- The constructor of `BMAIndex` taking a calendar was deprecated.

- The constructors of several interest-rate term structures taking
  jumps without a reference date were deprecated.

- The `CurveDependentStepCondition` class and related typedefs were
  deprecated.

- The constructor of `BlackCalibrationHelper` taking an interest-rate
  structure was deprecated.

- The constructors of several inflation curves taking a nominal curve
  were deprecated.  The nominal curve should now be passed to the used
  coupon pricers.

QuantLib-v1.18

Toggle QuantLib-v1.18's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.18:

==========================

QuantLib 1.18 includes 34 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/14?closed=1>.

Portability
-----------

- As announced in the past release, support of Visual C++ 2010 is
  dropped.  Also, we'll probably deprecate Visual C++ 2012 in the next
  release in order to drop it around the end of 2020.

Build
-----

- Cmake now installs headers with the correct folder hierarchy (thanks
  to Cheng Li).

- The `--enable-unity-build` flag passed to configure now also causes
  the test suite to be built as a single source file.

- The Visual Studio projects now allow enabling unity builds as
  described at
  <https://devblogs.microsoft.com/cppblog/support-for-unity-jumbo-files-in-visual-studio-2017-15-8-experimental/>

Term structures
---------------

- A new `GlobalBootstrap` class can now be used with
  `PiecewiseYieldCurve` and other bootstrapped curves (thanks to Peter
  Caspers).  It allows to produce curves close to Bloomberg's.

- The experimental `SofrFutureRateHelper` class and its parent
  `OvernightIndexFutureRateHelper` can now choose to use either
  compounding or averaging, in order to accommodate different
  conventions for 1M and 3M SOFR futures (thanks to GitHub user
  `tani3010`).

- The `FraRateHelper` class has new constructors that take IMM start /
  end offsets (thanks to Peter Caspers).

- It is now possible to pass explicit minimum and maximum values to
  the `IterativeBootstrap` class.  The accuracy parameter was also
  moved to the same class; passing it to the curve constructor is now
  deprecated.

Instruments
-----------

- It is now possible to build fixed-rate bonds with an arbitrary
  schedule, even without a regular tenor (thanks to Steven Van Haren).

Models
------

- It is now possible to use normal volatilities to calibrate a
  short-rate model over caps.

Date/time
---------

- The Austrian calendar was added (thanks to Benjamin Schwendinger).

- The German calendar incorrectly listed December 31st as a holiday;
  this is now fixed (thanks to Prasad Somwanshi).

- Chinese holidays were updated for 2020 and the coronavirus event
  (thanks to Cheng Li).

- South Korea holidays were updated for 2016-2020 (thanks to GitHub
  user `fayce66`).

- In the calendar class, `holidayList` is now an instance method; the
  static version is deprecated.  The `businessDayList` method was also
  added.  (Thanks to Piotr Siejda.)

- A bug in the 30/360 German day counter was fixed (thanks to Kobe
  Young for the heads-up).

Optimizers
----------

- The differential evolution optimizer was updated (thanks to Peter
  Caspers).

Currencies
----------

- Added Kazakstani Tenge to currencies (thanks to Jonathan Barber).

Deprecated features
-------------------

- Features deprecate in version 1.14 were removed: one of the
  constructors of the `BSMOperator` class, the whole `OperatorFactory`
  class, and the typedef `CalibrationHelper` which was used to alias
  the `BlackCalibrationHelper` class.

- The `CalibrationHelperBase` class is now called
  `CalibrationHelper`. The old name remains as a typedef but is
  deprecated.

- The overload of `CalibratedModel::calibrate` and
  `CalibratedModel::value` taking a vector of
  `BlackCalibrationHelper`s are deprecated in favor of the ones taking
  a vector of `CalibrationHelper`s.

- The static method `Calendar::holidayList` is deprecated in favor of
  the instance method by the same name.

- The constructors of `PiecewiseDefaultCurve` and
  `PiecewiseYieldCurve` taking an accuracy parameter are deprecated in
  favor of passing the parameter to an instance of the bootstrap
  class.

- The constructors of `BondHelper` and derived classes taking a
  boolean flag to choose between clean and dirty price are deprecated
  in favor of the ones taking a `Bond::Price::Type` argument.  The
  `useCleanPrice` method is also deprecated in favor of `priceType`.

Thanks go also to Ralf Konrad, Klaus Spanderen, Carlos Fidel Selva
Ochoa, F. Eugene Aumson and Francois Botha for smaller fixes,
enhancements, and bug reports.

QuantLib-v1.17

Toggle QuantLib-v1.17's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.17:

==========================

QuantLib 1.17 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/13?closed=1>.

Portability
-----------

- As of this release, support of Visual C++ 2010 is deprecated; it
  will be dropped in next release.  Also, we'll probably deprecate
  Visual C++ 2012 in one of the next few releases in order to drop it
  around the end of 2020.

Configuration
-------------

- A new function `compiledBoostVersion()` is available, (thanks to
  Andrew Smith).  It returns the version of Boost used to compile the
  library, as reported by the `BOOST_VERSION` macro.  This can help
  avoid linking the library with user code compiled with a different
  Boost version (which can result in erratic behavior).

- It is now possible to specify at run time whether to use indexed
  coupons (thanks to Ralf Konrad).  The compile-time configuration is
  still used as a default, but it is also possible to call either of
  the static methods `IborCoupon::createAtParCoupons` or
  `IborCoupon::createIndexedCoupons` to specify your preference.  For
  the time being, the methods above must necessarily be called before
  creating any instance of `IborCoupon` or of its derived classes.

Build
-----

- As of this version, the names of the binaries produced by the
  included Visual C++ solution no longer contain the toolset version
  (e.g., v142).

Instruments
-----------

- Added ex-coupon functionality to floating-rate bonds (thanks to
  Steven Van Haren).

- The inner structure `Callability::Price` was moved to the class
  `Bond` and can now be used to specify what kind of price was passed
  to the `BondFunctions::yield` method (thanks to Francois Botha).

- It is now possible to use a par-coupon approximation for FRAs like
  the one used in Ibor coupons (thanks to Peter Caspers).

Pricing engines
---------------

- Added escrowed dividend model to the new-style FD engine for
  `DividendVanillaOption` (thanks to Klaus Spanderen).

- Black cap/floor engine now also returns caplet deltas (thanks to
  Wojciech Slusarski).

Term structures
---------------

- OIS rate helpers can now choose whether to use as a pillar for the
  bootstrap either their maturity date or the end date of the last
  underlying fixing.  This provides an alternative if the bootstrap
  should fail.  (Thanks to Drew Saunders for the heads-up.)

- Instances of the `FittedBondDiscountCurve` class now behave as
  simple evaluators (that is, they use the given paramters without
  performing root-solving) when the `maxIterations` parameter is set
  to 0.  (Thanks to Nick Firoozye for the heads-up.)

Date/time
---------

- Added a few special closing days to the US government bond calendar
  (thanks to Mike DelMedico).

- Fixed an incorrect 2019 holiday in Chinese calendar (thanks to Cheng Li).

- Added missing holiday to Swedish calendar (thanks to GitHub users
  `periculus` and `tonyzhipengzhou`).

Deprecated features
-------------------

- The classes `FDEuropeanEngine`, `FDAmericanEngine`,
  `FDBermudanEngine`, `FDDividendEuropeanEngine`,
  `FDDividendEuropeanEngineShiftScale`, `FDDividendAmericanEngine`,
  `FDDividendAmericanEngineShiftScale` are now deprecated.  They are
  superseded by `FdBlackScholesVanillaEngine`.

Thanks go also to Joel King, Kai Striega, Francis Duffy, Tom Anderson
and GitHub user `lab4quant` for smaller fixes, enhancements, and bug
reports.

QuantLib-v1.16

Toggle QuantLib-v1.16's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
lballabio Luigi Ballabio
Changes for QuantLib 1.16:

==========================

QuantLib 1.16 includes 34 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/12?closed=1>.

Portability
-----------

- Added support for Visual Studio 2019 (thanks to Paul Giltinan).

Configuration
-------------

- As announced in past release, the compile-time switch to force
  non-negative rates was removed.

Pricing engines
---------------

- Added constant elasticity of variance (CEV) pricing engines for
  vanilla options.  Analytic, FD and SABR engines are available
  (thanks to Klaus Spanderen).

- Added quanto pricing functionality to a couple of FD engines for
  DividendVanillaOption (thanks to Klaus Spanderen).

Cash flows
----------

- Digital coupons can now optionally return the value of the naked
  option (thanks to Peter Caspers).

Date/time
---------

- Updated Taiwan holidays for 2019 (thanks to Hank Liu).

- Added two newly announced holidays to Chinese calendar (thanks to
  Cheng Li).

- Updated Japan calendar (thanks to Eisuke Tani).

- Fixed New Year's day adjustment for Canadian calendar (thanks to Roy
  Zywina).

- Added a couple of exceptions for UK bank holidays (thanks to GitHub
  user Vililikku for the heads-up).

- Added French calendar (thanks to GitHub user NJeanray).

- Added public methods to expose a calendar's added and removed
  holidays (thanks to Francois Botha).

- Allow the stub date of a schedule to equal the maturity.

Deprecated features
-------------------

- Deprecated a constructor of the SwaptionVolatilityMatrix class that
  didn't take a calendar.

- Removed typedefs GammaDistribution, ChiSquareDistribution,
  NonCentralChiSquareDistribution and
  InverseNonCentralChiSquareDistribution, deprecated in version 1.12.
  Use CumulativeGammaDistribution, CumulativeChiSquareDistribution,
  NonCentralCumulativeChiSquareDistribution and
  InverseNonCentralCumulativeChiSquareDistribution instead.

- Removed Actual365NoLeap class, deprecated in version 1.11.  It was
  folded into Actual365Fixed.

Term structures
---------------

- Take payment days into account when calculating the nodes of a
  bootstrapped curve based on overnight swaps.

QuantLib-v1.15

Toggle QuantLib-v1.15's commit message
Changes for QuantLib 1.15:

==========================

QuantLib 1.15 includes 32 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/11?closed=1>.

Portability
-----------

- This release drops support for Boost version 1.43 to 1.47; the
  minimum required version is now Boost 1.48, released in 2011.

- Added a `.clang-format` file to the repository.  The format is not
  going to be enforced, but the style file is provided as a
  convenience in case you want to format new code according to the
  conventions of the library.

- `boost::function`, `boost::bind` and a few related classes and
  functions were imported into the new namespace `QuantLib::ext`.
  This allows them to be conditionally replaced with their `std::`
  versions (see the "opt-in features" section below).  The default is
  still to use the Boost implementation.  Client code using the
  `boost` namespace explicitly doesn't need to be updated.

Models
------

- Added an experimental volatility basis model for caplet and swaptions
  (thanks to Sebastian Schlenkrich).

Pricing engines
---------------

- It is now possible to specify polynomial order and type when
  creating a `MCAmericanBasketEngine` instance (thanks to Klaus
  Spanderen).

Term structures
---------------

- Inflation curves used to store the nominal curve used during their
  construction.  This is still supported for backward compatibility,
  but is deprecated.  You should instead pass the nominal curve
  explicitly to objects that need one (e.g., inflation helpers,
  engines, or cashflow pricers).

- Added experimental helpers to bootstrap an interest-rate curve on
  SOFR futures (thanks to Roy Zywina).

Indexes
-------

- It is now possible to choose the fixing calendar for the BMA index
  (thanks to Jan Ladislav Dussek).

Cash flows
----------

- Fixed broken observability in CMS-spread coupon pricer (thanks to
  Peter Caspers).

Date/time
---------

- Fix implementation of Actual/Actual (ISMA) day counter in case a
  schedule is provided (thanks to Philip Stephens).

- Fix implementation of `Calendar::businessDaysBetween` method when
  the initial and final date are the same (thanks to Weston Steimel).

- Added day of mourning for G.H.W. Bush to the list of United States
  holidays (thanks to Joshua Engelman).

- Updated list of Chinese holidays for 2019 (thanks to Cheng Li).

- Added basic unit tests for the `TimeGrid` class (thanks to Kai
  Striega).

Math
----

- Prevent solver failure in Richardson extrapolation (thanks to Klaus
  Spanderen).

Examples
--------

- Added multi-curve bootstrapping example (thanks to Jose
  Garcia). This examples supersedes the old swap-valuation example,
  that was therefore removed.

Deprecated features
-------------------

- Up to this release, it has been possible to force interest rates to
  be non-negative by commenting the `QL_NEGATIVE_RATES` macro in
  `ql/userconfig.hpp` on Visual C++ or by passing the
  `--disable-negative-rates` switch to `./configure` on other systems.
  This possibility will no longer be supported in future releases.

New opt-in features
-------------------

- It is now possible to use `std::function`, `std::bind` and their
  related classes instead of `boost::function` and `boost::bind`.  The
  feature can be enabled by uncommenting the `QL_USE_STD_FUNCTION`
  macro in `ql/userconfig.hpp` on Visual C++ or by passing the
  `--enable-std-function` switch to `./configure` on other systems.
  This requires using at least the C++11 standard during compilation.

- A new `./configure` switch, `--enable-std-classes`, was added as a
  shortcut for `--enable-std-pointers` `--enable-std-unique-ptr`
  `--enable-std-function`.

QuantLib-v1.14

Toggle QuantLib-v1.14's commit message
Changes for QuantLib 1.14:

==========================

QuantLib 1.14 includes 40 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/10?closed=1>.

Portability
-----------

- In April 2018, Microsoft ended its support for Microsoft Visual C++
  2008. As previously announced, this release drops support for it.
- Fixed generation of RPM from QuantLib.spec (thanks to Simon Rees).
- Avoided uses of some features removed in C++17 so that the library
  can be compiled under the latest standard if needed.
- `boost::shared_ptr` and a few related classes and functions were
  imported into the new namespace `QuantLib::ext`.  This allows them to
  be conditionally replaced with their `std::` versions (see the "opt-in
  features" section below).  The default is still to use the boost
  implementation.  Client code using the boost namespace explicitly
  doesn't need to be updated.
- Fixed build and tests on FreeBSD-11 (thanks to Klaus Spanderen and
  to Mikhail Teterin for the heads-up).
- Fixed tests with the `-ffast-math` compilation flag enabled (thanks to
  Klaus Spanderen and to Jon Davies for the heads-up).

Instruments and pricing engines
-------------------------------

- Add different settlement methods for swaptions (thanks to Peter
  Caspers).
- Take into account distinct day-count conventions for different
  curves in the analytic barrier-option engine (thanks to GitHub user
  cosplay-raven).
- Extract the correct constant coefficients to use in
  finite-difference vanilla-option engine when using a time-dependent
  Black-Scholes process (thanks to GitHub user Grant6899 for the
  analysis).

Cash flows and interest rates
-----------------------------

- Added Bibor and THBFIX indices (thanks to Matthias Lungwitz).

Models
------

- Added a hook for using a custom smile model in the Markov functional
  model (thanks to Peter Caspers).
- Added a base class `CalibrationHelperBase` to the hierarchy of
  calibration helpers in order to allow for helpers not using the
  Black model.
- Return underlying dynamics from Black-Karasinski model (thanks to
  Fanis Antoniou).

Finite differences
------------------

- Added higher-order spatial operators (thanks to Klaus Spanderen).
- Added TR-BDF2 finite-difference scheme (thanks to Klaus Spanderen).

Term structures
---------------

- Allow swap helpers to specify end-of-month convention (thanks to
  Matthias Lungwitz).

Date/time
---------

- Prevented division by zero in Actual/365 Canadian day counter
  (thanks to Ioannis Rigopoulos for the heads-up).
- Added Children's Day to the list of Romanian holidays (thanks to
  Matthias Lungwitz).
- Added new calendar for Thailand (thanks to Matthias Lungwitz).
- Added 30/360 German day counter (thanks to Peter Caspers and Alexey
  Indiryakov).

Math
----

- Fixed bug in convex-monotone interpolation (thanks to Peter Caspers
  for the fix and to Tom Anderson for finding the bug).

New opt-in features
-------------------

- It is now possible to use `std::shared_ptr` and its related classes
  instead of `boost::shared_ptr`.  Note that, unlike its boost
  counterpart, `std::shared_ptr` doesn't check for null pointers before
  access; this can lead to crashes.  The feature can be enabled by
  uncommenting the `QL_USE_STD_SHARED_PTR` macro in `ql/userconfig.hpp` on
  Visual C++ or by passing the `--enable-std-pointers` to `./configure` on
  other systems.  This requires using at least the C++11 standard
  during compilation.
- It is now possible to use `std::unique_ptr` instead of `std::auto_ptr`;
  this makes it possible to compile the library in strict C++17 mode
  and to avoid deprecation warnings in C++11 and C++14 mode.  The
  feature can be enabled by uncommenting the `QL_USE_STD_UNIQUE_PTR`
  macro in `ql/userconfig.hpp` on Visual C++ or by passing the
  `--enable-std-unique-ptr` to `./configure` on other systems.

Thanks go also to Sam Danbury, Barry Devlin, Roland Kapl, and GitHub
user todatamining for smaller fixes, enhancements, and bug reports.