Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .github/workflows/quantlib-risks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,7 @@ jobs:
submodules: recursive
persist-credentials: false
- name: Build sdist
# no isolation until xad 2.2 is on PyPI
run: |
python3 -m venv /tmp/sdist-env
/tmp/sdist-env/bin/pip install build "scikit-build-core>=0.11"
/tmp/sdist-env/bin/python -m build --sdist --no-isolation --skip-dependency-check
run: pipx run build --sdist
- name: Check metadata
run: pipx run twine check --strict dist/*
- name: Upload sdist
Expand Down
37 changes: 30 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,39 @@ the underlying QuantLib-SWIG changelog.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.41.0] - Unreleased
## [1.44.0] - Unreleased

First release as QuantLibAAD.

- Renamed QuantLib-Risks -> QuantLibAAD: `pip install QuantLibAAD`, `import QuantLibAAD`
- `QuantLib-Risks` 1.41.0 is a deprecated shim (`shim/`) that requires `QuantLibAAD==1.41.*` and
- `QuantLib-Risks` 1.44.0 is a deprecated shim (`shim/`) that requires `QuantLibAAD==1.44.*` and
re-exports it as `QuantLib_Risks` with a `DeprecationWarning`
- Anyone pinned to `QuantLib-Risks==1.33.3` must also pin `xad<2`
- Matches QuantLib and QuantLib Python bindings version 1.41
- Builds against QuantLibAAD 1.41 (formerly QuantLib-Risks-Cpp) and the shared libxad of the installed xad 2.2 package (`xad>=2.2,<2.3`), which is not bundled
- Tapes are shared with xad through libxad, thread-local per Python thread
- Builds the unmodified QuantLib 1.41 release, no QuantLib patches
- Matches QuantLib and QuantLib Python bindings version 1.44, with C++ QuantLibAAD (formerly
QuantLib-Risks-Cpp)
- Removed from the Python API with QuantLib-SWIG 1.42 to 1.44, as in the C++ library:
`SpreadOption` and `KirkSpreadOptionEngine`; `SubPeriodsCoupon`, `SubPeriodsLeg`,
`SubPeriodsPricer`, `CompoundingRatePricer` and `AveragingRatePricer`; `DatedOISRateHelper`;
the history functions of `IndexManager` (`setHistory`, `getHistory`, `hasHistory`,
`clearHistory`, `hasHistoricalFixing`); `AnalyticHestonEngine_Integration` (now
`FourierIntegration`); `InflationTermStructure.observationLag` and `hasExplicitBaseDate`; the
YoY inflation index and curve constructors taking an `interpolated` flag;
`DiscountingSwapEngine(curve, settlementDate, npvDate)` (pass `includeSettlementDateFlows`
first, or use keywords). The constructor of `GlobalLinearSimpleZeroCurve` no longer takes
keyword arguments.
- Builds QuantLib 1.44 with two temporary fixes, kept in `patches/quantlib/`, applied at build
time to a copy of the QuantLib source and dropped with QuantLib 1.45:
- QuantLib compiles with automatic-differentiation number types, a fix from QuantLib's main
branch ([QuantLib #2934](https://github.com/lballabio/QuantLib/pull/2934))
- an implied rate keeps its derivative when the compound factor is 1, so for example the
dividend rho at a zero dividend yield is no longer lost, as proposed in
[QuantLib #3057](https://github.com/lballabio/QuantLib/pull/3057); with a compound factor
of 1 and a positive time, `SimpleThenCompounded` and `CompoundedThenSimple` now throw, as
they do on QuantLib's main branch
- Builds against the shared libxad of the installed xad 2.2 package (`xad>=2.2,<2.3`), which is
not bundled; tapes are shared with xad through libxad, thread-local per Python thread
- QuantLib and the module are built with no FMA contraction (`-ffp-contract=off` with GCC and
Clang), so AD values match a plain-double build with the same setting
- One-step build with scikit-build-core; wheels for Python 3.10-3.14 on Linux, macOS and Windows
- `tools/sync-swig.sh` syncs `SWIG/` with a QuantLib-SWIG release, re-applying the XAD changes in `SWIG/patches/`

Expand All @@ -36,7 +59,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Initial release, matching QuantLib Python bindings version 1.33


[1.41.0]: https://github.com/auto-differentiation/QuantLibAAD-Py/compare/v1.33.3...v1.41.0
[1.44.0]: https://github.com/auto-differentiation/QuantLibAAD-Py/compare/v1.33.3...v1.44.0

[1.33.3]: https://github.com/auto-differentiation/QuantLib-Risks-Py/compare/v1.33.2...v1.33.3

Expand Down
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@
##############################################################################

cmake_minimum_required(VERSION 3.18...4.2)
project(QuantLibAAD_Py LANGUAGES CXX VERSION 1.41.0)
project(QuantLibAAD_Py LANGUAGES CXX VERSION 1.44.0)

set(QLR_VERSION ${PROJECT_VERSION})
set(QLR_HEX_VERSION "0x014100f0")
set(QLR_HEX_VERSION "0x014400f0")

if(NOT DEFINED CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
Expand All @@ -46,6 +46,7 @@ set(QLR_QUANTLIB_PREFIX "" CACHE PATH

list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

include(QLRBuildDefaults)
include(QLRXad)

if(QLR_QUANTLIB_PREFIX AND NOT QLR_QUANTLIB_ONLY)
Expand Down
Loading
Loading