Loading...
Searching...
No Matches
GUDHI

# The C++ library

## Data structures for cell complexes

### Cubical complexes

| The cubical complex is an example of a structured complex useful in computational mathematics (specially rigorous numerics) and image analysis. | Author: Pawel Dlotko Introduced in: GUDHI 1.3.0 License: MIT
User manual: Cubical complex

### Simplicial complexes

#### Simplex tree

| The simplex tree is an efficient and flexible data structure for representing general (filtered) simplicial complexes. The data structure is described in [boissonnatmariasimplextreealgorithmica] . | Author: Clément Maria Introduced in: GUDHI 1.0.0 License: MIT
User manual: Filtered Complexes

#### Toplex Map

| The Toplex map data structure is composed firstly of a raw storage of toplices (the maximal simplices) and secondly of a map which associate any vertex to a set of pointers toward all toplices containing this vertex. | Author: François Godi Introduced in: GUDHI 2.1.0 License: MIT
User manual: Toplex Map

#### Skeleton blocker

The Skeleton-Blocker data-structure proposes a light encoding for simplicial complexes by storing only an implicit representation of its simplices [socg_blockers_2011],[blockers2012]. 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.

Author: David Salinas
Introduced in: GUDHI 1.1.0
License: MIT

User manual: Skeleton-Blocker

#### Basic operation: contraction

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.

Author: David Salinas
Introduced in: GUDHI 1.1.0
License: MIT (LGPL v3)
Requires: CGAL

User manual: Edge contraction

## Filtrations

### Alpha complex and Delaunay

The alpha-complex is a filtration of the finite cells of a Delaunay Triangulation which is topologically equivalent to the Čech. The filtration value of each simplex is computed as the squared radius of the smallest Delaunay ball of this simplex.
Also provided are the (unfiltered) Delaunay triangulation, and the incremental Delaunay triangulation.

Authors: Vincent Rouvreau, Michael Kerber, Marc Glisse
Introduced in: GUDHI 1.3.0
License: MIT (GPL v3), GPL v3 (only for incremental Delaunay)
Requires: Eigen and CGAL

User manual: Alpha complex

### Čech complex

| The Čech complex is a filtered simplicial complex defined as the nerve of a union of balls. The set of all simplices is filtered by the radius of their minimal enclosing ball. | Author: Vincent Rouvreau, Hind Montassif Introduced in: GUDHI 2.2.0 License: MIT (LGPL v3) Requires: CGAL
User manual: Čech complex

### Rips complex

The (Vietoris-)Rips complex is a filtered simplicial complex where every tuple of points appears with its diameter as filtration value. Alternatively, it is defined by the cliques of a graph, usually representing a metric.
This complex can be built from a point cloud and a distance function, or from a distance matrix.

Author: Clément Maria, Pawel Dlotko, Vincent Rouvreau, Marc Glisse
Introduced in: GUDHI 2.0.0
License: MIT

User manual: Rips complex

### Edge collapse

Edge collapse is able to reduce any flag filtration to a smaller flag filtration with the same persistence, using only the 1-skeletons of a simplicial complex. The reduction is exact and the persistence homology of the reduced sequence is identical to the persistence homology of the input sequence. The resulting method is simple and extremely efficient.

Computation of edge collapse and persistent homology of a filtered flag complex via edge collapse as described in [edgecollapsearxiv].

Author: Siddharth Pritam, Marc Glisse
Introduced in: GUDHI 3.3.0
License: MIT

User manual: Edge collapse

### Witness complex

| 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 [boissonnatmariasimplextreealgorithmica] . | Author: Siargey Kachanovich Introduced in: GUDHI 1.3.0 License: MIT (GPL v3 for Euclidean version) Euclidean version requires: Eigen and CGAL
User manual: Witness complex

### Cover Complexes

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.

Author: Mathieu Carrière
Introduced in: GUDHI 2.1.0
License: MIT (GPL v3)
Requires: CGAL

User manual: Cover complex

## Manifold reconstructions

### Coxeter triangulation

| Coxeter triangulation module is designed to provide tools for constructing a piecewise-linear approximation of an \(m\)-dimensional smooth manifold embedded in \( \mathbb{R}^d \) using an ambient triangulation. | Author: Siargey Kachanovich Introduced in: GUDHI 3.4.0 License: MIT (LGPL v3) Requires: Eigen
User manual: Coxeter triangulation

### Tangential complex

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 \).

Author: Clément Jamin
Introduced in: GUDHI 2.0.0
License: MIT (GPL v3)
Requires: Eigen and CGAL

User manual: Tangential complex

## Topological descriptors computation

### Persistent Cohomology

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 [DBLP:journals/dcg/SilvaMV11] and [DBLP:conf/compgeom/DeyFW14] and the Compressed Annotation Matrix implementation of [DBLP:conf/esa/BoissonnatDM13] .

Author: Clément Maria
Introduced in: GUDHI 1.0.0
License: MIT

User manual: Persistent Cohomology

### Persistence Matrix

Matrix structure for filtered complexes with multiple functionnalities related to persistence homology, such as representative cycles computation or vineyards.

Note
  Matrix API is in a beta version and may change in incompatible ways in the near future.

Author: Hannah Schreiber
Introduced in: GUDHI 3.10.0
Copyright: MIT

User manual: Persistence Matrix and Persistence Fields

### Zigzag Persistent Homology

| Zigzag filtrations are a generalization of (standard) filtrations: the inclusion maps can not only go forward, but also backward. In other words, simplices can also be removed from the complex which is build. The implemented algorithm is from [zigzag]. | Author: Clément Maria, Hannah Schreiber Introduced in: GUDHI 3.11.0 Copyright: MIT
User manual: Zigzag Persistence

## Topological descriptors tools

### Bottleneck distance

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, where the distance between points is the sup norm in \(\mathbb{R}^2\) (not the Euclidean distance).

Author: François Godi
Introduced in: GUDHI 2.0.0
License: MIT (GPL v3)
Requires: CGAL

User manual: Bottleneck distance

### Persistence representations

| It contains implementation of various representations of persistence diagrams; diagrams themselves, persistence landscapes (rigorous and grid version), persistence heat maps, vectors and others. It implements basic functionalities which are necessary to use persistence in statistics and machine learning. | Author: Pawel Dlotko Introduced in: GUDHI 2.1.0 License: MIT
User manual: Persistence representations

## Point cloud utilities

\((x_1,\ldots,x_d)\) | This contains various tools to handle point clouds: spatial searching, subsampling, etc. | Author:Clément Jamin, Siargey Kachanovich, Marc Glisse Introduced in: GUDHI 1.3.0 License: MIT (GPL v3)
Manuals: Spatial_searching, Subsampling