Releases: auto-differentiation/xad
v1.8.0
Added
- Vector Forward Mode: Added support for a vector forward mode, where multiple derivatives can be calculated at once (#177, @xcelerit-team)
- Vector Adjoint Mode: Added support for a vector adjoint mode, where derivatives w.r.t. multiple outputs can be calculated jointly with AAD (#177, @xcelerit-team)
- Direct Mode: Added a mode for forward and reverse mode without expression templates, to ease integration and debugging (#177, @xcelerit-team)
- Added std::fma Function: Added support for the standard math function
std::fma(#175, @xcelerit-team) - Eigen Compatibility: Added support and a wide range of tests for using XAD within the Eigen Library (#174, @xcelerit-team)
- Jacobian Performance Optimisation: Faster discovery of Jacobian co-domain (#163)
- Improved CI/CD Pipelines: Modern compilers, better tests, Windows fixes (#164), and further improvements (#177, @xcelerit-team)
Removed
- Support for Visual Studio 2015 and 2017 (toolchains 14.0 and 14.1)
- Support for GCC 5 and 6
Fixed
- libc++ type trait fixes: Fixes for libc++ (MacOS) for random number type traits (#170)
- copysign function in MSVC: fixed issues with the
copysignfunction with the latest MSVC (#166) - Improved testing of chunk containers: The clear is now tested better (#157, by @rghouzra)
Full Changelog: v1.7.0...v1.8.0
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
OperationsContainerfor handling slots and multipliers. - Enhanced iteration efficiency in
computeAdjointsby avoiding redundant operations. - Implemented joint tape appending for multipliers and slots in a single operation.
- Removed the overhead of
std::fmacalls, relying on compiler-level optimisations. - Added pre-checks to skip derivative calculations when tape is not required.
- Provided branch prediction hints using
XAD_LIKELYandXAD_UNLIKELY. - Introduced a paired operations container variant for improved performance at a slight memory cost, with a
XAD_REDUCED_MEMORYCMake 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_signedtrait toStdCompatibility.hppheader 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
hypotmath function
Fixed
- avoid overflow with complex
absfunction 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
derivativecalls - Some test errors with GCC versions not previously tested