summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md37
1 files changed, 19 insertions, 18 deletions
diff --git a/README.md b/README.md
index 4aae03d..c8f82cc 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,13 @@
# Ripser
-Copyright © 2015–2016 [Ulrich Bauer].
+Copyright © 2015–2018 [Ulrich Bauer].
### Description
Ripser is a lean C++ code for the computation of Vietoris–Rips persistence barcodes. It can do just this one thing, but does it extremely well.
-To see a live demo of Ripser's capabilities, go to [live.ripser.org]. The computation happens inside the browser (using [PNaCl] on Chrome and JavaScript via [Emscripten] on other browsers).
+To see a live demo of Ripser's capabilities, go to [live.ripser.org]. The computation happens inside the browser (using [PNaCl] on Chrome and JavaScript via [Emscripten] on other browsers).
The main features of Ripser:
@@ -20,19 +20,20 @@ Currently, Ripser outperforms other codes ([Dionysus], [DIPHA], [GUDHI], [Perseu
Input formats currently supported by Ripser:
- - comma-separated values lower triangular distance matrix (preferred)
+ - comma-separated values lower triangular distance matrix
- comma-separated values upper triangular distance matrix (MATLAB output from the function `pdist`)
- comma-separated values full distance matrix
- [DIPHA] distance matrix data
- point cloud data
-Ripser's efficiency is based on a few important concepts and principles:
+Ripser's efficiency is based on a few important concepts and principles, building on key previous and concurrent developments by other researchers in computational topology:
- - Compute persistent *co*homology
+ - Compute persistent *co*homology (as suggested by [Vin de Silva, Dmitriy Morozov, and Mikael Vejdemo-Johansson](https://doi.org/10.1088/0266-5611/27/12/124003))
- Don't compute information that is never needed
- (for the experts: employ the *clearing* optimization, aka *persistence with a twist*)
- - Don't store information that can be readily recomputed
- - Take obvious shortcuts (*apparent persistence pairs*)
+ (for the experts: employ the *clearing* optimization, aka *persistence with a twist*, as suggested by [Chao Chen and Michael Kerber](http://www.geometrie.tugraz.at/kerber/kerber_papers/ck-phcwat-11.pdf))
+ - Don't store information that can be readily recomputed (in particular, the boundary matrix and the reduced boundary matrix)
+ - Take computational shortcuts (*apparent* and *emergent persistence pairs*)
+ - If no threshold is specified, choose the *enclosing radius* as the threshold, from which on homology is guaranteed to be trivial (as suggested by [Greg Henselman-Petrusek](https://github.com/Eetion/Eirene.jl))
### Version
@@ -72,14 +73,14 @@ A Makefile is provided with some variants of the above options. Use `make all` t
The input is given either in a file whose name is passed as an argument, or through stdin. The following options are supported at the command line:
- `--format`: use the specified file format for the input. The following formats are supported:
- - `lower-distance` (default if no format is specified): lower triangular distance matrix; a comma (or whitespace, or other non-numerical character) separated list of the distance matrix entries below the diagonal, sorted lexicographically by row index, then column index
- - `upper-distance`: upper triangular distance matrix; similar to the previous, but for the entries above the diagonal; suitable for output from the MATLAB functions `pdist` or `seqpdist`, exported to a CSV file
- - `distance`: full distance matrix; similar to the above, but for all entries of the distance matrix
- - `dipha`: DIPHA distance matrix as described on the [DIPHA] website
- - `point-cloud`: point cloud; a comma (or whitespace, or other non-numerical character) separated list of coordinates of the points in some Euclidean space, one point per line
- - `--dim k`: compute persistent homology up to dimension *k*
- - `--threshold t`: compute Rips complexes up to diameter *t*
- - `--modulus p`: compute homology with coefficients in the prime field Z/*p*Z (only available when built with the option `USE_COEFFICIENTS`)
+ - `lower-distance` (default if no format is specified): lower triangular distance matrix; a comma (or whitespace, or other non-numerical character) separated list of the distance matrix entries below the diagonal, sorted lexicographically by row index, then column index.
+ - `upper-distance`: upper triangular distance matrix; similar to the previous, but for the entries above the diagonal; suitable for output from the MATLAB functions `pdist` or `seqpdist`, exported to a CSV file.
+ - `distance`: full distance matrix; similar to the above, but for all entries of the distance matrix. One line per row of the matrix; only the part below the diagonal is actually read.
+ - `dipha`: DIPHA distance matrix as described on the [DIPHA] website.
+ - `point-cloud`: point cloud; a comma (or whitespace, or other non-numerical character) separated list of coordinates of the points in some Euclidean space, one point per line.
+ - `--dim k`: compute persistent homology up to dimension *k*.
+ - `--threshold t`: compute Rips complexes up to diameter *t*.
+ - `--modulus p`: compute homology with coefficients in the prime field Z/*p*Z (only available when built with the option `USE_COEFFICIENTS`).
@@ -96,7 +97,7 @@ Prototype implementations are already avaliable; please contact the author if on
### License
-Ripser is licensed under the [LGPL] 3.0. Please contact the author if you want to use Ripser in your software under a different license.
+Ripser is licensed under the [MIT] license (`COPYING.txt`), with an extra clause (`CONTRIBUTING.txt`) clarifying the license for modifications released without an explicit written license agreement. Please contact the author if you want to use Ripser in your software under a different license.
[Ulrich Bauer]: <http://ulrich-bauer.org>
[live.ripser.org]: <http://live.ripser.org>
@@ -109,4 +110,4 @@ Ripser is licensed under the [LGPL] 3.0. Please contact the author if you want t
[Perseus]: <http://www.sas.upenn.edu/~vnanda/perseus/>
[GUDHI]: <http://gudhi.gforge.inria.fr>
[sparsehash]: <https://github.com/sparsehash/sparsehash>
-[LGPL]: <https://www.gnu.org/licenses/lgpl> \ No newline at end of file
+[MIT]: <https://opensource.org/licenses/mit-license.php> \ No newline at end of file