Skip to main content

Table 2 Overview of existing software for the computation of PH that have an accompanying peer-reviewed publication (and also [ 68 ], because of its performance)

From: A roadmap for the computation of persistent homology

Software

javaPlex

Perseus

jHoles

Dionysus

PHAT

DIPHA

Gudhi

SimpPers

Ripser

(a) Language

Java

C++

Java

C++

C++

C++

C++

C++

C++

(b) Algorithms for PH

standard, dual, zigzag

Morse reductions, standard

standard (uses javaPlex)

standard, dual, zigzag

standard, dual, twist, chunk, spectral sequence

twist, dual, distributed

dual, multifield

simplicial map

twist, dual

(c) Coefficient field

\(\mathbb{Q}\), \(\mathbb{F}_{p}\)

\(\mathbb{F}_{2}\)

\(\mathbb{F}_{2}\)

\(\mathbb{F}_{2}\) (standard, zigzag), \(\mathbb{F}_{p}\) (dual)

\(\mathbb{F}_{2}\)

\(\mathbb{F}_{2}\)

\(\mathbb{F}_{p}\)

\(\mathbb{F}_{2}\)

\(\mathbb{F}_{p}\)

(d) Homology

simplicial, cellular

simplicial, cubical

simplicial

simplicial

simplicial, cubical

simplicial, cubical

simplicial, cubical

simplicial

simplicial

(e) Filtrations computed

VR, W, \(\mathrm{W}_{\nu}\)

VR, lower star of cubical complex

WRCF

VR, α, C̆

-

VR, lower star of cubical complex

VR, α, W, lower star of cubical complex

-

VR

(f) Filtrations as input

simplicial complex, zigzag, CW

simplicial complex, cubical complex

-

simplicial complex, zigzag

boundary matrix of simplicial complex

boundary matrix of simplicial complex

-

map of simplicial complexes

-

(g) Additional features

Computes some homological algebra constructions, homology generators

weighted points for VR

-

vineyards, circle-valued functions, homology generators

-

-

-

-

-

(h) Visualization

barcodes

persistence diagram

-

-

-

persistence diagram

-

-

-

  1. The symbol ‘-’ signifies that the associated feature is not implemented. For each software package, we indicate the following items. (a) The language in which it is implemented. (b) The implemented algorithms for the computation of barcodes from the boundary matrix. (c) The coefficient fields for which PH is computed, where the letter p denotes any prime number in the coefficient field \(\mathbb{F}_{p}\). (d) The type of homology computed. (e) The filtered complexes that are computed, where VR stands for Vietoris–Rips complex, W stands for the weak witness complex, \(\mathrm{W}_{\nu}\) stands for parametrized witness complexes, WRCF stands for the weight rank clique filtration, α stands for the alpha complex, and Č for the Čech complex. Perseus, DIPHA, and Gudhi implement the computation of the lower-star filtration [160] of a weighted cubical complex; one inputs data in the form of a d-dimensional array; the data is then interpreted as a d-dimensional cubical complex, and its lower-star filtration is computed. (See the Tutorial in Additional file 2 of the SI, for more details.) Note that DIPHA and Gudhi use the efficient representation of cubical complexes presented in [55], so the size of the cubical complex that is computed by these libraries is smaller than the size of the resulting complex with Perseus. (f) The filtered complexes that one can give as input. javaPlex supports the input of a filtered CW complex for the computation of cellular homology [78]; in contrast with simplicial complexes, there do not currently exist algorithms to assign a cell complex to point-cloud data. (g) Additional features implemented by the library. javaPlex supports the computation of some constructions from homological algebra (see [66] for details), and Perseus implements the computation of PH with the VR for points with different ‘birth times’ (see Section 5.1.3). The library Dionysus implements the computation of vineyards [155] and circle-valued functions [127]. Both javaPlex and Dionysus support the output of representatives of homology classes for the intervals in a barcode. (h) Whether visualization of the output is provided