Classes | |
struct | Gudhi::persistence_diagram::DiagramPoint |
Concept of point in a persistence diagram. std::get<0>(point) must return the birth of the corresponding component and std::get<1>(point) its death. Both should be convertible to double . A valid implementation of this concept is std::pair<double,double>. Death should be larger than birth, death can be std::numeric_limits<double>::infinity() for components which stay alive. More... | |
struct | Gudhi::persistence_diagram::PersistenceDiagram |
Concept of persistence diagram. It is a range of DiagramPoint . std::begin(diagram) and std::end(diagram) must return corresponding iterators. More... | |
Functions | |
template<typename Persistence_diagram1 , typename Persistence_diagram2 > | |
double | Gudhi::persistence_diagram::bottleneck_distance (const Persistence_diagram1 &diag1, const Persistence_diagram2 &diag2, double e=(std::numeric_limits< double >::min)()) |
Function to compute the Bottleneck distance between two persistence diagrams. More... | |
The bottleneck distance measures the similarity between two persistence diagrams. It is the shortest distance b for which there exists a perfect matching between the points of the two diagrams (completed with all the points on the diagonal in order to ignore cardinality mismatchs) such that any couple of matched points are at distance at most b, where the distance between points is the sup norm in \(\mathbb{R}^2\) (not the Euclidean distance).
This implementation is based on ideas from "Geometry Helps in Bottleneck Matching and Related Problems" [30]. Another relevant publication, although it was not used is "Geometry Helps to Compare Persistence Diagrams" [38].
The following example explains how the distance is computed:
This other example computes the bottleneck distance from 2 persistence diagrams:
double Gudhi::persistence_diagram::bottleneck_distance | ( | const Persistence_diagram1 & | diag1, |
const Persistence_diagram2 & | diag2, | ||
double | e = (std::numeric_limits<double>::min)() |
||
) |
Function to compute the Bottleneck distance between two persistence diagrams.
Persistence_diagram1,Persistence_diagram2 | models of the concept PersistenceDiagram . |
[in] | diag1 | The first persistence diagram. |
[in] | diag2 | The second persistence diagram. |
[in] | e | If If Thus, by default, |