The C++ library

# Introduction

The GUDHI library (Geometry Understanding in Higher Dimensions) is a generic open source C++ library for Computational Topology and Topological Data Analysis (TDA). The GUDHI library intends to help the development of new algorithmic solutions in TDA and their transfer to applications. It provides robust, efficient, flexible and easy to use implementations of state-of-the-art algorithms and data structures.

The current release of the GUDHI library includes:

• Data structures to represent, construct and manipulate simplicial complexes.
• Simplification of simplicial complexes by edge contraction.
• Algorithms to compute persistent homology and bottleneck distance.

All data-structures are generic and several of their aspects can be parameterized via template classes. We refer to [30] for a detailed description of the design of the library.

# Data structures

## Alpha complex

Alpha complex representation
 Author: Vincent Rouvreau Introduced in: GUDHI 1.3.0 Copyright: GPL v3 Requires: CGAL ≥ 4.7.0 and Eigen3 Alpha_complex is a simplicial complex constructed from the finite cells of a Delaunay Triangulation. The filtration value of each simplex is computed as the square of the circumradius of the simplex if the circumsphere is empty (the simplex is then said to be Gabriel), and as the minimum of the filtration values of the codimension 1 cofaces that make it not Gabriel otherwise. All simplices that have a filtration value strictly greater than a given alpha squared value are not inserted into the complex. User manual: Alpha complex - Reference manual: Gudhi::alpha_complex::Alpha_complex

## Čech complex

Čech complex representation
 Author: Vincent Rouvreau Introduced in: GUDHI 2.2.0 Copyright: GPL v3 The Čech complex is a simplicial complex constructed from a proximity graph. The set of all simplices is filtered by the radius of their minimal enclosing ball. User manual: Čech complex - Reference manual: Gudhi::cech_complex::Cech_complex

## Cubical complex

Cubical complex representation
 Author: Pawel Dlotko Introduced in: GUDHI 1.3.0 Copyright: GPL v3 The cubical complex is an example of a structured complex useful in computational mathematics (specially rigorous numerics) and image analysis. User manual: Cubical complex - Reference manual: Gudhi::cubical_complex::Bitmap_cubical_complex

## Rips complex

Rips complex representation
 Author: Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse Introduced in: GUDHI 2.0.0 Copyright: GPL v3 Rips_complex is a simplicial complex constructed from a one skeleton graph. The filtration value of each edge is computed from a user-given distance function and is inserted until a user-given threshold value. This complex can be built from a point cloud and a distance function, or from a distance matrix. User manual: Rips complex - Reference manual: Gudhi::rips_complex::Rips_complex

## Simplex tree

Simplex tree representation
 Author: Clément Maria Introduced in: GUDHI 1.0.0 Copyright: GPL v3 The simplex tree is an efficient and flexible data structure for representing general (filtered) simplicial complexes. The data structure is described in [6] . User manual: Filtered Complexes - Reference manual: Gudhi::Simplex_tree

## Cover Complexes

Graph Induced Complex of a point cloud.
 Author: Mathieu Carrière Introduced in: GUDHI 2.1.0 Copyright: GPL v3 Requires: CGAL ≥ 4.8.1 Nerves and Graph Induced Complexes are cover complexes, i.e. simplicial complexes that provably contain topological information about the input data. They can be computed with a cover of the data, that comes i.e. from the preimage of a family of intervals covering the image of a scalar-valued function defined on the data. User manual: Cover complex - Reference manual: Gudhi::cover_complex::Cover_complex

## Skeleton blocker

Skeleton blocker representation
 Author: David Salinas Introduced in: GUDHI 1.1.0 Copyright: GPL v3 The Skeleton-Blocker data-structure proposes a light encoding for simplicial complexes by storing only an implicit representation of its simplices [2],[3]. Intuitively, it just stores the 1-skeleton of a simplicial complex with a graph and the set of its "missing faces" that is very small in practice. This data-structure handles all simplicial complexes operations such as simplex enumeration or simplex removal but operations that are particularly efficient are operations that do not require simplex enumeration such as edge iteration, link computation or simplex contraction. User manual: Skeleton-Blocker - Reference manual: Gudhi::skeleton_blocker::Skeleton_blocker_complex

## Tangential complex

Tangential complex representation
 Author: Clément Jamin Introduced in: GUDHI 2.0.0 Copyright: GPL v3 Requires: CGAL ≥ 4.8.1 and Eigen3 A Tangential Delaunay complex is a simplicial complex designed to reconstruct a $$k$$-dimensional manifold embedded in $$d$$-dimensional Euclidean space. The input is a point sample coming from an unknown manifold. The running time depends only linearly on the extrinsic dimension $$d$$ and exponentially on the intrinsic dimension $$k$$. User manual: Tangential complex - Reference manual: Gudhi::tangential_complex::Tangential_complex

## Witness complex

Witness complex representation
 Author: Siargey Kachanovich Introduced in: GUDHI 1.3.0 Copyright: GPL v3 Euclidean version requires: CGAL ≥ 4.6.0 and Eigen3 Witness complex $$Wit(W,L)$$ is a simplicial complex defined on two sets of points in $$\mathbb{R}^D$$. The data structure is described in [6] . User manual: Witness complex - Reference manual: Gudhi::witness_complex::SimplicialComplexForWitness

# Toolbox

## Bottleneck distance

Bottleneck distance is the length of the longest edge
 Author: François Godi Introduced in: GUDHI 2.0.0 Copyright: GPL v3 Requires: CGAL ≥ 4.8.1 Bottleneck distance measures the similarity between two persistence diagrams. It's the shortest distance b for which there exists a perfect matching between the points of the two diagrams (+ all the diagonal points) such that any couple of matched points are at distance at most b. User manual: Bottleneck distance

## Contraction

Sphere contraction example
 Author: David Salinas Introduced in: GUDHI 1.1.0 Copyright: GPL v3 The purpose of this package is to offer a user-friendly interface for edge contraction simplification of huge simplicial complexes. It uses the Skeleton-Blocker data-structure whose size remains small during simplification of most used geometrical complexes of topological data analysis such as the Rips or the Delaunay complexes. In practice, the size of this data-structure is even much lower than the total number of simplices. User manual: Edge contraction

## Persistent Cohomology

Rips Persistent Cohomology on a 3D Torus
 Author: Clément Maria Introduced in: GUDHI 1.0.0 Copyright: GPL v3 The theory of homology consists in attaching to a topological space a sequence of (homology) groups, capturing global topological features like connected components, holes, cavities, etc. Persistent homology studies the evolution – birth, life and death – of these features when the topological space is changing. Consequently, the theory is essentially composed of three elements: topological spaces, their homology groups and an evolution scheme. Computation of persistent cohomology using the algorithm of [18] and [19] and the Compressed Annotation Matrix implementation of [7] . User manual: Persistent Cohomology - Reference manual: Gudhi::persistent_cohomology::Persistent_cohomology

## Persistence representations

Persistence representations
 Author: Pawel Dlotko Introduced in: GUDHI 2.1.0 Copyright: GPL v3 It contains implementation of various representations of persistence diagrams; diagrams themselves, persistence landscapes (rigorous and grid version), persistence heath maps, vectors and others. It implements basic functionalities which are neccessary to use persistence in statistics and machine learning. User manual: Persistence representations
 GUDHI  Version 2.2.0  - C++ library for Topological Data Analysis (TDA) and Higher Dimensional Geometry Understanding.  - Copyright : GPL v3 Generated on Thu Jun 14 2018 15:00:56 for GUDHI by Doxygen 1.8.13