Filtration Interface
Ripserer.AbstractFiltration
— TypeAbstractFiltration{T, S<:AbstractSimplex}
A filtration is used to find the edges in filtration and to determine diameters of simplices.
T
is the distance type, accessible by dist_type
and S
is the simplex type.
Interface
n_vertices(::AbstractFiltration)
edges(::AbstractFiltration)
diam(::AbstractFiltration, vertices)
diam(::AbstractFiltration, ::AbstractSimplex, ::Any, ::Any)
- only used whensimplex_type
is anIndexedSimplex
.birth(::AbstractFiltration, v)
- optional, defaults to returningzero(T)
.threshold(::AbstractFiltration)
- optional, defaults to returningmissing
.simplex_type(::AbstractFiltration, dim)
Ripserer.n_vertices
— Methodn_vertices(filtration::AbstractFiltration)
Return the number of vertices in filtration
.
Ripserer.edges
— Methodedges(filtration::AbstractFiltration)
Get edges in distance matrix in filtration
, sorted by decresing length and increasing combinatorial index. Edges should be of type simplex_type
(filtration, 1)`.
Ripserer.diam
— Methoddiam(::AbstractFiltration, vertices)
Get the diameter of a simplex with the vertex set vertices
. Should return missing
if vertices
do not form a valid simplex.
Ripserer.diam
— Methoddiam(::AbstractFiltration, simplex, vertices, new_vertex)
Get the diameter of coface of a Simplex
that is formed by adding new_vertex
to vertices
. Should return missing
if new simplex is not valid.
This functions is used with the coboundary
function for IndexedSimplex
PersistenceDiagrams.birth
— Methodbirth(::AbstractFiltration, v)
Get the birth time of vertex v
in filtration. Defaults to 0.
PersistenceDiagrams.threshold
— Methodthreshold(::AbstractFiltration)
Get the threshold of filtration. This is the maximum diameter a simplex in the filtration can have. Used only for placing the infinity line in plotting.
Ripserer.simplex_type
— Functionsimplex_type(::AbstractFiltration, d)
Return the d
-dimensional simplex type in the filtration.
Ripserer.AbstractRipsFiltration
— TypeAbstractRipsFiltration{T, S} <: AbstractFiltration{T, S}
An abstract Vietoris-Rips filtration. Its subtypes can overload dist(::AbstractRipsFiltration{T}, u, v)::Union{T, Missing}
instead of diam
. diam(::AbstractRipsFiltration, ...)
defaults to maximum dist
among vertices.
Ripserer.dist
— Functiondist(::AbstractRipsFiltration, u, v)
Return the distance between vertices u
and v
. If the distance is higher than the threshold, return missing
instead.