# Boost C++ Libraries

Since 2005, Boost has participated in the Google Summer of Code™, initiative, a program by which student developers are sponsored for their contributions within open source organizations willing to mentor the participants.

Currently the application process begins around December/January by the student reviewing past GSoC project ideas and approaching the Boost developers mailing list to find a mentor willing to mentor them and codevelop a project proposal to be submitted to Google for funding the coming summer. Students should expect to be flexible with regard to what topics and proposals mentors are willing to mentor.

If you arrive to the process too late to prearrange a mentor,
some potential mentors supply prewritten project proposals with
C++ programming competency tests on
this year's GSoC Project Ideas page. If you have in the past
made a **substantial** contribution to a well known open source
project or partitipated in previous editions of the GSoC, it may be
possible to skip submission of the C++ programming competency test solution (decided on a case by case basis).

Submit the competency test solution as part of the project proposal you will submit to the Google Summer of Code program. You can copy and paste relevant parts of your code or you can include links to, for example, GitHub repository with your solution project.

### Google Summer of Code 2020 overview

This year, in 2020, 10 students will work with us on improving and adding new features to many of our libraries. Once again, the competition has been very hard. A few numbers: - we received 93 proposals in total. 85 of them were complete, then we kept 47 proposals only - finally we selected 10 of them, covering 7 different Boost libraries - and countless hours of work from the most incredible team of mentors! Here are the list of projects for 2020:#### Boost.Real

- Kishan Shukla will be working on making the Real library ready for revision. His main goal is to reimplement the division algorithm so it can be used with any number base representation and the Karatsuba multiplication algorithm. Also, it will be working on implementing some operators and common irratianal numbers as Pi.
*Mentors*: Laouen Belloli and Damian Vicino.

#### Boost.Astronomy

- Syed Ali Hasan will be working on the astronomical coordinate system, he will implement different coordinate conversion using SOFA library
*Mentor*: Pranam Lashkari - Gopi Krishna Menon will be completing the parser for FITS file and also optimise the already developed components.
*Mentor*: Sarthak Singhal

#### Boost.GIL

- Debabrata Mandal will be implementing histogram computation as a built-in feature, algorithms for histogram analysis,
image processing algorithms based on histogram and possibly integration with Boost.Histogram library.
: Mateusz Loskot, Pranam Lashkari

Mentors - Olzhas Zhumabek will be extending GIL's portfolio of image processing algorithms, implementing for image scaling and
sampling, Perona–Malik diffusion, Non-Maximum Suppression for object detection, Hysteresis threshold and some more.
*Mentor*: Mateusz Loskot

**Boost.Multiprecision**

- Dimitris Los will work on extending and optimizing parts of Boost.Multiprecision to higher precision of many thousands of bits or more.
*Mentor*: Christopher Kormanyos

#### Boost.uBlas

- Ashar Khan will stabilize and improve Boost.uBlas using the C++20-Standard. The main focus of his project will be enhancing code-coverage and documentation,
integrating static code analysis and generating tensor concepts.
*Mentor*: Cem Bassoy - Tom Kwok will improve and finalize the implementation of data frames in uBlas, with the aim of delivering production-ready by the end of the summer.
Data frames in uBlas are similar in functionalities to other implementations like in R, Python.Pandas or Julia.
*Mentor*: David Bellot

#### Boost.Geometry

- Tinko Bartels will work on robust yet efficient geometric predicates for Boost Geometry.
*Mentor*: Vissarion Fisikopoulos

#### Boost.Real

- Vikram Singh Chundawat will work in taking Real to revision ready state. His focus will be in improving the internal representation datatypes
and providing functions required to conveniently support Taylor series.
*Mentors*: Damian Vicino and Laouen Belloli

### Github's for standalone GSoCs past and present

Since 2013 with Boost's transition to git we have kept a single umbrella org on github for those GSoCs which are fairly self standing. Incremental extensions to existing libraries usually enter that library's main git repo as an experimental branch. Here are those orgs:

- GSoC 2020: https://github.com/BoostGSoC20
- GSoC 2019: https://github.com/BoostGSoC19
- GSoC 2018: https://github.com/BoostGSoC18
- GSoC 2017: https://github.com/BoostGSoC17
- GSoC 2015: https://github.com/BoostGSoC15
- GSoC 2014: https://github.com/BoostGSoC14
- GSoC 2013: https://github.com/BoostGSoC13

Students may find examining past GSoC source code and commit histories of use.

### Historical GSoC Ideas pages for years 2006 to now

- 2020 Project Ideas
- 2019 Project Ideas
- 2018 Project Ideas
- 2017 Project Ideas
- 2016 Project Ideas
- 2015 Project Ideas
- 2014 Project Ideas
- 2013 Project Ideas
- 2012 Project Ideas
- 2011 Project Ideas
- 2010 Project Ideas
- 2009 Project Ideas
- 2008 Project Ideas
- 2007 Project Ideas
- 2006 Project Ideas. An overview of Boost participation in Google Summer of Code™ 2006.