# Persistence A topological data analysis library for Haskell. This library is motivated by flexibility when it comes to the type of data being analyzed. If your data comes with a meaningful binary function into into an ordered set, you can use Persistence to analyze your data. The library also provides functions for analyzing directed\/undirected, weighted\/unweighted graphs. Visit https://hackage.haskell.org/package/Persistence to see the documentation for the stable version. There is also documentation in each module. GitHub: https://github.com/Ebanflo42/Persistence If you have the Haskell `stack` tool installed, compile and run tests with `stack test` (you may have to expose the modules `Util` and `Matrix` in the file `Persistence.cabal` to get it to work). # Learning about Topological Data Analysis Computing simplicial homology: https://jeremykun.com/2013/04/10/computing-homology/ Constructing the Vietoris-Rips complex: https://pdfs.semanticscholar.org/e503/c24dcc7a8110a001ae653913ccd064c1044b.pdf Constructing the Cech complex: https://www.academia.edu/15228439/Efficient_construction_of_the_%C4%8Cech_complex Computing persistent homology: http://geometry.stanford.edu/papers/zc-cph-05/zc-cph-05.pdf The algorithm for finding the directed clique complex is inspired by the pseudocode in the supplementary materials of this paper: https://www.frontiersin.org/articles/10.3389/fncom.2017.00048/full Computing and working with persistence landscapes: https://academic.csuohio.edu/bubenik_p/papers/persistenceLandscapes.pdf # Major TODOs: `Testing.hs`: 1) More tests for Persistence landscape functions. 2) Make some filtrations whose vertices don't all have index 0 and test persistent homology on them. `SimplicialComplex.hs`: 1) Fix simplicial homology over the integers. 2) Implement construction of the Cech complex (n points form an (n-1)-simplex if balls of a certain radius centered at each of the points intersect). 3) Implement construction of the alpha-complex (sub-complex of the Delaunay triangulation where the vertices of every simplex are within a certain distance). `Matrix.hs`: 1) This module ought to be completely rewritten for the sake of performance. See each of the files for an overview of its inner-workings.