clad
clad copied to clipboard
Investigate Clang APINotes to express pushforwards and pullbacks
The way we express analytical differentials is using a custom namespace where we provide functions with specific signatures. This presumes that entities can be forward declared which is not granted for STL and generally for C++ classes.
A complementary approach to custom namespaces could be using Clang's APINotes infrastructure. We should investigate if that's applicable to Clad and start using it to express non-differentiability for libraries such as STL or Kokkos.