x.html) |  Boost.Geometry (aka **G** eneric **G** eometry **L** ibrary, GGL), defines concepts, primitives and algorithms for solving geometry problems. Boost.Geometry contains a dimension-agnostic, coordinate-system-agnostic and scalable kernel, based on concepts, meta-functions and tag dispatching. Supported algorithms are: calculation of area, length, perimeter, centroid, convex hull, intersection (clipping), within (point in polygon), distance, envelope (bounding box), simplify, transform, and much more. The library supports high precision arithmetic numbers  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ CGAL ](https://www.cgal.org/) |  Computational geometry algorithms library  |  GPL-3.0 or commercial  |  cmake   
[ PCL ](https://pointclouds.org/) |  Point Cloud library  |  |   
[ pmp-library ](https://www.pmp-library.org/) |  Polygon Mesh Processing Library  |  |   
[ Wykobi ](https://www.wykobi.com) |  Computational geometry library  |  |   
  
Graph theory

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ Boost.Graph ](https://www.boost.org/doc/libs/release/libs/graph/doc/index.html) |  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ CXXGraph ](https://github.com/ZigRazor/CXXGraph) |  A C++17 library for graph representation, manipulation, partitioning and algorithms  |  [ AGPL-3.0 ](https://github.com/ZigRazor/CXXGraph/blob/master/LICENSE) |  header-only; cmake   
[ GTpo ](https://github.com/cneben/QuickQanava/tree/master/GTpo) |  A C++14 directed graphs modelling library, part of [ QuickQanava project ](https://github.com/cneben/QuickQanava) |  BSD  |  qmake, cmake   
[ LEMON ](https://lemon.cs.elte.hu/trac/lemon) |  **L** ibrary for **E** fficient **M** odeling and **O** ptimization in **N** etworks implements common data structures and algorithms focusing on combinatorial optimization, graphs and networks. ( [ Doc ](https://lemon.cs.elte.hu/trac/lemon/wiki/Documentation) )  |  [ License ](https://lemon.cs.elte.hu/trac/lemon/wiki/License) |   
[ NGraph ](https://math.nist.gov/~RPozo/ngraph/ngraph_index.html) |  A simple (Network) Graph library in C++  |  |   
[ OGDF ](https://ogdf.uos.de/) |  **O** pen **G** raph algorithms and **D** ata structures **F** ramework - is a C++ library for graph algorithms, in particular for automatic graph drawing.  |  GPL v2 or v3  |   
  
Linear algebra

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ Armadillo ](http://arma.sourceforge.net/) |  A C++ template library for linear algebra and scientific computing featuring wrappers for OpenBLAS, Intel MKL, LAPACK, ATLAS, ARPACK, SuperLU and FFTW. Useful for ML, pattern recognition, DSP, bioinformatics, statistics, finance, etc.  |  Apache 2.0  |   
[ Blasw ](https://github.com/Mathific/Blasw) |  A C++11 BLAS and Parts of LAPACK Wrapper  |  BSD-3-Clause  |  header-only; cmake   
[ Blaze ](https://bitbucket.org/blaze-lib/blaze) |  |  |   
[ Blitz++ ](https://github.com/blitzpp/blitz) |  A C++ template class library that provides high-performance dense arrays and vectors, random number generators, and small vectors.  |  GPL-3.0, LGPL-3.0, Custom  |  cmake   
[ Boost.uBLAS ](https://www.boost.org/doc/libs/release/libs/numeric/ublas/doc/index.htm) |  A C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices. Uses expression templates.  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |   
[ C++ Matrix ](https://github.com/hosseinmoein/Tiger) |  High performance and accurate (e.g. edge cases) matrix math library with expression template arithmetic operators  |  BSD-3-Clause  |  cmake, make   
[ DecompLib ](https://github.com/jmatta1/DecompLib) |  A C++11 library to decompose a vector into a set of positive definite weighted basis vectors.  |  MIT  |  header-only   
[ Dlib - linear algebra tools ](http://dlib.net/linear_algebra.html) |  |  |   
[ Eigen ](https://eigen.tuxfamily.org) |  A C++ templa