clad
clad copied to clipboard
clad -- automatic differentiation for C/C++
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...
BaseForwardModeVisitor, ReverseModeForwPassVisitor, HessianModeVisitor and JacobianModeVisitor have practically a common method `Derive` which duplicates a lot of code. We should move the common code into a utility class that's shared between...
The problem this PR attempts to fix is described in #659 (which in turn caused #681). Also, this PR introduces placeholders to ``DelayedGlobalStoreAndRef`` to rewrite expressions after they are added...
Clang reports the error 'Cannot assign to variable with const-qualified type' because Clad tries to (unnecessarily) update value of const pointers when they are passed as arguments to function calls....
**Minimal example**: Compile the following code with Clang++ with the clad plugin: ```c++ #include #include "clad/Differentiator/Differentiator.h" struct T {}; double f(double x){ T* y = new T{}; return x; }...
Followed the installation guide in the README for building Clang and Clad from source using the following commands: ``` sudo -H pip install lit git clone https://github.com/llvm/llvm-project.git src cd src;...
Currently the link to binder is broken because clad does not work with xeus-cling. We can decide to move away from xeus-cling in favor of xeus-clang-repl (and eventually xeus-cpp). We...
Currently clad tests are organized in two ways. Clad can be attached to clang and it can produce an executable file which we run and/or it can produce source code...