This repository contains two problems that are similar to the ones we'd like to solve this summer. Problem 1 is about functional programming for high-level interfaces and Problem 2 is about vectorized, low-level programming. Both are important because we want to make physics functions faster by vectorizing them and hide that complexity behind a high-level interface.
They use toy libraries defined here (functional.py and vectorized.py) and you're free to modify them if it helps to do so. They were written quickly for this exercise, so they may be buggy.
We're primarily interested in how you solve the problems, not any numerical best optimization, so please write up your thought process. We may choose a candidate who doesn't technically have the best solution; we want the student who understands the issues best and shows the most promise for solving similar problems. Solving these problems will help you formulate your application for your summer project.
In the process of working through these exercises, you might discover that this is not how you want to spend your summer. That's great! Follow your interests.
Please e-mail your work to Jim Pivarski pivarski@princeton.edu and David Lange david.lange@cern.ch. Don't submit it as a pull request to this repository, because we don't want another applicant to be influenced by your ideas. Use the subject line "GSoC: DIANA-HEP/analysisfunctions" so that we don't lose track of your submission. We encourage you to ask us any questions that come up during your work. We will do our best to answer them.
Good luck!