GSoC/GCI Archive
Google Summer of Code 2013

Boost C++ Libraries

Web Page:

Mailing List:

Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ standard library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use. We aim to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. More than ten Boost libraries were included in the Technical Report (TR1) and are now in the C++11 standard library. More Boost libraries are proposed for future versions of C++.


  • Boost AFIO The goal of this project is to help the proposed Boost AFIO (Asynchronous File I/O) library pass peer review, and implement increased POSIX support by providing appropriate back ends for the library.
  • Boost.Math Bernoulli Numbers and Applications to Special Functions In this project, we will implement fast, accurate calculations of Bernoulli numbers for built-in types as well as multiprecision types. The Bernoulli numbers will subsequently be used for improving the existing implementation of gamma functions and adding brand new Boost.Math support for the polygamma function. If time permits, we'd like to add support for the Hurwitz zeta function an Bernoulli Polynomials.
  • Boost.Trie Trie is an efficient in-memory ordered tree data structure to deal with string storing and searching. It has better performance in looking up and inserting compared to Binary Search Trees. And in comparison to hashtable, it has better expandability and stability, while its performance is no worse. Moreover, it is easy and efficient to look up data with a common prefix. In all, trie is a data structure of great importance and wide usage. This project is dedicated in developing a lib providing some containers and interfaces based on the Trie data structure.
  • Boost.uBlas - Parallelized computations with MPI technology Boost uBlas offers a wide range of algorithms which can be applied on vectors or matrices. These calculations are mostly done on very substantial sized objects, which significantly increases the computation time. However, the time performance of a program is one of the most important criteria nowadays. The aim of our project is to enable the parallel execution thanks to the MPI technology.
  • Multiple-source shortest paths for planar graphs Given a planar graph G = (E,V), one of its faces f, and a shortest path tree T rooted somewhere on f, implement an algorithm to efficiently modify T to obtain the shortest path trees for the other vertices on f.
  • Parallel Backends for odeint Implement a layer of generic parallelized backends which wrap existing backends and allow splitting data among OpenMP threads or the nodes of an MPI cluster.
  • uBlas Performance Math Library Efficiency of calculations is of major importance in modern computing. With the advent of the cloud computing model, the performance of computational software has turned into an even more critical factor that greatly affects the decisions made by the various stakeholders. In this project we aim at providing the uBlas project with efficient algorithms that will allow for high performing mathematical functions taking advantage of vector instructions and parallel execution.