|
73 | 73 | info: 'Utilize second order derivatives from Clad in ROOT'
|
74 | 74 |
|
75 | 75 | education: "B. Tech in Computer Science and Engg., Manipal Institute of Technology, Manipal, India"
|
| 76 | + current: 1 |
| 77 | + info: "Improving Cling Reflection for Scripting Languages" |
76 | 78 | description: |
|
| 79 | + Cling has basic facilities to make queries about the C++ code that it has seen/collected so far. |
| 80 | + These lookups assume, however, that the caller knows what it is looking for and the information |
| 81 | + returned, although exact, usually only makes sense within C++ and is thus often too specific to |
| 82 | + be used as-is. A scripting language, such as Python, that wants to make use of such lookups by |
| 83 | + name, is forced to loop over all possible entities (classes, functions, templates, enums, …) |
| 84 | + to find a match. This is inefficient. Furthermore, many lookups will be multi-stage: a function, |
| 85 | + but which overload? A template, but which instantiation? A typedef, of what? The current |
| 86 | + mechanism forces the scripting language to provide a type-based match, even where C++ makes |
| 87 | + distinctions (e.g. pointer v.s. reference) that do not exist in the scripting language. This, |
| 88 | + too, makes lookups very inefficient. The returned information, once a match is found, is exact, |
| 89 | + but because of its specificity, requires the caller to figure out C++ concepts that have no |
| 90 | + meaning in the scripting language. E.g., there is no reason for Python to consider an implicitly |
| 91 | + instantiated function template different from an explicitly instantiated one. |
| 92 | + mentors: Wim Lavrijsen, Vassil Vassilev |
| 93 | + past_projects: 1 |
| 94 | + past_info: "Utilize second order derivatives from Clad in ROOT" |
| 95 | + past_description: | |
77 | 96 | ROOT is a framework for data processing, born at CERN, at the heart of the research on high-energy physics.
|
78 | 97 | ROOT has a clang-based C++ interpreter Cling and integrates with the automatic differentiation plugin Clad
|
79 | 98 | to enable flexible automatic differentiation facility. TFormula is a ROOT class which bridges compiled and
|
80 | 99 | interpreted code. This project aims to add second order derivative support in TFormula using clad::hessian.
|
81 | 100 | The PR that added support for gradients in ROOT is taken as a reference and can be accessed here.
|
82 |
| - proposal: /assets/docs/Baidyanath_Kundu_Proposal_2021.pdf |
83 |
| - mentors: Vassil Vassilev, Ioana Ifrim |
84 |
| - current: 1 |
| 101 | + past_proposal: /assets/docs/Baidyanath_Kundu_Proposal_2021.pdf |
| 102 | + past_mentors: Vassil Vassilev, Ioana Ifrim |
85 | 103 |
|
86 | 104 | - name: Purva Chaudhari
|
87 | 105 | info: "Enhance the incremental compilation error recovery in clang and clang-repl"
|
|
0 commit comments