[Ann] Sparips.jl: Practical sparsification of Rips complexes (topological data analysis)

In terms of intervals, couldn’t we just use GitHub - JuliaMath/IntervalSets.jl: Interval Sets for Julia? It seems fully featured and has the option Interval{:closed, :open} which I think is the one we need.

# Vanilla simplex. Add more simplex types for simplices with attached data.
struct Simplex{N, U} <: AbstractSimplex{N, U}
    vertices ::NTuple{N, U}
    # maybe the constructor should sort the vertices?
end

Nice! I’d skip sorting the vertices on construction. The reason is somewhat convoluted. If you implement the “inductive construction” of Vietoris Rips from a filtered graph (which seems like a reasonably efficient one according to this paper) you are able to get simplices that are already sorted in lexicographic order if you take the vertices from the biggest to the smallest (so an example simplex would be like (31, 25, 1)). This turns out to be very convenient (to look for a specific simplex in the complex) and I’d rather not give it up. An alternative would be to sort the vertices from small to big and then implement an efficient antilexicographic comparison for simplices, but it seems more complicated.