Speaker
Petro Zarytskyi
(Princeton University (US))
Description
Clad is a Clang plugin that enables automatic differentiation for C++ by transforming abstract syntax trees using LLVM's compiler infrastructure. A key design goal is generating readable, efficient derivatives that integrate seamlessly into existing codebases. This talk explores the challenges of extending Clad to support object-oriented programming, demonstrating our approach through examples such as constructors, methods, and non-copyable types. We discuss the analyses and optimization techniques—both implemented and in development—that maintain code readability and performance when handling OOP paradigms. Finally, we present examples of use cases that these enhancements enable.
Author
Petro Zarytskyi
(Princeton University (US))
Co-author
Vassil Vasilev
(Princeton University (US))