Computational Homology
This package provides various computational homology tools for cellular complexes.
Documentation | Build Status |
---|---|
Installation
For Julia 1.1+, add BoffinStuff registry in package manager, and proceed with installation:
pkg> registry add https://github.com/wildart/BoffinStuff.git
pkg> add ComputationalHomology
Features
-
Cells
- Simplex
- Cube
- CW
-
Chains for specified PID
-
Complexes
- Simplicial
- CW
-
Filtrations
-
Constructions
- Čech
- Vietoris-Rips
- Witness
-
Homology
- Simplicial
- Persistent
-
Persistence
- Barcodes / Diagrams
- Persistence Landscape
- Persistence Image
- Distances
- Wasserstein
- Tropical Coordinates
Example
julia> using ComputationalHomology
julia> X = rand(3,10); # generate dataset
julia> cplx, w = vietorisrips(X, 0.4) # generate Vietoris-Rips (VR) complex
(SimplicialComplex((10, 12, 4)), Dict(0=>[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],2=>[0.338893, 0.28014, 0.384243, 0.380966],1=>[0.338893, 0.321811, 0.304665, 0.310862, 0.27196, 0.28014, 0.366947, 0.380966, 0.191768, 0.384243, 0.359153, 0.365016]))
julia> flt = filtration(cplx, w) # construct filtration complex from VR complex
Filtration(SimplicialComplex((10, 12, 4)))
julia> ph = persistenthomology(flt, TwistReduction) # create persistent homology object with specific computation method
PersistentHomology[Filtration(SimplicialComplex((10, 12, 4))) with ComputationalHomology.TwistReduction]
julia> group(ph, 0) # calculate 0-homology group
2
julia> group(ph, 1) # calculate 1-homology group
3
TODO
- Distances for persistence diagrams
- Landscape standard deviation