
Changes for QuantLib 1.10:
==========================

QuantLib 1.10 includes 58 pull requests and fixed issues 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/5?closed=1>.


PORTABILITY

- Added support for the recently released Visual Studio 2017.

- Unified Visual Studio solution file.  The provided QuantLib.sln file
  works for all versions from 2010 to 2017.

- Added support for the recently released Boost 1.64.0 (thanks to
  Klaus Spanderen).

- Converted non-ASCII characters in source files to UTF-8; this should
  make them work with most editors (thanks to Krzysztof Woś and Jose
  Aparicio).

- Fixed some compilation issues with older versions of the Sun CC
  compiler and with the gcc 3.4 series.  The offending code has simply
  been disabled; when using those compilers, is also suggested to
  downgrade Boost to an older version since more recent ones can give
  problems.  Boost 1.54.0 was reported to work.  It is likely that no
  further support will be given to these compilers in future releases.

INSTRUMENTS AND PRICING ENGINES

- Added Heston pricing engine based on Fourier-Cosine series
  expansion (thanks to Klaus Spanderen).

- Added cash annuity model in Black swaption engine (thanks to Peter
  Caspers, Werner Kuerzinger and Paul Giltinan).

- Add an optional exogenous discount curve to analytic Black European
  option engine (thanks to Paul Giltinan).

MODELS

- Added collocating local-volatility model (thanks to Klaus Spanderen).

- Optionally disable Feller constraint in Cox-Ingersoll-Ross model
  (thanks to Oleksandr Khomenko).

INTEREST RATES

- Allow using an arbitrary solver to calculate yield (thanks to Daniel
  Hrabovcak).

- Update handling of July 4th for US LIBOR fixings (thanks to Oleg
  Kulkov for the heads-up).

- Added CompoundingThenSimple convention (thanks to Martin Ross).

INFLATION

- Use the lagged reference period to interpolate inflation fixings
  (thanks to Francois Botha).

VOLATILITY

- Reduce the memory footprint of OptionletStripper1 (thanks to
  Matthias Lungwitz)

DATE/TIME

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

- Added CDS2015 date-generation rule with the correct semiannual
  frequency (thanks to Guillaume Horel).

- The Iceland calendar used to incorrectly adjust New Year's Day to
  the next Monday when falling on a holiday. That's now fixed (thanks
  to Stefan Gunnsteinsson for the heads-up).

- Fixed bug that prevented correct calculation of an ECB date on the
  first day of a month (thanks to Nicholas Bertocchi).

- Fixed bug in Schedule that ignored end-of-month convention when
  calculating reference dates for irregular coupons (thanks to Ryan
  Taylor).

- Allow passing a schedule to Actual/Actual day counter for correct
  calculation of reference dates (thanks to Ryan Taylor).

MATH

- Added harmonic spline interpolation (thanks to Nicholas Bertocchi).

EXAMPLES

- Added examples for global optimizers (thanks to Andres Hernandez).

DEPRECATED FEATURES

- Removed the SwaptionHelper constructors not taking an explicit
  volatility type (deprecated in version 1.8).

- Removed the SwaptionVolatilityMatrix constructors not taking an
  explicit volatility type (deprecated in version 1.8).

- Removed the BlackSwaptionEngine constructor overriding the
  displacement from the given volatility structure (deprecated in
  version 1.8).

- Removed the FlatSmileSection and InterpolatedSmileSection
  constructors not taking an explicit volatility type (deprecated in
  version 1.8).

- Removed the RiskyAssetSwapOption constructor taking a side
  (deprecated in version 1.8).

POSSIBLY BREAKING CHANGES

- The constructors of a few Libor-like indexes were made
  explicit. This means that code such as the following, which used to
  compile, will now break.  That's probably a good thing.

    Handle<YieldTermStructure> forecast_curve;
    Euribor6M index = forecast_curve;

