Design

Back in 2014, we started to collect, implement and discuss various algorithms from the field of trajectory computing in a template-driven C++11 library called libtrajcomp. We felt that there was a real lack of correct and fast implementations of these algorithms in order to quickly use them in projects.

The choice of template-driven C++ is due to the importance of fast computing and memory effectiveness unreachable with, for example, Java or pure python. Furthermore, we tried to keep the code generic enough to smoothly integrate it into many environments from real-time embedded systems over python, R, octave, MATLAB and other higher level languages widely used around the world.

Finally, we decided that we only bring example bindings for most of these languages and stick with the data science environment R. In this way, our efforts are more efficient, but we try to keep the developments open to other environments,too.

We feel that R is the ideal environment for data science research due to its unprecedented platform independence and the support for source packages and quite modern langauge features including OpenMP, Boost Headers, and others across platforms. If you are new to R, you might be interested in using it from RStudio, a very good IDE for the beginning.

Example bindings are available for a set of other environments. We welcome any sample of using libtrajcomp from other environments, especially on Android and iPhone smartphones. So, if you can contribute such an example (even if it is a minimal working example), feel free to

Outside of this project, we can also provide access to some student implementations of few algorithms in Java. Note that we are not using them actively and that there might be issues. They are intended either for learning or as a starting point only.