CGAL 6.2 - Homological Discrete Vector Fields
Loading...
Searching...
No Matches

Definition

The concept Filtration describes the requirements for persistent filtrations associated to persistent homology computation.

A filtration is associated to an AbstractChainComplex. Each cell is equiped with a scalar value (called its degree) and the filtration is an enumeration of cells in any dimension by increasing degrees.

A filtration class provides:

  • an iterator to visit all cells by increasing degrees.
  • getters to get the degree of a cell, and the cell of a given index along the filtration.
  • an overload of operator<<() to output filtrations.

Cells are indexed along each dimension and thus identified by their index together with their dimension.

Has models
CGAL::Homological_discrete_vector_field::Filtration_core<ChainComplex,Degree>
CGAL::Homological_discrete_vector_field::Filtration_lower_star<ChainComplex,Degree>
Examples
HDVF/main_per_hdvf.cpp.

Concepts

conceptFiltration_iter_value
 Value type of the filtration iterator. More...
 
conceptiterator
 The iterator over filtration. More...
 

Public Types

typedef unspecified_type Complex
 Type of the underlying complex.
 
typedef unspecified_type Degree
 (Scalar) type of degrees (model of RealEmbeddable).
 
typedef Complex::Coefficient_ring Coefficient_ring
 Type of coefficients used to compute homology.
 
typedef std::pair< size_t, int > Cell
 Type for indexing uniquely a cell.
 

Public Member Functions

iterator begin ()
 Iterator to the beginning of the filtration.
 
iterator end ()
 Returns a past-the-end iterator.
 
size_t size () const
 Gets the filtration size.
 
Cell cell_index_dimension (size_t i) const
 Gets the cell (that is cell index and dimension) at the index i of the filtration.
 
Degree degree (size_t i) const
 Gets the degree of the ith element of the filtration.
 
bool is_valid () const
 Checks that a filtration is valid.
 

Protected Types

typedef SparseMatrix< Coefficient_ring, CGAL::OSM::COLUMNColumn_matrix
 Type of column-major sparse matrices.
 
typedef SparseMatrix< Coefficient_ring, CGAL::OSM::ROWRow_matrix
 Type of row-major sparse matrices.
 
typedef SparseChain< Coefficient_ring, CGAL::OSM::COLUMNColumn_chain
 Type of column-major chains.
 
typedef SparseChain< Coefficient_ring, CGAL::OSM::ROWRow_chain
 Type of row-major chains.
 

Related Functions

(Note that these are not member functions.)

istream & operator>> (istream &in, Filtration &f)
 extracts a filtration from a stream.
 
ostream & operator<< (ostream &out, const Filtration &f)
 Inserts a filtration into a stream.
 

Member Typedef Documentation

◆ Cell

typedef std::pair<size_t, int> Filtration::Cell

Type for indexing uniquely a cell.

As stated in AbstractChainComplex, cells are identified by their dimension, together with their index along this dimension. The type Cell stores this pair:

  • First element of the pair: index of the cell.
  • Second element of the pair: dimension of the cell.

Member Function Documentation

◆ is_valid()

bool Filtration::is_valid ( ) const

Checks that a filtration is valid.

Checks that cells are ordered in increasing degrees and all cells have indices larger than their faces.