Commit ec7916a
committed
Merge tag 'QuantLib-v1.28' into QPR-11285
Changes for QuantLib 1.28:
==========================
QuantLib 1.28 includes 33 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/24?closed=1>.
Portability
-----------
- **New language standard:** as announced in the notes for the
previous release, this release started using some C++14 syntax.
This should be supported by most compilers released in the past
several years.
- **End of support:** as announced in the notes for the previous
release, this release is the last to manage thread-local singletons
via a user-provided `sessionId` function. Future releases will use
the built-in language support for thread-local variables.
- **Future end of support:** after the next two or three releases,
using `std::tuple`, `std::function` and `std::bind` (instead of
their `boost` counterparts) will become the default. If you're
using `ext::tuple` etc. in your code (which is suggested), this
should be a transparent change. If not, you'll still be able to
choose the `boost` versions via a configure switch for a while.
Date/time
---------
- Added Act/366 and Act/365.25 day counters; thanks to Ignacio Anguita
(@IgnacioAnguita).
- Added H.M. the Queen's funeral to the UK calendars; thanks to Tomass
Wilson (@Wilsontomass).
Instruments
-----------
- Amortizing bonds were moved out of the experimental folder. Also, a
couple of utility functions were provided to calculate amortization
schedules and notionals.
Pricing engines
---------------
- Fixed results from `COSHestonEngine` in the case of an option with
short time to expiration and deep ITM or deep OTM strike prices;
thanks to Ignacio Anguita (@IgnacioAnguita).
- The ISDA engine for CDS could calculate the fair upfront with the
wrong sign; this is now fixed, thanks to Gualtiero Chiaia
(@gchiaia).
Term structures
---------------
- The constructor for `OISRateHelper` now allows to specify the
`endOfMonth` parameter; thanks to Guillaume Horel (@thrasibule).
Finite differences
------------------
- Fixed computation of cds boundaries in `LocalVolRNDCalculator`;
thanks to @mdotlic.
Experimental folder
-------------------
The `ql/experimental` folder contains code whose interface is not
fully stable, but is released in order to get user
feedback. Experimental classes make no guarantees of backward
compatibility; their interfaces might change in future releases.
- **Breaking change**: the constructor of the
`CPICapFloorTermPriceSurface` class now also takes an explicit
interpolation type.
- **Possibly breaking**: the protected constructor for `CallableBond`
changes its arguments. If you inherited from this class, you'll
need to update your code. If you're using the existing derived bond
classes, the change will be transparent.
- Pricing engines for callable bonds worked incorrectly when the face
amount was not 100. This is now fixed.
- The `impliedVolatility` method for callable bonds was taking a
target NPV, not a price. This implementation is now deprecated, and
a new overload was added taking a price in base 100.
Deprecated features
-------------------
- **Removed** features deprecated in version 1.23:
- the constructors of `ZeroCouponInflationSwap` and
`ZeroCouponInflationSwapHelper` missing an explicit CPI
interpolation type;
- the constructors of `ActualActual` and `Thirty360` missing an
explicit choice of convention, and the constructor of `Thirty360`
passing an `isLastPeriod` boolean flag.
- Deprecated the constructors of `FixedRateBond` taking an
`InterestRate` instance or not taking a `Schedule` instance.
- Deprecated the constructor of `FloatingRateBond` not taking a
`Schedule` instance.
- Deprecated the constructors of `AmortizingFixedRateBond` taking a
sinking frequency or a vector of `InterestRate` instances.
- Deprecated the constructor of `CPICapFloor` taking a `Handle` to an
inflation index, and its `inflationIndex` method returning a `Handle`.
New versions of both were added using `shared_ptr` instead.
- Deprecated one of the constructors of `SabrSmileSection`; a new
version was added also taking an optional reference date.
- Deprecated the old `impliedVolatility` method for callable bonds;
see above.
**Thanks go also** to Konstantin Novitsky (@novitk), Peter Caspers
(@pcaspers), Klaus Spanderen (@klausspanderen), Fredrik Gerdin
Börjesson (@gbfredrik) and Dirk Eddelbuettel (@eddelbuettel) for a
number of smaller fixes, and to Jonathan Sweemer (@sweemer) for
various improvements to the automated CI builds.15 files changed
Lines changed: 107 additions & 18 deletions
File tree
- .github/workflows
- Docs/pages
- ql
- experimental
- barrieroption
- credit
- time/calendars
- test-suite
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
95 | 100 | | |
96 | 101 | | |
97 | 102 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
95 | 100 | | |
96 | 101 | | |
97 | 102 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
98 | 104 | | |
99 | 105 | | |
100 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
| 14 | + | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
1 | 63 | | |
2 | 64 | | |
3 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
107 | | - | |
108 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
109 | 109 | | |
110 | 110 | | |
111 | 111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
129 | 129 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
| |||
0 commit comments