Projects

fire-llvm
A Clang plugin that can be used to turn ordinary C++ functions and objects into command line interfaces (CLIs) similarly to python-fire. It works by adding an extra compiler pass that rewrites source code on the fly in order to inject argument parsing code.
mpsym
Improving mapping of computational tasks to manycore architectures using computational group theory, published in IEEE TCAD. MPsym can determine whether different mappings are equivalent due to symmetries of an architecture’s topology. Works efficiently with large, hierarchical architectures and can be used to improve existing mapping discovery algorithms by making them “symmetry aware”. Implemented in C++ for performance with easy to use Python bindings.
Colorful Image Colorization in PyTorch
A from-scratch PyTorch implementation of the convolutional neural network described by Zhang et al. in Colorful Image Colorization. Can be used with pretrained weights or trained from scratch. Also includes an implementation of Google’s DeepLab-V3+ network that can be substituted for the default VGG network.
Pong for L4Re
The classic “Pong” game on the L4Re microkernel. Includes custom implementations of malloc, free etc. for L4Re and several server programs implementing keyboard and framebuffer handling as well as paddle control and logging.
Diceprob
A parser and interpreter for the scripting language used by AnyDice. Makes it possible to run AnyDice scripts that compute probability distributions of complex dice rolls locally. Written in Haskell using the megaparsec parser library.