Releases: auto-differentiation/xad
v1.7.0
This release features extensive performance improvements.
Added
- Template Variables: Added support for C++17 type traits such as
std::is_floating_point_v
(#127). - CI/CD Workflows: Updated workflows to target the C++17 standard (#127).
- New Sample: Introduced a Monte-Carlo swaption portfolio pricer, including path-wise derivative calculations (#126).
Changed
-
Performance Improvements (#150):
- Optimised
OperationsContainer
for handling slots and multipliers. - Enhanced iteration efficiency in
computeAdjoints
by avoiding redundant operations. - Implemented joint tape appending for multipliers and slots in a single operation.
- Removed the overhead of
std::fma
calls, relying on compiler-level optimisations. - Added pre-checks to skip derivative calculations when tape is not required.
- Provided branch prediction hints using
XAD_LIKELY
andXAD_UNLIKELY
. - Introduced a paired operations container variant for improved performance at a slight memory cost, with a
XAD_REDUCED_MEMORY
CMake option to toggle memory usage.
- Optimised
-
Documentation Updates: Improved and expanded documentation (#125).
-
CMake Module Renaming: Renamed helper modules to avoid name clashes (by @raneamri, #123).
Fixed
Contributors
This release is a testament to the hard work and dedication of our contributors.
We extend our heartfelt gratitude to everyone who contributed their time and expertise to achieve these performance advancements.
Below is the list of contributors for this release:
- @5tirner
- @Abdell-Rabiai
- @abouramd
- @ayoubHam2000
- @barrak7
- @creativity
- @ErabaReta
- @flytoox
- @het-tale
- @ibrahimesseddyq
- @jchakir
- @m-zeroual
- @mberrouk
- @Mouad-El-Asri
- @mowdl
- @ochouikh
- @ossamakhiar
- @raneamri
- @rghouzra
- @Rhnizar
- @SALAH-NAME
- @soufianeessarhir
- @TmcTrevor
- @whoismtrx
- @yasseraitnasser
- @yrhiba
- @zfarini
Full Changelog: v1.6.0...v1.7.0
v1.6.0
This release mainly adds support for more architectures and compilers and provides higher level derivative functions as well as examples.
Added
- Support for Mac M1+ architecture (ARM) as well as AppleClang 15 support (by @raneamri #116)
- High level functions to compute Jacobian and Hessian matrices (by @raneamri #117)
Removed
- Moved website to its own repository and keeping only the reference manual #112
New Contributors
Full Changelog: v1.5.2...v1.6.0
v1.5.2
What's Changed
This is a patch release after factoring out the Python bindings, to get the versioning consistent with the xad-py repository.
- Updated naming of QuantLib-Risks by @auto-differentiation-dev in #101
- Bump actions/cache from 3 to 4 by @dependabot in #106
- Bump actions/setup-python from 4 to 5 by @dependabot in #105
- Bump github/codeql-action from 2 to 3 by @dependabot in #103
- Bump jwlawson/actions-setup-cmake from 1.14 to 2.0 by @dependabot in #104
- Removing Python bindings and refactor website by @auto-differentiation-dev in #107
- Bump emibcn/badge-action from 2.0.2 to 2.0.3 by @dependabot in #108
Full Changelog: v1.5.1...v1.5.2
v1.5.1
This is a patch release to allow interoperability with the QuantLib-Risks Python package.
What's Changed
- Adds static tape functions to control tape activation in #102
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Added
- Python bindings as xad-autodiff in #98
- Added
std::is_signed
trait toStdCompatibility.hpp
header for consistency - Added application areas to docs & readme in #97
- Added Natvis file to display XAD types as values in Visual Studio debugger by @dholden3 in #94
Changed
- Updated Quantlib-XAD build documentation in #96
- Cleaned up output of Swap Pricer example
New Contributors
Full Changelog: v1.4.1...v1.5.0
v1.4.1
This is a patch release to ensure compatibility with QuantLib 1.33.
Further details are listed below.
Added
- support for
hypot
math function
Fixed
- avoid overflow with complex
abs
function when real / imaginary parts are large
v1.4.0
This release fixes an issue with complex XAD types, updates documentation, and improves compiler support.
Further details are listed below.
Added
- Supporting Clang version 16 and added to CI/CD
- Adding complex arithmetics between complex XAD types and
std::complex<double>
Fixed
- Documentation updates
v1.3.0
This release fixes issues for supporting a wider range of compilers, improves CI/CD, and improves the documentation.
Further details are listed below:
Added
- Improved CI/CD workflows with better caching and latest compilers
Changed
- Documentation updates
Fixed
- Fixed missing include of
<memory>
inChunkContainer.hpp
v1.2.0
This release revamps the documentation site, fixes issues for a wider range of compilers, improves CI/CD, and adds new math functions.
Further details are listed below:
Added
- More CI/CD workflows for all supported compiler versions
- Added math function
copysign
Changed
- Revamped documentation site using mkdocs
- Improved tests and testing infrastructure
Fixed
- Throw exception when no tape is set on
derivative
calls - Some test errors with GCC versions not previously tested
v1.1.0
This release includes full MacOS support and can be fully integrated with QuantLib.
Further details are listed below:
Added
- QuantLib integration by means of the qlxad integration module
- Full MacOS support
- Better CI pipeline with more platforms and compilers tested
- Code coverage and quality measured on pull requests and reported in README.md
- More tests to improve code coverage
- Status badges in README.md
- Documentation updates
Changed
- Code quality improvements
- Better use of caching in CI/CD pipelines for faster builds