FilteredComplex Struct Reference

The concept FilteredComplex describes the requirements for a type to implement a filtered cell complex, from which one can compute persistent homology via a model of the concept PersistentHomology. More...

#include <concept/Persistent_cohomology/FilteredComplex.h>

## Public Types

typedef unspecified Simplex_handle
Handle to specify a simplex.

typedef unspecified Filtration_value
Type for the value of the filtration function. More...

typedef unspecified Indexing_tag
Specifies the nature of the indexing scheme. More...

typedef unspecified Boundary_simplex_iterator
Iterator on the simplices belonging to the boundary of a simplex. More...

typedef unspecified Boundary_simplex_range
Range giving access to the simplices in the boundary of a simplex. More...

typedef unspecified Filtration_simplex_iterator
Iterator over all simplices of the complex in the order of the indexing scheme. More...

typedef unspecified Filtration_simplex_range
Range over the simplices of the complex in the order of the filtration. More...

## Public Member Functions

Simplex_handle null_simplex ()
Returns a Simplex_handle that is different from all simplex handles of the simplices.

size_t num_simplices ()
Returns the number of simplices in the complex. More...

int dimension (Simplex_handle sh)
Returns the dimension of a simplex.

Filtration_value filtration (Simplex_handle sh)
Returns the filtration value of a simplex. More...

Simplex_handle simplex (size_t idx)
Returns the simplex that has index idx in the filtration. More...

Boundary_simplex_range boundary_simplex_range (Simplex_handle sh)
Returns a range giving access to all simplices of the boundary of a simplex, i.e. the set of codimension 1 subsimplices of the Simplex. More...

Filtration_simplex_range filtration_simplex_range ()
Returns a range over the simplices of the complex in the order of the filtration. More...

## Map interface

Conceptually a std::unordered_map<Simplex_handle,std::size_t>.

typedef unspecified Simplex_key
Data stored for each simplex. More...

Simplex_key null_key ()
Returns a constant dummy number that is either negative, or at least as large as num_simplices(). Suggested value: -1.

Simplex_key key (Simplex_handle sh)
Returns the number stored for a simplex by assign_key. More...

void assign_key (Simplex_handle sh, Simplex_key n)
Store a number for a simplex, which can later be retrieved with key(sh). More...

## Detailed Description

The concept FilteredComplex describes the requirements for a type to implement a filtered cell complex, from which one can compute persistent homology via a model of the concept PersistentHomology.

## ◆ Boundary_simplex_iterator

 typedef unspecified FilteredComplex::Boundary_simplex_iterator

Iterator on the simplices belonging to the boundary of a simplex.

value_type must be 'Simplex_handle'.

## ◆ Boundary_simplex_range

 typedef unspecified FilteredComplex::Boundary_simplex_range

Range giving access to the simplices in the boundary of a simplex.

.begin() and .end() return type Boundary_simplex_iterator.

## ◆ Filtration_simplex_iterator

 typedef unspecified FilteredComplex::Filtration_simplex_iterator

Iterator over all simplices of the complex in the order of the indexing scheme.

'value_type' must be 'Simplex_handle'.

## ◆ Filtration_simplex_range

 typedef unspecified FilteredComplex::Filtration_simplex_range

Range over the simplices of the complex in the order of the filtration.

.begin() and .end() return type Filtration_simplex_iterator.

## ◆ Filtration_value

 typedef unspecified FilteredComplex::Filtration_value

Type for the value of the filtration function.

Must be comparable with <.

## ◆ Indexing_tag

 typedef unspecified FilteredComplex::Indexing_tag

Specifies the nature of the indexing scheme.

is model of IndexingTag.

## ◆ Simplex_key

 typedef unspecified FilteredComplex::Simplex_key

Data stored for each simplex.

Must be an integer type.

## ◆ assign_key()

 void FilteredComplex::assign_key ( Simplex_handle sh, Simplex_key n )

Store a number for a simplex, which can later be retrieved with key(sh).

This is never called on null_simplex().

## ◆ boundary_simplex_range()

 Boundary_simplex_range FilteredComplex::boundary_simplex_range ( Simplex_handle sh )

Returns a range giving access to all simplices of the boundary of a simplex, i.e. the set of codimension 1 subsimplices of the Simplex.

If the simplex is $$[v_0, \cdots ,v_d]$$, with canonical orientation induced by $$v_0 < \cdots < v_d$$, the iterator enumerates the simplices of the boundary in the order: $$[v_0,\cdots,\widehat{v_i},\cdots,v_d]$$ for $$i$$ from 0 to d

We note that the alternate sum of the simplices given by the iterator gives the chains corresponding to the boundary of the simplex.

## ◆ filtration()

 Filtration_value FilteredComplex::filtration ( Simplex_handle sh )

Returns the filtration value of a simplex.

If sh is null_simplex(), returns the maximal value of the filtration function on the complex.

## ◆ filtration_simplex_range()

 Filtration_simplex_range FilteredComplex::filtration_simplex_range ( )

Returns a range over the simplices of the complex in the order of the filtration.

.begin() and .end() return type Filtration_simplex_iterator.

## ◆ key()

 Simplex_key FilteredComplex::key ( Simplex_handle sh )

Returns the number stored for a simplex by assign_key.

This is never called on null_simplex().

## ◆ num_simplices()

 size_t FilteredComplex::num_simplices ( )

Returns the number of simplices in the complex.

Does not count the empty simplex.

## ◆ simplex()

 Simplex_handle FilteredComplex::simplex ( size_t idx )

Returns the simplex that has index idx in the filtration.

This is only called on valid indices.

The documentation for this struct was generated from the following file: