Section: New Results

Towards Algorithmic Differentiation of C++

Participants : Laurent Hascoët, Valérie Pascual, Frederic Cazals [ABS team, Inria Sophia-Antipolis] .

Our goal is to extend Tapenade for C++. We further developed our external parser for C++, built on top of Clang-LLVM https://clang.llvm.org/. This parser is now connected to the input formalism “IL” of Tapenade. Tapenade now manages enough constructs of Object languages to be able to build its own Internal Representation (IR) and to regenerate back from the IR a non-transformed C++ source.

In the present development stage, this back-and-forth chain works on several small C++ codes. Still, many issues remain on the large example provided by the ABS team. We are working to solve those progressively. The lack of serious development documentation on the Clang internals obviously doesn't help.

The next development stage will be to adapt the analysis and differentiation components of Tapenade to the new Object constructs of the IR. This development has not started yet. Upstream this development, we need to devise an extended AD model correspondingly. This research part is in progress.