A lightweight C++ library for Gaussian processes (GPs).

View on GitHub

Gaussian Processes

Build Status License

A homebrewed C++ library for Gaussian processes. gp is developed by David Fridovich-Keil, a second-year PhD student in the Berkeley Hybrid Systems Lab and the Berkeley Artificial Intelligence Research (BAIR) Lab.


gp is still under active development. I hope to have a first release soon though, so stay tuned!


All source code is located in src/; headers are in include/; unit tests are in /test/; and executables are in exec/. Compiled binaries will be placed in bin/.


I may miss a few here, but here is a list of dependencies:

All of these may be installed very easily. If you run into any trouble, though, I am more than happy to help you figure out what’s going on. Just post an issue on this repository and I will reply as soon as possible.


You’ll need to begin by building the repository. From the top directory, type the following sequence of commands:

mkdir bin
mkdir build
cd build
cmake ..
make -j4

This should build all tests and executables. In order to run tests, you can run the following command:


from within the build/ directory you just made. All the tests should pass, and none should take more than a second or so to run.

Executables are automatically placed within the bin/ directory that you created. To run them, just type ./(name-of-executable).

To the extent that it makes sense, all parameters are accessible from the command line via Gflags. For help with command line options, simply run the following command:

./(name-of-executable) --help

API documentation

I’ve been using Doxygen to auto-generate web-based documentation. Although I do not follow the Doxygen guidelines for writing comments, auto-generation still seems to do a fairly reasonable job.