|  | 
| 121 | 121 |         [Final Report](/assets/docs/Aaron_Jomy_GSoC23_Report.pdf) | 
| 122 | 122 | 
 | 
| 123 | 123 | - name: Petro Zarytskyi | 
| 124 |  | -  info: "IRIS-HEP Fellow" | 
|  | 124 | +  info: "Google Summer of Code 2025 Contributor" | 
| 125 | 125 |   photo: Petro.jpg | 
| 126 | 126 |  | 
| 127 | 127 |   education: Applied Mathematics, Taras Shevchenko National University of Kyiv, Ukraine, 2021-present | 
| 128 | 128 |   active: 1 | 
| 129 | 129 |   projects: | 
| 130 |  | -    - title: "Optimizing reverse-mode automatic differentiation with advanced activity-analysis" | 
|  | 130 | +    - title: "Improve automatic differentiation of object-oriented paradigms using Clad" | 
| 131 | 131 |       status: Ongoing | 
|  | 132 | +      description: | | 
|  | 133 | +        Clad is a Clang plugin enabling automatic differentiation (AD) for C++ mathematical | 
|  | 134 | +        functions by modifying the abstract syntax tree using LLVM's compiler capabilities. | 
|  | 135 | +        It integrates into existing codebases without modifications and supports forward and | 
|  | 136 | +        reverse mode differentiation. Reverse mode is efficient for Machine Learning and  | 
|  | 137 | +        inverse problems involving backpropagation. | 
|  | 138 | +        Reverse mode AD requires two passes: forward pass stores intermediate values, reverse | 
|  | 139 | +        pass computes derivatives. Currently, Clad only supports storing trivially copyable  | 
|  | 140 | +        types for function call arguments, limiting support for C-style arrays and non-copyable | 
|  | 141 | +        types like unique pointers, constraining Object-Oriented Programming usage. | 
|  | 142 | +        The project aims to enhance Clad's capability to store intermediate values for non-copyable | 
|  | 143 | +        types. One of the challenges lies in determining which expressions are modified in nested  | 
|  | 144 | +        functions, potentially requiring run-time memory location tracking, which can be inefficient. | 
|  | 145 | +        The solution involves enhancing To-Be-Recorded (TBR) analysis, currently limited with | 
|  | 146 | +        poor nested function call support and no pointer reassignment handling. Improved TBR  | 
|  | 147 | +        analysis will enable predictable memory handling, generating optimal code, and  | 
|  | 148 | +        supporting both non-copyable types and efficient storage of copyable structures. | 
|  | 149 | +      proposal: /assets/docs/Petro_Zarytskyi_Proposal_2025.pdf | 
|  | 150 | +      mentors: Vassil Vassilev, David Lange | 
|  | 151 | +    - title: "Optimizing reverse-mode automatic differentiation with advanced activity-analysis" | 
|  | 152 | +      status: Completed project | 
| 132 | 153 |       description: | | 
| 133 | 154 |         Clad is an automatic differentiation clang plugin for C++. It automatically | 
| 134 | 155 |         generates code that computes derivatives of functions given by the user. | 
|  | 
0 commit comments