Utilize second order derivatives from Clad in ROOT
- Mentors
- Vassil Vassilev, Ioana Ifrim
- Organization
- CERN-HSF
In mathematics and computer algebra, automatic differentiation (AD) is a set of techniques to numerically evaluate the derivative of a function specified by a computer program. Automatic differentiation is an alternative technique to Symbolic differentiation and Numerical differentiation (the method of finite differences). Clad is based on Clang which provides the necessary facilities for code transformation.
ROOT is a framework for data processing, born at CERN, at the heart of the research on high-energy physics. Every day, thousands of physicists use ROOT applications to analyze their data or to perform simulations. ROOT has a clang-based C++ interpreter Cling and integrates with Clad to enable flexible automatic differentiation facility.
TFormula
is a ROOT class which bridges compiled and interpreted code.
The project aims to add second order derivative support in TFormula
using clad::hessian
. The PR that added support for gradients in ROOT is taken as a reference and can be accessed here.
Optionally, if time permits, this project will also convert the gradient function into CUDA device kernels.