Simplex tree user manual¶

Definition¶ The simplex tree is an efficient and flexible data structure for representing general (filtered) simplicial complexes. The data structure is described in  Author Clément Maria Since GUDHI 2.0.0 License MIT

A simplicial complex $$\mathbf{K}$$ on a set of vertices $$V = \{1, \cdots ,|V|\}$$ is a collection of simplices $$\{\sigma\}$$, $$\sigma \subseteq V$$ such that $$\tau \subseteq \sigma \in \mathbf{K} \rightarrow \tau \in \mathbf{K}$$. The dimension $$n=|\sigma|-1$$ of $$\sigma$$ is its number of elements minus 1.

A filtration of a simplicial complex is a function $$f:\mathbf{K} \rightarrow \mathbb{R}$$ satisfying $$f(\tau)\leq f(\sigma)$$ whenever $$\tau \subseteq \sigma$$. Ordering the simplices by increasing filtration values (breaking ties so as a simplex appears after its subsimplices of same filtration value) provides an indexing scheme.

Implementation¶

The simplex tree is an efficient and flexible data structure for representing general (filtered) simplicial complexes. The data structure is described in .

Example¶

import gudhi
st = gudhi.SimplexTree()
if st.insert([0, 1]):
print("[0, 1] inserted")
if st.insert([0, 1, 2], filtration=4.0):
print("[0, 1, 2] inserted")
if st.find([0, 1]):
print("[0, 1] found")
result_str = 'num_vertices=' + repr(st.num_vertices())
print(result_str)
result_str = 'num_simplices=' + repr(st.num_simplices())
print(result_str)
print("skeleton(2) =")
for sk_value in st.get_skeleton(2):
print(sk_value)

The output is:

[0, 1] inserted
[0, 1, 2] inserted
[0, 1] found
num_vertices=3
num_simplices=7
skeleton(2) =
([0, 1, 2], 4.0)
([0, 1], 0.0)
([0, 2], 4.0)
(, 0.0)
([1, 2], 4.0)
(, 0.0)
(, 4.0)