Skip to content

Commit ec7916a

Browse files
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.
2 parents 4b8d238 + 7bfe85c commit ec7916a

15 files changed

Lines changed: 107 additions & 18 deletions

File tree

.github/workflows/linux-full-tests.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ jobs:
9292
tag: jammy
9393
cc: clang
9494
cxx: clang++
95+
- name: "Clang 15"
96+
shortname: clang15
97+
tag: kinetic
98+
cc: clang
99+
cxx: clang++
95100
- name: "C++14 mode"
96101
shortname: c++14
97102
tag: rolling

.github/workflows/linux-nondefault.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ jobs:
9292
tag: jammy
9393
cc: clang
9494
cxx: clang++
95+
- name: "Clang 15"
96+
shortname: clang15
97+
tag: kinetic
98+
cc: clang
99+
cxx: clang++
95100
- name: "C++14 mode"
96101
shortname: c++14
97102
tag: rolling

.github/workflows/linux.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ jobs:
9595
cc: clang
9696
cxx: clang++
9797
tests: true
98+
- name: "Clang 15"
99+
shortname: clang15
100+
tag: kinetic
101+
cc: clang
102+
cxx: clang++
103+
tests: true
98104
- name: "C++14 mode"
99105
shortname: c++14
100106
tag: rolling

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ set(QUANTLIB_VERSION ${QUANTLIB_VERSION_MAJOR}.${QUANTLIB_VERSION_MINOR}.${QUANT
1111

1212
# Project Info
1313
set(PACKAGE_NAME "QuantLib")
14-
set(PACKAGE_VERSION "${QUANTLIB_VERSION}-rc")
15-
set(PACKAGE_VERSION_HEX "0x012800c0")
14+
set(PACKAGE_VERSION "${QUANTLIB_VERSION}")
15+
set(PACKAGE_VERSION_HEX "0x012800f0")
1616
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
1717
set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")
1818
set(PACKAGE_BUGREPORT "https://github.com/lballabio/QuantLib/issues/")

ChangeLog.txt

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,65 @@
1+
commit bb64ee1618dff745a3e9a5b3151cf8ed87144ffb
2+
Author: Luigi Ballabio <luigi.ballabio@gmail.com>
3+
Date: Mon, 12 Jul 2021 09:46:54 +0200
4+
5+
Set version to 1.28 final.
6+
7+
CMakeLists.txt | 4 ++--
8+
configure.ac | 2 +-
9+
ql/version.hpp | 4 ++--
10+
3 files changed, 5 insertions(+), 5 deletions(-)
11+
12+
commit d14da28dced9ee899331f603badfa93739a95405
13+
Author: Luigi Ballabio <luigi.ballabio@gmail.com>
14+
Date: Wed, 19 Oct 2022 22:51:51 +0200
15+
16+
Add clang 15 to test matrix
17+
18+
.github/workflows/linux-full-tests.yml | 5 +++++
19+
.github/workflows/linux-nondefault.yml | 5 +++++
20+
.github/workflows/linux.yml | 6 ++++++
21+
.../barrieroption/perturbativebarrieroptionengine.cpp | 2 +-
22+
ql/experimental/credit/defaultprobabilitykey.cpp | 4 ++++
23+
test-suite/tracing.cpp | 10 +++++++++-
24+
6 files changed, 30 insertions(+), 2 deletions(-)
25+
26+
commit 379f5a2850087b149efb6af9a5abf181fed3e6ac
27+
Merge: dbc7b5f65 d0add71fc
28+
Author: Luigi Ballabio <luigi.ballabio@gmail.com>
29+
Date: Thu, 20 Oct 2022 07:21:29 +0200
30+
31+
Convert argentina.cpp to utf-8 to appease clang-15 (#1500)
32+
33+
commit d0add71fcc2a63b2337417b1ad41ebaed1d1c164
34+
Author: Dirk Eddelbuettel <edd@debian.org>
35+
Date: Wed, 19 Oct 2022 14:35:51 -0500
36+
37+
Convert argentina.cpp to utf-8 to appease clang-15
38+
39+
ql/time/calendars/argentina.cpp | 2 +-
40+
1 file changed, 1 insertion(+), 1 deletion(-)
41+
42+
commit dbc7b5f65fdb38d1fe7b1e1ecb5b157c173b1e4b
43+
Author: Luigi Ballabio <luigi.ballabio@gmail.com>
44+
Date: Thu, 13 Oct 2022 18:24:07 +0200
45+
46+
Avoid warnings from deprecated headers
47+
48+
ql/experimental/Makefile.am | 2 +-
49+
ql/experimental/all.hpp | 1 -
50+
2 files changed, 1 insertion(+), 2 deletions(-)
51+
52+
commit 1f066933d52d0ee269e1ab907d2cab8a5a4ea07d
53+
Author: Luigi Ballabio <luigi.ballabio@gmail.com>
54+
Date: Tue, 11 Oct 2022 18:45:45 +0200
55+
56+
Update news and changelog
57+
58+
ChangeLog.txt | 72 +++++++++++++++++++++++++++++++++++++++++++++++++
59+
Docs/pages/history.docs | 5 ----
60+
News.md | 6 -----
61+
3 files changed, 72 insertions(+), 11 deletions(-)
62+
163
commit 90881f8891f98cc805e6331450a59787f30c1bbe
264
Merge: 92e6ff079 c6620359b
365
Author: Luigi Ballabio <luigi.ballabio@gmail.com>

Docs/pages/history.docs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@
103103
see above.
104104

105105
Thanks go also to Konstantin Novitsky, Peter Caspers, Klaus
106-
Spanderen and Fredrik Gerdin Börjesson for a number of smaller fixes,
107-
and to Jonathan Sweemer for various improvements to the automated CI
108-
builds.
106+
Spanderen, Fredrik Gerdin Börjesson and Dirk Eddelbuettel for a
107+
number of smaller fixes, and to Jonathan Sweemer for various
108+
improvements to the automated CI builds.
109109

110110
<strong>Release 1.27.1 - August 30th, 2022</strong>
111111

News.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Changes for QuantLib 1.28:
22
==========================
33

4-
QuantLib 1.28 includes 32 pull requests from several contributors.
4+
QuantLib 1.28 includes 33 pull requests from several contributors.
55

66
Some of the most notable changes are included below.
77
A detailed list of changes is available in ChangeLog.txt and at
@@ -122,8 +122,8 @@ Deprecated features
122122

123123

124124
**Thanks go also** to Konstantin Novitsky (@novitk), Peter Caspers
125-
(@pcaspers), Klaus Spanderen (@klausspanderen) and Fredrik Gerdin
126-
Börjesson (@gbfredrik) for a number of smaller fixes, and to Jonathan
127-
Sweemer (@sweemer) for various improvements to the automated CI
128-
builds.
125+
(@pcaspers), Klaus Spanderen (@klausspanderen), Fredrik Gerdin
126+
Börjesson (@gbfredrik) and Dirk Eddelbuettel (@eddelbuettel) for a
127+
number of smaller fixes, and to Jonathan Sweemer (@sweemer) for
128+
various improvements to the automated CI builds.
129129

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Process this file with autoconf to produce a configure script.
2-
AC_INIT([QuantLib], [1.28-rc],
2+
AC_INIT([QuantLib], [1.28],
33
[quantlib-dev@lists.sourceforge.net],
44
[QuantLib])
55
AC_PREREQ(2.62)

ql/experimental/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ all.hpp: Makefile.am
4747
echo "/* This file is automatically generated; do not edit. */" > ${srcdir}/$@
4848
echo "/* Add the files to be included into Makefile.am instead. */" >> ${srcdir}/$@
4949
echo >> ${srcdir}/$@
50-
subdirs='$(SUBDIRS)'; for i in $$subdirs; do \
50+
subdirs='$(filter-out amortizingbonds, $(SUBDIRS))'; for i in $$subdirs; do \
5151
echo "#include <${subdir}/$$i/all.hpp>" >> ${srcdir}/$@; \
5252
done
5353

ql/experimental/all.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* This file is automatically generated; do not edit. */
22
/* Add the files to be included into Makefile.am instead. */
33

4-
#include <ql/experimental/amortizingbonds/all.hpp>
54
#include <ql/experimental/asian/all.hpp>
65
#include <ql/experimental/averageois/all.hpp>
76
#include <ql/experimental/barrieroption/all.hpp>

0 commit comments

Comments
 (0)