Contributor
Baidyanath Kundu

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.