Skip to content

A small but developing tool for fast computation of Persistence Diagrams of Flag Filtrations.

Notifications You must be signed in to change notification settings

ArGintum/PersistenceHomology

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Persistence Calculator

A small but developing tool for fast computation of Persistence Diagram of Flag Filtrations. This work was inspired by Ripser and uses some of the key ideas gathered there.

Here implemented basic algorithm of persistence diagram computation with some additional speed-ups inspired by other researches in computational topology:

Requirments:

This solution requires C++ template libraries Boost (version >= 1.71.0), and Intel Thread Building Blocks

Building:

This project requires a C++17 compiler. Here is how this project can be obtained and built:

git clone https://github.com/ArGintum/PersistenceHomology.git
cd PersistenceHomology
make

Running:

Example

$ ./PersistenceCalculator input.txt [options]

Note that file

Available options:

  • --output: name of file for output data (by default output.txt )
  • --format: use the specified file format for the input. The following formats are supported:
    • matrix: lower triangular distance matrix (default choice). Only space symbols as separators is acceptable at this version.
    • cloud: points cloud in a euclidean space. Only space symbols as separators is acceptable at this version.
  • --dim k: Compute persistence homology up to dimension k (by defult 2)
  • --threshold t: compute Rips complexes up to diameter t
  • --prep: forced usage of Edge Collapse preprocessing (by default the necessity of preprocessing derived from input data and other parameters)
  • --noprep: forbid usage of Edge Collapse preprocessing (by default the necessity of preprocessing derived from input data and other parameters)
  • --threads <n>: number of threads for parallel computations (by default program uses all available CPU)

These options can be specified in any order.

Some examples:

$ ./PersistenceCalculator examples/H3N2_300.txt --output sample_output.txt --dim 4 --threads 3

...

$ ./PersistenceCalculator examples/H3N2_300.txt --dim 2 --threads 1 --noprep

...

$ ./PersistenceCalculator examples/H3N2_300.txt

Plans for future (aka TODO list)

  • Improve performance of Edge Collapse procedure by changing model of graph representation
  • Enable usage of apparent pairs shortcut from Ripser
  • Add option of representative cycles for persistent homology
  • Add support of prime fields other than Z/2Z
  • ...
  • Consider possible use of more "topological" way to simplify filtrations (maybe by exploring spectral sequences)

Version

1.0.3 July 2021.

About

A small but developing tool for fast computation of Persistence Diagrams of Flag Filtrations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published