The Gudhi Library: Simplicial Complexes and Persistent Homology. We present the main algorithmic and design choices that have been made to implement the construction and manipulation of simplicial complexes and the computation of persistent homology in the Gudhi library. The Gudhi library (Geometric Understanding in Higher Dimensions) is a generic C++ library for computational topology. Its goal is to provide robust, efficient, flexible and easy to use implementations of state-of-the-art algorithms and data structures for computational topology. An application of interest for computational topology is topological data analysis, where one is interested in learning topological invariants of a shape, sampled by a point cloud. A popular approach is to construct, at different scales, an approximation of the shape using simplicial complexes built on top of the points, and then compute the persistent homology of these complexes. The simplicial complex and persistent homology packages in Gudhi provide all software components for this approach. Specifically, simplicial complexes are implemented with a simplex tree data structure. The simplex tree is an efficient and flexible data structure for representing general (filtered) simplicial complexes. The persistent homology of a filtered simplicial complex is computed by mean of the persistent cohomology algorithm, implemented with a compressed annotation matrix. Persistent cohomology is the dual of persistent homology, and provides the same topological invariant represented by a persistence diagram. The persistent homology package provides as well the implementation of the multi-field persistence framework, i.e. the computation of persistence with various field coefficients in a single pass. We present the different components of the software, their interaction and the user interface. We justify the algorithmic and design decisions made in Gudhi, and provide detailed benchmarks of the code. Joint work with Jean-Daniel Boissonnat, Marc Glisse and Mariette Yvinec.