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

Concepts

conceptAbstractChainComplex
 The concept AbstractChainComplex describes the requirements for (topological) chain complexes associated to abstract complexes used in the concept HDVF. More...
 
conceptFiltration
 The concept Filtration describes the requirements for persistent filtrations associated to persistent homology computation. More...
 
conceptGeometricChainComplex
 The concept GeometricChainComplex refines the concept AbstractChainComplex and describes the requirements for (topological) chain complexes associated to geometric complexes used in the concept HDVF. It adds to AbstractChainComplex methods to get vertex coordinates. More...
 
conceptHDVF
 The concept HDVF describes the requirements for Homological Discrete Vector Fields (HDVF for short) , a theory of computational homology unifying discrete Morse theory and effective homology. HDVFs were introduced by Aldo Gonzalez-Lorenzo in his PhD (see [AGL,2017], [AGL,2016]). More...
 
conceptHDVFTraits
 The concept HDVFTraits describes the requirements for geometric traits classes used in this package. More...
 
conceptSparseChain
 The concept SparseChain describes the requirements for sparse vectors (called sparse chains in homology) optimized for topological computations. More precisely, SparseChain provides all the operations on chains required by the SparseMatrix concept. More...
 
conceptSparseMatrix
 The concept SparseMatrix describes the requirements for sparse matrices optimized for topological computations. Traditionally, sparse matrices data structures encode non zero coefficients of (sparse) matrices in order to optimize either matrices memory footprint, or linear algebra operations (which usually comes to optimize iterators over non zero coefficients and access to coefficients). However, topological operations require slightly different features: More...
 
class AbstractChainComplex dimension ()
 Returns the dimension of the complex, that is, the largest dimension of cells.
 
size_t number_of_cells (int q)
 Returns the number of cells of dimension q.
 
const vector< Column_matrix > & boundary_matrices () const
 Returns all boundary matrices.
 
const Column_matrixboundary_matrix (int q) const
 Returns the boundary matrix of dimension q (ie. the matrix of \(\partial_q\)).
 
Column_chain d (size_t id_cell, int q)
 Returns the boundary of the cell of index id_cell in dimension q.
 
Row_chain cod (size_t id_cell, int q)
 Returns the co-boundary of the cell of index id_cell in dimension q.
 
std::vector< size_t > bottom_faces (size_t id_cell, int q) const
 Returns the vertices of a given cell (that is, the indices of its faces of dimension 0).
 
template<typename CoefficientR , int StorageF>
Column_chain cofaces_chain (SparseChain< CoefficientR, StorageF > chain, int q) const
 Returns the cofaces of a given chain in dimension q.
 

Function Documentation

◆ boundary_matrices()

const vector< Column_matrix > & boundary_matrices ( ) const

#include <Concepts/AbstractChainComplex.h>

Returns all boundary matrices.

The function returns constant reference to a vector of column-major sparse matrices. The q-th element of this vector is the matrix of \(\partial_q\), which gives the boundary of cells of dimension q(as a linear combination of q-1 cells).

◆ boundary_matrix()

const Column_matrix & boundary_matrix ( int  q) const

#include <Concepts/AbstractChainComplex.h>

Returns the boundary matrix of dimension q (ie. the matrix of \(\partial_q\)).

The function returns a column-major sparse matrices.

◆ cod()

Row_chain cod ( size_t  id_cell,
int  q 
)

#include <Concepts/AbstractChainComplex.h>

Returns the co-boundary of the cell of index id_cell in dimension q.

This boundary is a finite linear combination of cells of dimension q+1. It is encoded as a row-major chain (which maps each cell with a non-zero coefficient to this coefficient). This co-boundary is thus the id_cell-th row of the boundary matrix in dimension q+1.

◆ cofaces_chain()

template<typename CoefficientR , int StorageF>
Column_chain cofaces_chain ( SparseChain< CoefficientR, StorageF >  chain,
int  q 
) const

#include <Concepts/AbstractChainComplex.h>

Returns the cofaces of a given chain in dimension q.

The resulting chain, whatever the storage format of the input, is column-major, lies in dimension q+1 and is null if this dimension exceeds the dimension of the complex.

Template Parameters
CoefficientRCoefficientRing of the chain.
StorageFStorageFormat of the chain.

◆ d()

Column_chain d ( size_t  id_cell,
int  q 
)

#include <Concepts/AbstractChainComplex.h>

Returns the boundary of the cell of index id_cell in dimension q.

This boundary is a finite linear combination of cells of dimension q-1. It is encoded as a column-major chain (which maps each cell with a non-zero coefficient to this coefficient). This boundary is thus the id_cell-th column of the boundary matrix in dimension q.

◆ number_of_cells()

size_t number_of_cells ( int  q)

#include <Concepts/AbstractChainComplex.h>

Returns the number of cells of dimension q.

If q is negative of larger than the dimension of the complex, returns 0.