AI & IT UG - Software

ADiMat

In the past years I have been the lead developer of the automatic differentiation tool ADiMat, while employed as a research assistant at RWTH Aachen University and TU Darmstadt. My main contribution was the addition of the so called Reverse Mode of automatic differentiation. The reverse mode enables the efficient evaluation of gradients and Hessians.

I also created a user interface layer, which consists of a set of driver functions that are easy to use and flexible, and the client-server infrastructure that enables the externalization of the differentiation process as a web software service.

In addition to the development of ADiMat provide teaching in using ADiMat and offer support for the application of ADiMat in individual projects.

RIOS

RIOS is a project to provide efficient IO in reverse direction, harnessing the advantages of high-performance file systems. This library is used in ADiMat to provide fast stacks that can grow as large as the available hard disk space. The project source code is hosted at ourproject.org, here: http://rios.ourproject.org.

opt-to-xml and org-letter

org-to-xml and org-letter are two simple projects I created on github which I use to produce my business and private letters. The idea is that letters which I write in org-mode in Emacs are processed with XSLT to be rendered to HTML using HTML templates.

P2X

The P2X software is a very light-weight parser for almost any language with XML output. It's a one-shot, single program, and it is more a configurable parser than a parser-generator. It is hosted at Google Code: https://github.com/rainac/p2x. I am using it in several other projects, mostly to process text input such as program code and configuration files. P2X is then the first step, producing an XML representation of the input, which is then further processed with XSLT.

Named Constant

Named Constant is a source code generator for C/C++ enumerations. These are defined in XML and Name Constant then generates the C/C++ declarations of the enum and in addition functions for converting these to and from strings. It is meant to facilitate user interaction in programs with many options. You can find the source code @ Non-GNU Savannah, here: http://savannah.nongnu.org/projects/named-constant.