Skip to content

Clad version 1.3

Compare
Choose a tag to compare
@vgvassilev vgvassilev released this 11 Feb 18:29
· 329 commits to master since this release

Introduction

This document contains the release notes for the automatic differentiation plugin for clang Clad, release 1.3. Clad is built on top of Clang and LLVM compiler infrastructure. Here we describe the status of Clad in some detail, including major improvements from the previous release and new feature work.

Note that if you are reading this file from a git checkout, this document applies to the next release, not the current one.

What's New in Clad 1.3?

Some of the major new features and improvements to Clad are listed here. Generic improvements to Clad as a whole or to its underlying infrastructure are described first.

External Dependencies

  • Clad now works with clang-7 to clang-17

Forward Mode

  • Make forward vector mode more robust:
    • Implement dedicated clad::matrix class
    • Add support for array arguments
    • Add support for call expressions
  • Add support for the 'non_differentiable' attribute

Reverse Mode

  • Fix computation of higher order functions
  • Introduce experimental To-Be-Recorded Analysis in Clad
  • Improve storing of LHS/RHS in multiplication/division operators
  • Add initial support for pointers
  • Improve the overall performance by reducing the tape storage

Misc

  • Add support for std::min, std::max and std::clamp functions
  • Fix strong symbol definitions in Differentiator.h

Fixed Bugs

49 86 197 275 314 429 439 441 465 606 620 650 655 660 664 667 669 672 676 681 687 689

Special Kudos

This release wouldn't have happened without the efforts of our contributors,
listed in the form of Firstname Lastname (#contributions):

FirstName LastName (#commits)

A B (N)

Vaibhav Thakkar (43)
Vassil Vassilev (26)
Alexander Penev (8)
petro.zarytskyi (6)
dependabot[bot] (4)
Parth (2)
Rishabh Bali (1)
QuillPusher (1)
Krishna-13-cyber (1)
daemondzh (1)
Aaron Jomy (1)

What's Changed

New Contributors

Full Changelog: v1.2...v1.3