Skip to content

v1.7.0

Latest
Compare
Choose a tag to compare
@auto-differentiation-dev auto-differentiation-dev released this 30 Nov 22:08
· 8 commits to main since this release

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 and XAD_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.
  • Documentation Updates: Improved and expanded documentation (#125).

  • CMake Module Renaming: Renamed helper modules to avoid name clashes (by @raneamri, #123).

Fixed

  • Move Behaviour of ChunkContainer Fixed move behaviour of ChunkContainer (by @rghouzra, #152)

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:

Full Changelog: v1.6.0...v1.7.0