Simple wrapper to Ripser in Julia with almost no features and minimal dependencies.
Ripser.jl should work, but is not maintained. If you are interested in this project, it might be worth taking a look at Ripserer.jl.
This package is unregistered. To install, run it with:
(v1.0) pkg> add https://github.com/mtsch/Ripser.jl#master
(v1.0) pkg> test Ripser
ripser(dists; modulus = 2, dim_max = 1, threshold = Inf, cocycles = false)
Run Ripser on a dists, and a square (sparse) matrix of T<:AbstractFloat
.
dists
: the distance matrix. Matrix can be sparse.dim_max
: compute persistent homology up to this dimension.threshold
: compute Rips complexes up to this diameter.modulus
: compute homology with coefficients in the prime field Z/pZ, where p is the value given.cocycles
: return representative cocycles.
Returns a Vector{Vector{Tuple{T, T}}}
and if cocycles
is set to true
, a
Vector{Vector{Tuple{Vector{Int64},Int64}}}
.
The first part of the result contains a persistence diagram per each dimension (and is of
length dim_max + 1
). Each persistence diagram is a vector of tuples, where a tuple is the
persistence pair (birth, death)
. A single cocycle is represented as a vector of (simplex, value)
pairs. They are only included if the value
is nonzero. Each persistence pair gets
a corresponding cocycle.
Note that representative cocycles for the zeroth dimension are not computed.