summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--benchmarks/Dockerfile321
-rw-r--r--benchmarks/output/clifford_torus_50000.ripser.txt23
-rw-r--r--benchmarks/output/dragon-2.ripser-no-emergent.txt23
-rw-r--r--benchmarks/output/dragon-2.ripser.txt23
-rw-r--r--benchmarks/output/fractal-r.ripser.txt23
-rw-r--r--benchmarks/output/o3_1024.dipha-multicore.txt23
-rw-r--r--benchmarks/output/o3_1024.dipha.txt23
-rw-r--r--benchmarks/output/o3_1024.gudhi.txt23
-rw-r--r--benchmarks/output/o3_1024.ripser-no-emergent.txt23
-rw-r--r--benchmarks/output/o3_1024.ripser-store-reduced.txt23
-rw-r--r--benchmarks/output/o3_1024.ripser-use-reduced.txt23
-rw-r--r--benchmarks/output/o3_1024.ripser.txt23
-rw-r--r--benchmarks/output/o3_4096.gudhi.txt23
-rw-r--r--benchmarks/output/o3_4096.ripser-no-emergent.txt23
-rw-r--r--benchmarks/output/o3_4096.ripser.txt23
-rw-r--r--benchmarks/output/random.ripser-no-emergent.txt23
-rw-r--r--benchmarks/output/random.ripser-store-reduced.txt23
-rw-r--r--benchmarks/output/random.ripser-use-reduced.txt23
-rw-r--r--benchmarks/output/random.ripser.txt23
-rw-r--r--benchmarks/output/sphere_3_192.ripser-no-emergent.txt23
-rw-r--r--benchmarks/output/sphere_3_192.ripser-store-reduced.txt23
-rw-r--r--benchmarks/output/sphere_3_192.ripser-use-reduced.txt23
-rw-r--r--benchmarks/output/sphere_3_192.ripser.txt23
-rw-r--r--examples/almostlinear4.lower_distance_matrix3
-rw-r--r--examples/almostlinear4a.lower_distance_matrix3
-rw-r--r--examples/almostlinear4b.lower_distance_matrix3
-rw-r--r--examples/almostlinear4c.lower_distance_matrix3
-rw-r--r--examples/linear5.lower_distance_matrix4
-rw-r--r--examples/test.lower_distance_matrix4
-rw-r--r--examples/test.upper_distance_matrix5
-rw-r--r--examples/test2.lower_distance_matrix5
-rw-r--r--examples/test2.upper_distance_matrix5
-rw-r--r--prettyprint.hpp445
-rw-r--r--ripser.cpp9
-rw-r--r--ripser.xcodeproj/project.pbxproj276
36 files changed, 8 insertions, 1586 deletions
diff --git a/README.md b/README.md
index 2ce826f..51029bf 100644
--- a/README.md
+++ b/README.md
@@ -79,7 +79,7 @@ The input is given either in a file whose name is passed as an argument, or thro
- `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.
- - `binary`: lower distance matrix in binary file format; a sequence of the distance matrix entries below the diagonal in 64 bit double format (IEEE 754, little endian).
+ - `binary`: lower distance matrix in binary file format; a sequence of the distance matrix entries below the diagonal in 32 bit double format (IEEE 754, little endian).
- `sparse`: sparse triplet format; a whitespace separated list of entries of a sparse distance matrix, one entry per line, each of the form *i j d(i,j)* specifying the distance between points *i* and *j*. Each pair of points should appear in the file at most once.
- `--dim k`: compute persistent homology up to dimension *k*.
- `--threshold t`: compute Rips complexes up to diameter *t*.
diff --git a/benchmarks/Dockerfile b/benchmarks/Dockerfile
deleted file mode 100644
index e349648..0000000
--- a/benchmarks/Dockerfile
+++ /dev/null
@@ -1,321 +0,0 @@
-# FROM ubuntu:latest
-
-#FROM ubuntu:18.10 as benchmark-setup
-# RUN echo "deb http://archive.ubuntu.com/ubuntu/ cosmic main restricted universe" > /etc/apt/sources.list
-
-FROM ubuntu:19.04 as benchmark-setup
-
-RUN apt-get update && \
- apt-get install -y \
- apt-utils \
- cmake \
- curl \
- g++ \
- git \
- gudhi-utils \
- hdf5-tools \
- libcgal-dev \
- libboost-dev \
- libboost-filesystem-dev \
- libboost-test-dev \
- libgmp3-dev \
- libmpfr-dev \
- libtbb-dev \
- libopenmpi-dev \
- make \
- python-minimal \
- python-pip \
- time \
- unzip \
- && rm -rf /var/lib/apt/lists/*
-
-WORKDIR /external
-
-RUN curl -LO https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.0-linux-x86_64.tar.gz \
- && tar xf julia-1.1.0-linux-x86_64.tar.gz
-ENV PATH="${PATH}:/external/julia-1.1.0/bin"
-
-RUN julia --eval 'using Pkg; Pkg.add("Plotly"); Pkg.add("Eirene"); using Eirene;'
-
-
-WORKDIR /benchmark
-COPY sphere_3_192_points.dat .
-COPY sphere_3_192.complex .
-COPY o3_1024.txt .
-COPY o3_1024_1.8.dipha .
-COPY o3_4096.txt .
-# COPY o3_4096_1.4.dipha .
-COPY clifford_torus_50000.points.txt .
-# COPY dragon_2000.dipha .
-
-
-
-RUN curl -LO https://github.com/n-otter/PH-roadmap/raw/master/data_sets/roadmap_datasets_distmat/fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt \
-&& curl -LO https://github.com/n-otter/PH-roadmap/raw/master/data_sets/roadmap_datasets_distmat/dipha/fractal_9_5_2_random.bin \
-\
-&& curl -LO https://github.com/n-otter/PH-roadmap/raw/master/data_sets/roadmap_datasets_point_cloud/dragon_vrip.ply.txt_2000_.txt \
-\
-# && curl -LO https://github.com/n-otter/PH-roadmap/raw/master/data_sets/roadmap_datasets_distmat/human_gene_distmat.txt \
-\
-&& curl -LO https://github.com/n-otter/PH-roadmap/raw/master/data_sets/roadmap_datasets_point_cloud/random_point_cloud_50_16_.txt \
-&& curl -LO https://github.com/n-otter/PH-roadmap/raw/master/data_sets/roadmap_datasets_distmat/dipha/random_50_16.bin
-
-RUN (echo "OFF\n2000 0 0" && cat dragon_vrip.ply.txt_2000_.txt) >dragon_vrip.ply.txt_2000_.off \
-&& (echo "OFF\n50 0 0" && cat random_point_cloud_50_16_.txt) >random_point_cloud_50_16_.off \
-&& (echo "OFF\n1024 0 0" && cat sphere_3_192_points.dat) > sphere_3_192.off \
-&& (echo "OFF\n1024 0 0" && cat o3_1024.txt) >o3_1024.off \
-&& (echo "OFF\n4096 0 0" && cat o3_4096.txt) >o3_4096.off \
-&& (echo "nOFF\n4 50000 0 0" && cat clifford_torus_50000.points.txt) >clifford_torus_50000.points.off
-
-
-FROM benchmark-setup as benchmark-ripser
-
-WORKDIR /ripser
-RUN git clone https://github.com/Ripser/ripser.git \
-&& cd ripser \
-&& git checkout dev \
-&& make
-
-ENV PATH="${PATH}:/ripser/ripser"
-
-WORKDIR /benchmark
-RUN time -v -o sphere_3_192.ripser.txt ripser sphere_3_192_points.dat --format point-cloud --dim 2
-RUN time -v -o o3_1024.ripser.txt ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2
-RUN time -v -o o3_4096.ripser.txt ripser o3_4096.txt --format point-cloud --dim 3 --threshold 1.4 --ratio 2
-RUN time -v -o clifford_torus_50000.ripser.txt ripser clifford_torus_50000.points.txt --format point-cloud --dim 2 --threshold .15 --ratio 2
-
-RUN time -v -o random.ripser.txt ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7
-RUN time -v -o fractal-r.ripser.txt ripser fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt --dim 2
-RUN time -v -o dragon-2.ripser.txt ripser dragon_vrip.ply.txt_2000_.txt --format point-cloud --dim 1
-# RUN time -v -o genome.ripser.txt ripser human_gene_distmat.txt --dim 1
-
-
-FROM benchmark-ripser as benchmark-ripser-no-emergent
-
-WORKDIR /ripser/ripser
-RUN git pull && git checkout benchmarks/disable-emergent-pairs \
-&& make
-
-WORKDIR /benchmark
-RUN time -v -o sphere_3_192.ripser-no-emergent.txt ripser sphere_3_192_points.dat --format point-cloud --dim 2
-RUN time -v -o random.ripser-no-emergent.txt ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7
-RUN time -v -o fractal-r.ripser-no-emergent.txt ripser fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt --dim 2
-RUN time -v -o dragon-2.ripser-no-emergent.txt ripser dragon_vrip.ply.txt_2000_.txt --format point-cloud --dim 1
-# RUN time -v -o genome.ripser-no-emergent.txt ripser human_gene_distmat.txt --dim 1
-RUN time -v -o o3_1024.ripser-no-emergent.txt ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2
-RUN time -v -o o3_4096.ripser-no-emergent.txt ripser o3_4096.txt --format point-cloud --dim 3 --threshold 1.4 --ratio 2
-RUN time -v -o clifford_torus_50000.ripser-no-emergent.txt ripser clifford_torus_50000.points.txt --format point-cloud --dim 2 --threshold .15 --ratio 2
-
-
-FROM benchmark-ripser as benchmark-ripser-store-reduced
-
-WORKDIR /ripser/ripser
-RUN git pull && git checkout benchmarks/store-reduced-matrix \
-&& make
-
-WORKDIR /benchmark
-RUN time -v -o sphere_3_192.ripser-store-reduced.txt ripser sphere_3_192_points.dat --format point-cloud --dim 2
-RUN time -v -o random.ripser-store-reduced.txt ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7
-# RUN time -v -o fractal-r.ripser-store-reduced.txt ripser fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt --dim 2
-# RUN time -v -o dragon-2.ripser-store-reduced.txt ripser dragon_vrip.ply.txt_2000_.txt --format point-cloud --dim 1
-# RUN time -v -o genome.ripser-store-reduced.txt ripser human_gene_distmat.txt --dim 1
-RUN time -v -o o3_1024.ripser-store-reduced.txt ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2
-# RUN time -v -o o3_4096.ripser-store-reduced.txt ripser o3_4096.txt --format point-cloud --dim 3 --threshold 1.4 --ratio 2
-# RUN time -v -o clifford_torus_50000.ripser-store-reduced.txt ripser clifford_torus_50000.points.txt --format point-cloud --dim 2 --threshold .15 --ratio 2
-
-
-FROM benchmark-ripser as benchmark-ripser-use-reduced
-
-WORKDIR /ripser/ripser
-RUN git pull && git checkout benchmarks/use-reduced-matrix \
-&& make
-
-WORKDIR /benchmark
-RUN time -v -o sphere_3_192.ripser-use-reduced.txt ripser sphere_3_192_points.dat --format point-cloud --dim 2
-RUN time -v -o random.ripser-use-reduced.txt ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7
-# RUN time -v -o fractal-r.ripser-use-reduced.txt ripser fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt --dim 2
-# RUN time -v -o dragon-2.ripser-use-reduced.txt ripser dragon_vrip.ply.txt_2000_.txt --format point-cloud --dim 1
-# RUN time -v -o genome.ripser-use-reduced.txt ripser human_gene_distmat.txt --dim 1
-RUN time -v -o o3_1024.ripser-use-reduced.txt ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2
-# RUN time -v -o o3_4096.ripser-use-reduced.txt ripser o3_4096.txt --format point-cloud --dim 3 --threshold 1.4 --ratio 2
-# RUN time -v -o clifford_torus_50000.ripser-use-reduced.txt ripser clifford_torus_50000.points.txt --format point-cloud --dim 2 --threshold .15 --ratio 2
-
-
-FROM benchmark-setup as benchmark-gudhi
-
-# WORKDIR /gudhi
-#
-# RUN curl -LO "https://gforge.inria.fr/frs/download.php/file/37696/2018-09-04-14-25-00_GUDHI_2.3.0.tar.gz" \
-# && tar xf 2018-09-04-14-25-00_GUDHI_2.3.0.tar.gz \
-# && cd 2018-09-04-14-25-00_GUDHI_2.3.0 \
-# && mkdir build \
-# && cd build \
-# && cmake -DCMAKE_BUILD_TYPE="Release" .. \
-# && make rips_distance_matrix_persistence
-#
-# ENV PATH="${PATH}:/gudhi/2018-09-04-14-25-00_GUDHI_2.3.0/build/utilities/Rips_complex"
-#
-# WORKDIR /benchmark
-# RUN time -v -o sphere_3_192.gudhi.txt rips_distance_matrix_persistence -d3 -p2 sphere_3_192.distance_matrix
-
-WORKDIR /benchmark
-RUN time -v -o sphere_3_192.gudhi.txt gudhi-rips-persistence -d3 -p2 sphere_3_192.off >sphere_3_192.gudhi.out.txt
-# RUN time -v -o fractal-r.gudhi.txt gudhi-rips-distance-matrix-persistence -d3 -p2 fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt >fractal-r.gudhi.out.txt
-RUN time -v -o o3_1024.gudhi.txt gudhi-rips-persistence -d4 -p2 -r 1.8 o3_1024.off >o3_1024.gudhi.out.txt
-RUN time -v -o o3_4096.gudhi.txt gudhi-rips-persistence -d4 -p2 -r 1.4 o3_4096.off >o3_4096.gudhi.out.txt
-RUN time -v -o clifford_torus_50000.gudhi.txt gudhi-rips-persistence -d3 -p2 -r 0.15 clifford_torus_50000.points.off >clifford_torus_50000.gudhi.out.txt
-
-
-FROM benchmark-setup as benchmark-dipha
-
-WORKDIR /dipha
-
-RUN git clone https://github.com/DIPHA/dipha.git \
-&& cd dipha \
-&& mkdir build \
-&& cd build \
-&& cmake .. \
-&& make
-
-ENV PATH="${PATH}:/dipha/dipha/build"
-
-WORKDIR /benchmark
-RUN time -v -o sphere_3_192.dipha.txt dipha --dual --benchmark --upper_dim 3 sphere_3_192.complex sphere_3_192.dipha.diagram
-RUN time -v -o o3_1024.dipha.txt dipha --dual --benchmark --upper_dim 4 o3_1024_1.8.dipha o3_1024_1.8.dipha.diagram
-# RUN time -v -o o3_4096.dipha.txt dipha --dual --benchmark --upper_dim 4 o3_4096_1.4.dipha o3_4096_1.4.dipha.diagram
-# RUN time -v -o dragon-2.dipha.txt dipha --dual --benchmark --upper_dim 2 dragon_2000.dipha dragon_2000.dipha.diagram
-
-
-
-# FROM benchmark-dipha as benchmark-dipha-multicore
-
-RUN time -v -o sphere_3_192.dipha-multicore.txt mpiexec --allow-run-as-root --mca btl_vader_single_copy_mechanism none \
-dipha --dual --benchmark --upper_dim 3 sphere_3_192.complex sphere_3_192.dipha-multicore.diagram
-
-RUN time -v -o o3_1024.dipha-multicore.txt mpiexec --allow-run-as-root --mca btl_vader_single_copy_mechanism none \
-dipha --dual --benchmark --upper_dim 4 o3_1024_1.8.dipha o3_1024_1.8.dipha-multicore.diagram
-
-
-### FROM benchmark-setup as benchmark-eirene037
-###
-### WORKDIR /eirene
-###
-### RUN curl -LO https://julialang-s3.julialang.org/bin/linux/x64/0.6/julia-0.6.4-linux-x86_64.tar.gz \
-### && tar xf julia-0.6.4-linux-x86_64.tar.gz
-###
-### RUN curl -LO "http://gregoryhenselman.org/eirene/ewExternalFiles/Eirene0_3_7.zip" \
-### && unzip Eirene0_3_7.zip \
-### && cd Eirene0_3_7
-###
-### # ENV PATH="${PATH}:/eirene/julia-9d11f62bcb/bin"
-###
-### # RUN julia --eval 'Pkg.clone("https://github.com/Eetion/Eirene.jl.git"); using Eirene'
-### # RUN julia --eval ' \
-### # Pkg.clone("https://github.com/bnels/PlotlyJS.jl.git"); \
-### # Pkg.checkout("PlotlyJS","fix-jsstring"); \
-### # Pkg.add("Eirene");'
-### RUN /eirene/julia-9d11f62bcb/bin/julia --eval ' \
-### Pkg.clone("https://github.com/bnels/PlotlyJS.jl.git"); \
-### Pkg.checkout("PlotlyJS","fix-jsstring");'
-### RUN /eirene/julia-9d11f62bcb/bin/julia --eval 'Pkg.add("Distances"); Pkg.add("JLD"); Pkg.add("Blink"); Pkg.add("Plotly"); Pkg.add("MultivariateStats");'
-### RUN /eirene/julia-9d11f62bcb/bin/julia --load /eirene/Eirene0_3_7/Eirene0_3_7_mutable.jl --eval 'eirene([0 1; 1 0]);'
-###
-### WORKDIR /benchmark
-### RUN time -v -o sphere_3_192.eirene037.txt \
-### /eirene/julia-9d11f62bcb/bin/julia --load /eirene/Eirene0_3_7/Eirene0_3_7_mutable.jl --eval 'eirene([0 1; 1 0]); p = readdlm("sphere_3_192.distance_matrix"); \
-### tic(); eirene(p, record="none", bettimax=2); toc();' >sphere_3_192.eirene037.out.txt
-###
-### RUN time -v -o dragon-2.eirene037.txt \
-### /eirene/julia-9d11f62bcb/bin/julia --load /eirene/Eirene0_3_7/Eirene0_3_7_mutable.jl --eval 'eirene([0 1; 1 0]); p = readdlm("dragon_vrip.ply.txt_2000_.txt"); \
-### tic(); eirene(p, rowsare="points", record="none", bettimax=1); toc();' >dragon-2.eirene037.out.txt
-### RUN time -v -o fractal-r.eirene037.txt \
-### /eirene/julia-9d11f62bcb/bin/julia --load /eirene/Eirene0_3_7/Eirene0_3_7_mutable.jl --eval 'eirene([0 1; 1 0]); p = readdlm("fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt"); \
-### tic(); eirene(p, record="none", bettimax=2); toc();' >fractal-r.eirene037.out.txt
-### RUN time -v -o random.eirene037.txt \
-### /eirene/julia-9d11f62bcb/bin/julia --load /eirene/Eirene0_3_7/Eirene0_3_7_mutable.jl --eval 'eirene([0 1; 1 0]); p = readdlm("random_point_cloud_50_16_.txt"); \
-### tic(); eirene(p, rowsare="points", record="none", bettimax=7); toc();' >random.eirene037.out.txt
-
-
-
-FROM benchmark-setup as benchmark-eirene
-
-WORKDIR /eirene
-
-#RUN curl -LO https://julialang-s3.julialang.org/bin/linux/x64/1.1/julia-1.1.0-linux-x86_64.tar.gz \
-#&& tar xf julia-1.1.0-linux-x86_64.tar.gz
-#ENV PATH="${PATH}:/eirene/julia-1.1.0/bin"
-
-#RUN julia --eval 'using Pkg; Pkg.add("Plotly"); Pkg.add("Eirene"); using Eirene'
-
-WORKDIR /benchmark
-
-RUN time -v -o sphere_3_192.eirene.txt \
- julia --eval 'maxdim = 2; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = transpose(readdlm("sphere_3_192_points.dat")); result = eirene(d, model="pc", record="none", maxdim=maxdim))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' >sphere_3_192.eirene.out.txt
-
-RUN time -v -o o3_1024.eirene.txt \
- julia --eval 'maxdim = 3; maxrad = 1.8; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = transpose(readdlm("o3_1024.txt")); result = eirene(d, model="pc", record="none", maxdim=maxdim, maxrad=maxrad))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' > o3_1024.eirene.out.txt
-
-RUN time -v -o o3_4096.eirene.txt \
- julia --eval 'maxdim = 3; maxrad = 1.4; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = transpose(readdlm("o3_4096.txt")); result = eirene(d, model="pc", record="none", maxdim=maxdim, maxrad=maxrad))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' > o3_4096.eirene.out.txt
-
-# RUN time -v -o clifford_torus_50000.points.eirene.txt \
-# julia --eval 'maxdim = 2; maxrad = .15; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = transpose(readdlm("clifford_torus_50000.points.txt")); result = eirene(d, model="pc", record="none", maxdim=maxdim, maxrad=maxrad))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' > clifford_torus_50000.eirene.out.txt
-
-RUN time -v -o dragon-2.eirene.txt \
- julia --eval 'maxdim = 1; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = transpose(readdlm("dragon_vrip.ply.txt_2000_.txt")); result = eirene(d, model="pc", record="none", maxdim=maxdim))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' >dragon-2.eirene.out.txt
-
-RUN time -v -o fractal-r.eirene.txt \
- julia --eval 'maxdim = 2; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = (m->(m+transpose(m))/2)(readdlm("fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt")); result = eirene(d, record="none", maxdim=maxdim))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' >fractal-r.eirene.out.txt
-
-RUN time -v -o random.eirene.txt \
- julia --eval 'maxdim = 7; maxrad = 1.7753855751520569; using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed (d = transpose(readdlm("random_point_cloud_50_16_.txt")); result = eirene(d, model="pc", record="none", maxdim=maxdim, maxrad=maxrad))); for i in 0:maxdim print("dim $(i): "); show(stdout, "text/plain", (barcode(result , dim = i))); println(); end' >random.eirene.out.txt
-
-#
-# using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed result=eirene(transpose(readdlm("/Users/uli/Bitbucket/ripser/examples/o3_1024.txt")), model="pc", record="none", maxdim=3, maxrad=1.8))
-# using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed result=eirene(transpose(readdlm("/Users/uli/Bitbucket/ripser/examples/o3_2048.txt")), model="pc", record="none", maxdim=3, maxrad=1.6))
-# using Eirene; using DelimitedFiles; eirene([0 1; 1 0]); println(@elapsed result=eirene(transpose(readdlm("/Users/uli/Bitbucket/ripser/examples/o3_4096.txt")), model="pc", record="none", maxdim=3, maxrad=1.4))
-#
-
-FROM benchmark-setup as benchmark-dionysus2
-
-WORKDIR /dionysus2
-
-RUN pip install numpy scipy dionysus
-
-# RUN git clone https://github.com/mrzv/dionysus.git \
-# && cd dionysus \
-# && mkdir build \
-# && cd build \
-# && cmake .. \
-# && make rips-pairwise
-#
-# ENV PATH="${PATH}:/dionysus2/dionysus/build/examples/rips"
-
-WORKDIR /benchmark
-# RUN time -v -o sphere_3_192.dionysus-cpp.txt rips-pairwise sphere_3_192_points.dat -s3
-
-#RUN time -v -o sphere.dionysus-py.txt python -c 'import dionysus as d; from numpy import loadtxt, inf; import math; from scipy.spatial.distance import squareform; \
-# d.cohomology_persistence(d.fill_rips(squareform(loadtxt("sphere_3_192.distance_matrix")), 3, inf));'
-
-#RUN time -v -o dragon-2.dionysus-py.txt python -c 'import dionysus as d; from numpy import loadtxt, inf; import math; from scipy.spatial.distance import squareform; \
-# d.cohomology_persistence(d.fill_rips(loadtxt("dragon_vrip.ply.txt_2000_.txt"), 2, inf));'
-
-#RUN time -v -o fractal.dionysus-py.txt python -c 'import dionysus as d; from numpy import loadtxt, inf; import math; from scipy.spatial.distance import squareform; \
-# d.cohomology_persistence(d.fill_rips(squareform(loadtxt("fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt")), 3, inf));'
-
-
-FROM benchmark-setup as benchmark-output
-
-COPY --from=benchmark-ripser /benchmark /benchmark
-COPY --from=benchmark-gudhi /benchmark /benchmark
-COPY --from=benchmark-dipha /benchmark /benchmark
-COPY --from=benchmark-eirene /benchmark /benchmark
-# COPY --from=benchmark-eirene037 /benchmark /benchmark
-COPY --from=benchmark-dionysus2 /benchmark /benchmark
-
-COPY --from=benchmark-ripser-no-emergent /benchmark /benchmark
-COPY --from=benchmark-ripser-store-reduced /benchmark /benchmark
-COPY --from=benchmark-ripser-use-reduced /benchmark /benchmark
-
-RUN ls -l /benchmark
-
diff --git a/benchmarks/output/clifford_torus_50000.ripser.txt b/benchmarks/output/clifford_torus_50000.ripser.txt
deleted file mode 100644
index 756f7ae..0000000
--- a/benchmarks/output/clifford_torus_50000.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser clifford_torus_50000.points.txt --format point-cloud --dim 2 --threshold .15 --ratio 2"
- User time (seconds): 129.19
- System time (seconds): 12.06
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 2:21.35
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 8593448
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 4911670
- Voluntary context switches: 7
- Involuntary context switches: 1506
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/dragon-2.ripser-no-emergent.txt b/benchmarks/output/dragon-2.ripser-no-emergent.txt
deleted file mode 100644
index 2693a67..0000000
--- a/benchmarks/output/dragon-2.ripser-no-emergent.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser dragon_vrip.ply.txt_2000_.txt --format point-cloud --dim 1"
- User time (seconds): 40.30
- System time (seconds): 0.32
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:40.66
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 257872
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 150721
- Voluntary context switches: 1
- Involuntary context switches: 462
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/dragon-2.ripser.txt b/benchmarks/output/dragon-2.ripser.txt
deleted file mode 100644
index 2319b97..0000000
--- a/benchmarks/output/dragon-2.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser dragon_vrip.ply.txt_2000_.txt --format point-cloud --dim 1"
- User time (seconds): 1.78
- System time (seconds): 0.19
- Percent of CPU this job got: 91%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.14
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 257864
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 150721
- Voluntary context switches: 2
- Involuntary context switches: 337
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/fractal-r.ripser.txt b/benchmarks/output/fractal-r.ripser.txt
deleted file mode 100644
index f245ae3..0000000
--- a/benchmarks/output/fractal-r.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser fractal_9_5_2_random_edge_list.txt_0.19795_distmat.txt --dim 2"
- User time (seconds): 13.98
- System time (seconds): 1.01
- Percent of CPU this job got: 98%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:15.16
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 1803484
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 768895
- Voluntary context switches: 1
- Involuntary context switches: 1041
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.dipha-multicore.txt b/benchmarks/output/o3_1024.dipha-multicore.txt
deleted file mode 100644
index 9f29568..0000000
--- a/benchmarks/output/o3_1024.dipha-multicore.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "mpiexec --allow-run-as-root --mca btl_vader_single_copy_mechanism none dipha --dual --benchmark --upper_dim 4 o3_1024_1.8.dipha o3_1024_1.8.dipha-multicore.diagram"
- User time (seconds): 315.48
- System time (seconds): 2.79
- Percent of CPU this job got: 787%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:40.42
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 288828
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 6
- Minor (reclaiming a frame) page faults: 947004
- Voluntary context switches: 6113
- Involuntary context switches: 7400
- Swaps: 0
- File system inputs: 0
- File system outputs: 16560
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.dipha.txt b/benchmarks/output/o3_1024.dipha.txt
deleted file mode 100644
index 59f810a..0000000
--- a/benchmarks/output/o3_1024.dipha.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "dipha --dual --benchmark --upper_dim 4 o3_1024_1.8.dipha o3_1024_1.8.dipha.diagram"
- User time (seconds): 45.89
- System time (seconds): 1.32
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:47.53
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 1412520
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 1413259
- Voluntary context switches: 742
- Involuntary context switches: 393
- Swaps: 0
- File system inputs: 0
- File system outputs: 128
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.gudhi.txt b/benchmarks/output/o3_1024.gudhi.txt
deleted file mode 100644
index 27f1c3e..0000000
--- a/benchmarks/output/o3_1024.gudhi.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "gudhi-rips-persistence -d4 -p2 -r 1.8 o3_1024.off"
- User time (seconds): 13.51
- System time (seconds): 0.17
- Percent of CPU this job got: 179%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.63
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 624828
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 1
- Minor (reclaiming a frame) page faults: 155463
- Voluntary context switches: 116
- Involuntary context switches: 1252
- Swaps: 0
- File system inputs: 232
- File system outputs: 72
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.ripser-no-emergent.txt b/benchmarks/output/o3_1024.ripser-no-emergent.txt
deleted file mode 100644
index 2c2f69a..0000000
--- a/benchmarks/output/o3_1024.ripser-no-emergent.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2"
- User time (seconds): 5.24
- System time (seconds): 0.10
- Percent of CPU this job got: 100%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.32
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 178804
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 60265
- Voluntary context switches: 1
- Involuntary context switches: 48
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.ripser-store-reduced.txt b/benchmarks/output/o3_1024.ripser-store-reduced.txt
deleted file mode 100644
index 4fc65cf..0000000
--- a/benchmarks/output/o3_1024.ripser-store-reduced.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2"
- User time (seconds): 6.50
- System time (seconds): 0.64
- Percent of CPU this job got: 98%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.23
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 1239792
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 514672
- Voluntary context switches: 1
- Involuntary context switches: 100
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.ripser-use-reduced.txt b/benchmarks/output/o3_1024.ripser-use-reduced.txt
deleted file mode 100644
index c93a2c0..0000000
--- a/benchmarks/output/o3_1024.ripser-use-reduced.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2"
- User time (seconds): 6.37
- System time (seconds): 0.56
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:06.94
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 1239568
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 514607
- Voluntary context switches: 1
- Involuntary context switches: 111
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_1024.ripser.txt b/benchmarks/output/o3_1024.ripser.txt
deleted file mode 100644
index 1d2f195..0000000
--- a/benchmarks/output/o3_1024.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser o3_1024.txt --format point-cloud --dim 3 --threshold 1.8 --ratio 2"
- User time (seconds): 2.07
- System time (seconds): 0.11
- Percent of CPU this job got: 96%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.26
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 178776
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 60267
- Voluntary context switches: 1
- Involuntary context switches: 81
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_4096.gudhi.txt b/benchmarks/output/o3_4096.gudhi.txt
deleted file mode 100644
index 876507a..0000000
--- a/benchmarks/output/o3_4096.gudhi.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "gudhi-rips-persistence -d4 -p2 -r 1.4 o3_4096.off"
- User time (seconds): 675.55
- System time (seconds): 25.12
- Percent of CPU this job got: 198%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 5:52.73
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 18652260
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 4663080
- Voluntary context switches: 42
- Involuntary context switches: 12700
- Swaps: 0
- File system inputs: 0
- File system outputs: 296
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_4096.ripser-no-emergent.txt b/benchmarks/output/o3_4096.ripser-no-emergent.txt
deleted file mode 100644
index 4b1ff37..0000000
--- a/benchmarks/output/o3_4096.ripser-no-emergent.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser o3_4096.txt --format point-cloud --dim 3 --threshold 1.4 --ratio 2"
- User time (seconds): 174.88
- System time (seconds): 2.05
- Percent of CPU this job got: 100%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 2:56.88
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 3861344
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 1672013
- Voluntary context switches: 1
- Involuntary context switches: 594
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/o3_4096.ripser.txt b/benchmarks/output/o3_4096.ripser.txt
deleted file mode 100644
index 2a5d61e..0000000
--- a/benchmarks/output/o3_4096.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser o3_4096.txt --format point-cloud --dim 3 --threshold 1.4 --ratio 2"
- User time (seconds): 60.51
- System time (seconds): 2.02
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 1:02.54
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 3861300
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 1672012
- Voluntary context switches: 2
- Involuntary context switches: 434
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/random.ripser-no-emergent.txt b/benchmarks/output/random.ripser-no-emergent.txt
deleted file mode 100644
index cfdb8fc..0000000
--- a/benchmarks/output/random.ripser-no-emergent.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7"
- User time (seconds): 13.82
- System time (seconds): 0.22
- Percent of CPU this job got: 100%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.02
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 339084
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 150128
- Voluntary context switches: 2
- Involuntary context switches: 102
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/random.ripser-store-reduced.txt b/benchmarks/output/random.ripser-store-reduced.txt
deleted file mode 100644
index efeb5b5..0000000
--- a/benchmarks/output/random.ripser-store-reduced.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7"
- User time (seconds): 15.99
- System time (seconds): 0.92
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:16.92
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 1366796
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 961778
- Voluntary context switches: 1
- Involuntary context switches: 242
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/random.ripser-use-reduced.txt b/benchmarks/output/random.ripser-use-reduced.txt
deleted file mode 100644
index d767db9..0000000
--- a/benchmarks/output/random.ripser-use-reduced.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7"
- User time (seconds): 16.15
- System time (seconds): 1.03
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:17.26
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 1366620
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 964013
- Voluntary context switches: 1
- Involuntary context switches: 118
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/random.ripser.txt b/benchmarks/output/random.ripser.txt
deleted file mode 100644
index ac9822c..0000000
--- a/benchmarks/output/random.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser random_point_cloud_50_16_.txt --format point-cloud --dim 7"
- User time (seconds): 6.25
- System time (seconds): 0.18
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:06.43
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 339084
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 150127
- Voluntary context switches: 1
- Involuntary context switches: 62
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/sphere_3_192.ripser-no-emergent.txt b/benchmarks/output/sphere_3_192.ripser-no-emergent.txt
deleted file mode 100644
index 37134ce..0000000
--- a/benchmarks/output/sphere_3_192.ripser-no-emergent.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser sphere_3_192_points.dat --format point-cloud --dim 2"
- User time (seconds): 5.49
- System time (seconds): 0.06
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.56
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 201136
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 66913
- Voluntary context switches: 1
- Involuntary context switches: 62
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/sphere_3_192.ripser-store-reduced.txt b/benchmarks/output/sphere_3_192.ripser-store-reduced.txt
deleted file mode 100644
index 22e6702..0000000
--- a/benchmarks/output/sphere_3_192.ripser-store-reduced.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser sphere_3_192_points.dat --format point-cloud --dim 2"
- User time (seconds): 13.80
- System time (seconds): 1.77
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:15.57
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 4288268
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 1860885
- Voluntary context switches: 1
- Involuntary context switches: 240
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/sphere_3_192.ripser-use-reduced.txt b/benchmarks/output/sphere_3_192.ripser-use-reduced.txt
deleted file mode 100644
index 66d80ac..0000000
--- a/benchmarks/output/sphere_3_192.ripser-use-reduced.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser sphere_3_192_points.dat --format point-cloud --dim 2"
- User time (seconds): 13.58
- System time (seconds): 1.76
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:15.34
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 4288276
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 1865102
- Voluntary context switches: 1
- Involuntary context switches: 193
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/benchmarks/output/sphere_3_192.ripser.txt b/benchmarks/output/sphere_3_192.ripser.txt
deleted file mode 100644
index d6f9446..0000000
--- a/benchmarks/output/sphere_3_192.ripser.txt
+++ /dev/null
@@ -1,23 +0,0 @@
- Command being timed: "ripser sphere_3_192_points.dat --format point-cloud --dim 2"
- User time (seconds): 1.04
- System time (seconds): 0.04
- Percent of CPU this job got: 99%
- Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.08
- Average shared text size (kbytes): 0
- Average unshared data size (kbytes): 0
- Average stack size (kbytes): 0
- Average total size (kbytes): 0
- Maximum resident set size (kbytes): 201136
- Average resident set size (kbytes): 0
- Major (requiring I/O) page faults: 0
- Minor (reclaiming a frame) page faults: 66924
- Voluntary context switches: 1
- Involuntary context switches: 57
- Swaps: 0
- File system inputs: 0
- File system outputs: 0
- Socket messages sent: 0
- Socket messages received: 0
- Signals delivered: 0
- Page size (bytes): 4096
- Exit status: 0
diff --git a/examples/almostlinear4.lower_distance_matrix b/examples/almostlinear4.lower_distance_matrix
deleted file mode 100644
index 0992677..0000000
--- a/examples/almostlinear4.lower_distance_matrix
+++ /dev/null
@@ -1,3 +0,0 @@
-1,
-2,1,
-1,1.9,1
diff --git a/examples/almostlinear4a.lower_distance_matrix b/examples/almostlinear4a.lower_distance_matrix
deleted file mode 100644
index c0e94e6..0000000
--- a/examples/almostlinear4a.lower_distance_matrix
+++ /dev/null
@@ -1,3 +0,0 @@
-1,
-2,1,
-3,4,5
diff --git a/examples/almostlinear4b.lower_distance_matrix b/examples/almostlinear4b.lower_distance_matrix
deleted file mode 100644
index c990b9b..0000000
--- a/examples/almostlinear4b.lower_distance_matrix
+++ /dev/null
@@ -1,3 +0,0 @@
-1,
-2,1,
-3,5,4
diff --git a/examples/almostlinear4c.lower_distance_matrix b/examples/almostlinear4c.lower_distance_matrix
deleted file mode 100644
index da2bb0f..0000000
--- a/examples/almostlinear4c.lower_distance_matrix
+++ /dev/null
@@ -1,3 +0,0 @@
-1,
-2,1,
-4,3,5
diff --git a/examples/linear5.lower_distance_matrix b/examples/linear5.lower_distance_matrix
deleted file mode 100644
index 9a6f670..0000000
--- a/examples/linear5.lower_distance_matrix
+++ /dev/null
@@ -1,4 +0,0 @@
-1,
-2,1,
-3,4,5,
-
diff --git a/examples/test.lower_distance_matrix b/examples/test.lower_distance_matrix
deleted file mode 100644
index e1aac02..0000000
--- a/examples/test.lower_distance_matrix
+++ /dev/null
@@ -1,4 +0,0 @@
-1,
-2,3,
-4,5,6,
-7,8,9,10
diff --git a/examples/test.upper_distance_matrix b/examples/test.upper_distance_matrix
deleted file mode 100644
index 274f252..0000000
--- a/examples/test.upper_distance_matrix
+++ /dev/null
@@ -1,5 +0,0 @@
-1,
-3,4
-4,3,1,
-3,4,3,1
-1,3,4,3,1
diff --git a/examples/test2.lower_distance_matrix b/examples/test2.lower_distance_matrix
deleted file mode 100644
index 4bb81a4..0000000
--- a/examples/test2.lower_distance_matrix
+++ /dev/null
@@ -1,5 +0,0 @@
-1,
-3,1,
-4,3,1,
-3,4,3,1,
-1,3,4,3,1
diff --git a/examples/test2.upper_distance_matrix b/examples/test2.upper_distance_matrix
deleted file mode 100644
index 9d4e39e..0000000
--- a/examples/test2.upper_distance_matrix
+++ /dev/null
@@ -1,5 +0,0 @@
-1,3,4,3,1,
- 1,3,4,3,
- 1,3,4,
- 1,3,
- 1
diff --git a/prettyprint.hpp b/prettyprint.hpp
deleted file mode 100644
index 6bf2543..0000000
--- a/prettyprint.hpp
+++ /dev/null
@@ -1,445 +0,0 @@
-// Copyright Louis Delacroix 2010 - 2014.
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// A pretty printing library for C++
-//
-// Usage:
-// Include this header, and operator<< will "just work".
-
-#ifndef H_PRETTY_PRINT
-#define H_PRETTY_PRINT
-
-#include <cstddef>
-#include <iterator>
-#include <memory>
-#include <ostream>
-#include <set>
-#include <tuple>
-#include <type_traits>
-#include <unordered_set>
-#include <utility>
-#include <valarray>
-
-namespace pretty_print
-{
- namespace detail
- {
- // SFINAE type trait to detect whether T::const_iterator exists.
-
- struct sfinae_base
- {
- using yes = char;
- using no = yes[2];
- };
-
- template <typename T>
- struct has_const_iterator : private sfinae_base
- {
- private:
- template <typename C> static yes & test(typename C::const_iterator*);
- template <typename C> static no & test(...);
- public:
- static const bool value = sizeof(test<T>(nullptr)) == sizeof(yes);
- using type = T;
- };
-
- template <typename T>
- struct has_begin_end : private sfinae_base
- {
- private:
- template <typename C>
- static yes & f(typename std::enable_if<
- std::is_same<decltype(static_cast<typename C::const_iterator(C::*)() const>(&C::begin)),
- typename C::const_iterator(C::*)() const>::value>::type *);
-
- template <typename C> static no & f(...);
-
- template <typename C>
- static yes & g(typename std::enable_if<
- std::is_same<decltype(static_cast<typename C::const_iterator(C::*)() const>(&C::end)),
- typename C::const_iterator(C::*)() const>::value, void>::type*);
-
- template <typename C> static no & g(...);
-
- public:
- static bool const beg_value = sizeof(f<T>(nullptr)) == sizeof(yes);
- static bool const end_value = sizeof(g<T>(nullptr)) == sizeof(yes);
- };
-
- } // namespace detail
-
-
- // Holds the delimiter values for a specific character type
-
- template <typename TChar>
- struct delimiters_values
- {
- using char_type = TChar;
- const char_type * prefix;
- const char_type * delimiter;
- const char_type * postfix;
- };
-
-
- // Defines the delimiter values for a specific container and character type
-
- template <typename T, typename TChar>
- struct delimiters
- {
- using type = delimiters_values<TChar>;
- static const type values;
- };
-
-
- // Functor to print containers. You can use this directly if you want
- // to specificy a non-default delimiters type. The printing logic can
- // be customized by specializing the nested template.
-
- template <typename T,
- typename TChar = char,
- typename TCharTraits = ::std::char_traits<TChar>,
- typename TDelimiters = delimiters<T, TChar>>
- struct print_container_helper
- {
- using delimiters_type = TDelimiters;
- using ostream_type = std::basic_ostream<TChar, TCharTraits>;
-
- template <typename U>
- struct printer
- {
- static void print_body(const U & c, ostream_type & stream)
- {
- using std::begin;
- using std::end;
-
- auto it = begin(c);
- const auto the_end = end(c);
-
- if (it != the_end)
- {
- for ( ; ; )
- {
- stream << *it;
-
- if (++it == the_end) break;
-
- if (delimiters_type::values.delimiter != NULL)
- stream << delimiters_type::values.delimiter;
- }
- }
- }
- };
-
- print_container_helper(const T & container)
- : container_(container)
- { }
-
- inline void operator()(ostream_type & stream) const
- {
- if (delimiters_type::values.prefix != NULL)
- stream << delimiters_type::values.prefix;
-
- printer<T>::print_body(container_, stream);
-
- if (delimiters_type::values.postfix != NULL)
- stream << delimiters_type::values.postfix;
- }
-
- private:
- const T & container_;
- };
-
- // Specialization for pairs
-
- template <typename T, typename TChar, typename TCharTraits, typename TDelimiters>
- template <typename T1, typename T2>
- struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<std::pair<T1, T2>>
- {
- using ostream_type = print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type;
-
- static void print_body(const std::pair<T1, T2> & c, ostream_type & stream)
- {
- stream << c.first;
- if (print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter != NULL)
- stream << print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter;
- stream << c.second;
- }
- };
-
- // Specialization for tuples
-
- template <typename T, typename TChar, typename TCharTraits, typename TDelimiters>
- template <typename ...Args>
- struct print_container_helper<T, TChar, TCharTraits, TDelimiters>::printer<std::tuple<Args...>>
- {
- using ostream_type = print_container_helper<T, TChar, TCharTraits, TDelimiters>::ostream_type;
- using element_type = std::tuple<Args...>;
-
- template <std::size_t I> struct Int { };
-
- static void print_body(const element_type & c, ostream_type & stream)
- {
- tuple_print(c, stream, Int<0>());
- }
-
- static void tuple_print(const element_type &, ostream_type &, Int<sizeof...(Args)>)
- {
- }
-
- static void tuple_print(const element_type & c, ostream_type & stream,
- typename std::conditional<sizeof...(Args) != 0, Int<0>, std::nullptr_t>::type)
- {
- stream << std::get<0>(c);
- tuple_print(c, stream, Int<1>());
- }
-
- template <std::size_t N>
- static void tuple_print(const element_type & c, ostream_type & stream, Int<N>)
- {
- if (print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter != NULL)
- stream << print_container_helper<T, TChar, TCharTraits, TDelimiters>::delimiters_type::values.delimiter;
-
- stream << std::get<N>(c);
-
- tuple_print(c, stream, Int<N + 1>());
- }
- };
-
- // Prints a print_container_helper to the specified stream.
-
- template<typename T, typename TChar, typename TCharTraits, typename TDelimiters>
- inline std::basic_ostream<TChar, TCharTraits> & operator<<(
- std::basic_ostream<TChar, TCharTraits> & stream,
- const print_container_helper<T, TChar, TCharTraits, TDelimiters> & helper)
- {
- helper(stream);
- return stream;
- }
-
-
- // Basic is_container template; specialize to derive from std::true_type for all desired container types
-
- template <typename T>
- struct is_container : public std::integral_constant<bool,
- detail::has_const_iterator<T>::value &&
- detail::has_begin_end<T>::beg_value &&
- detail::has_begin_end<T>::end_value> { };
-
- template <typename T, std::size_t N>
- struct is_container<T[N]> : std::true_type { };
-
- template <std::size_t N>
- struct is_container<char[N]> : std::false_type { };
-
- template <typename T>
- struct is_container<std::valarray<T>> : std::true_type { };
-
- template <typename T1, typename T2>
- struct is_container<std::pair<T1, T2>> : std::true_type { };
-
- template <typename ...Args>
- struct is_container<std::tuple<Args...>> : std::true_type { };
-
-
- // Default delimiters
-
- template <typename T> struct delimiters<T, char> { static const delimiters_values<char> values; };
- template <typename T> const delimiters_values<char> delimiters<T, char>::values = { "[", ", ", "]" };
- template <typename T> struct delimiters<T, wchar_t> { static const delimiters_values<wchar_t> values; };
- template <typename T> const delimiters_values<wchar_t> delimiters<T, wchar_t>::values = { L"[", L", ", L"]" };
-
-
- // Delimiters for (multi)set and unordered_(multi)set
-
- template <typename T, typename TComp, typename TAllocator>
- struct delimiters< ::std::set<T, TComp, TAllocator>, char> { static const delimiters_values<char> values; };
-
- template <typename T, typename TComp, typename TAllocator>
- const delimiters_values<char> delimiters< ::std::set<T, TComp, TAllocator>, char>::values = { "{", ", ", "}" };
-
- template <typename T, typename TComp, typename TAllocator>
- struct delimiters< ::std::set<T, TComp, TAllocator>, wchar_t> { static const delimiters_values<wchar_t> values; };
-
- template <typename T, typename TComp, typename TAllocator>
- const delimiters_values<wchar_t> delimiters< ::std::set<T, TComp, TAllocator>, wchar_t>::values = { L"{", L", ", L"}" };
-
- template <typename T, typename TComp, typename TAllocator>
- struct delimiters< ::std::multiset<T, TComp, TAllocator>, char> { static const delimiters_values<char> values; };
-
- template <typename T, typename TComp, typename TAllocator>
- const delimiters_values<char> delimiters< ::std::multiset<T, TComp, TAllocator>, char>::values = { "{", ", ", "}" };
-
- template <typename T, typename TComp, typename TAllocator>
- struct delimiters< ::std::multiset<T, TComp, TAllocator>, wchar_t> { static const delimiters_values<wchar_t> values; };
-
- template <typename T, typename TComp, typename TAllocator>
- const delimiters_values<wchar_t> delimiters< ::std::multiset<T, TComp, TAllocator>, wchar_t>::values = { L"{", L", ", L"}" };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- struct delimiters< ::std::unordered_set<T, THash, TEqual, TAllocator>, char> { static const delimiters_values<char> values; };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- const delimiters_values<char> delimiters< ::std::unordered_set<T, THash, TEqual, TAllocator>, char>::values = { "{", ", ", "}" };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- struct delimiters< ::std::unordered_set<T, THash, TEqual, TAllocator>, wchar_t> { static const delimiters_values<wchar_t> values; };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- const delimiters_values<wchar_t> delimiters< ::std::unordered_set<T, THash, TEqual, TAllocator>, wchar_t>::values = { L"{", L", ", L"}" };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- struct delimiters< ::std::unordered_multiset<T, THash, TEqual, TAllocator>, char> { static const delimiters_values<char> values; };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- const delimiters_values<char> delimiters< ::std::unordered_multiset<T, THash, TEqual, TAllocator>, char>::values = { "{", ", ", "}" };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- struct delimiters< ::std::unordered_multiset<T, THash, TEqual, TAllocator>, wchar_t> { static const delimiters_values<wchar_t> values; };
-
- template <typename T, typename THash, typename TEqual, typename TAllocator>
- const delimiters_values<wchar_t> delimiters< ::std::unordered_multiset<T, THash, TEqual, TAllocator>, wchar_t>::values = { L"{", L", ", L"}" };
-
-
- // Delimiters for pair and tuple
-
- template <typename T1, typename T2> struct delimiters<std::pair<T1, T2>, char> { static const delimiters_values<char> values; };
- template <typename T1, typename T2> const delimiters_values<char> delimiters<std::pair<T1, T2>, char>::values = { "(", ", ", ")" };
- template <typename T1, typename T2> struct delimiters< ::std::pair<T1, T2>, wchar_t> { static const delimiters_values<wchar_t> values; };
- template <typename T1, typename T2> const delimiters_values<wchar_t> delimiters< ::std::pair<T1, T2>, wchar_t>::values = { L"(", L", ", L")" };
-
- template <typename ...Args> struct delimiters<std::tuple<Args...>, char> { static const delimiters_values<char> values; };
- template <typename ...Args> const delimiters_values<char> delimiters<std::tuple<Args...>, char>::values = { "(", ", ", ")" };
- template <typename ...Args> struct delimiters< ::std::tuple<Args...>, wchar_t> { static const delimiters_values<wchar_t> values; };
- template <typename ...Args> const delimiters_values<wchar_t> delimiters< ::std::tuple<Args...>, wchar_t>::values = { L"(", L", ", L")" };
-
-
- // Type-erasing helper class for easy use of custom delimiters.
- // Requires TCharTraits = std::char_traits<TChar> and TChar = char or wchar_t, and MyDelims needs to be defined for TChar.
- // Usage: "cout << pretty_print::custom_delims<MyDelims>(x)".
-
- struct custom_delims_base
- {
- virtual ~custom_delims_base() { }
- virtual std::ostream & stream(::std::ostream &) = 0;
- virtual std::wostream & stream(::std::wostream &) = 0;
- };
-
- template <typename T, typename Delims>
- struct custom_delims_wrapper : custom_delims_base
- {
- custom_delims_wrapper(const T & t_) : t(t_) { }
-
- std::ostream & stream(std::ostream & s)
- {
- return s << print_container_helper<T, char, std::char_traits<char>, Delims>(t);
- }
-
- std::wostream & stream(std::wostream & s)
- {
- return s << print_container_helper<T, wchar_t, std::char_traits<wchar_t>, Delims>(t);
- }
-
- private:
- const T & t;
- };
-
- template <typename Delims>
- struct custom_delims
- {
- template <typename Container>
- custom_delims(const Container & c) : base(new custom_delims_wrapper<Container, Delims>(c)) { }
-
- std::unique_ptr<custom_delims_base> base;
- };
-
- template <typename TChar, typename TCharTraits, typename Delims>
- inline std::basic_ostream<TChar, TCharTraits> & operator<<(std::basic_ostream<TChar, TCharTraits> & s, const custom_delims<Delims> & p)
- {
- return p.base->stream(s);
- }
-
-
- // A wrapper for a C-style array given as pointer-plus-size.
- // Usage: std::cout << pretty_print_array(arr, n) << std::endl;
-
- template<typename T>
- struct array_wrapper_n
- {
- typedef const T * const_iterator;
- typedef T value_type;
-
- array_wrapper_n(const T * const a, size_t n) : _array(a), _n(n) { }
- inline const_iterator begin() const { return _array; }
- inline const_iterator end() const { return _array + _n; }
-
- private:
- const T * const _array;
- size_t _n;
- };
-
-
- // A wrapper for hash-table based containers that offer local iterators to each bucket.
- // Usage: std::cout << bucket_print(m, 4) << std::endl; (Prints bucket 5 of container m.)
-
- template <typename T>
- struct bucket_print_wrapper
- {
- typedef typename T::const_local_iterator const_iterator;
- typedef typename T::size_type size_type;
-
- const_iterator begin() const
- {
- return m_map.cbegin(n);
- }
-
- const_iterator end() const
- {
- return m_map.cend(n);
- }
-
- bucket_print_wrapper(const T & m, size_type bucket) : m_map(m), n(bucket) { }
-
- private:
- const T & m_map;
- const size_type n;
- };
-
-} // namespace pretty_print
-
-
-// Global accessor functions for the convenience wrappers
-
-template<typename T>
-inline pretty_print::array_wrapper_n<T> pretty_print_array(const T * const a, size_t n)
-{
- return pretty_print::array_wrapper_n<T>(a, n);
-}
-
-template <typename T> pretty_print::bucket_print_wrapper<T>
-bucket_print(const T & m, typename T::size_type n)
-{
- return pretty_print::bucket_print_wrapper<T>(m, n);
-}
-
-
-// Main magic entry point: An overload snuck into namespace std.
-// Can we do better?
-
-namespace std
-{
- // Prints a container to the stream using default delimiters
-
- template<typename T, typename TChar, typename TCharTraits>
- inline typename enable_if< ::pretty_print::is_container<T>::value,
- basic_ostream<TChar, TCharTraits> &>::type
- operator<<(basic_ostream<TChar, TCharTraits> & stream, const T & container)
- {
- return stream << ::pretty_print::print_container_helper<T, TChar, TCharTraits>(container);
- }
-}
-
-
-
-#endif // H_PRETTY_PRINT
diff --git a/ripser.cpp b/ripser.cpp
index f243728..b7b5929 100644
--- a/ripser.cpp
+++ b/ripser.cpp
@@ -962,10 +962,15 @@ enum file_format {
BINARY
};
+static const uint16_t endian_check(0xff00);
+static const bool is_big_endian = *reinterpret_cast<const uint8_t*>(&endian_check);
+
template <typename T> T read(std::istream& input_stream) {
T result;
- input_stream.read(reinterpret_cast<char*>(&result), sizeof(T));
- return result; // on little endian: boost::endian::little_to_native(result);
+ char* p = reinterpret_cast<char*>(&result);
+ if (input_stream.read(p, sizeof(T)).gcount() != sizeof(T)) return T();
+ if (is_big_endian) std::reverse(p, p + sizeof(T));
+ return result;
}
compressed_lower_distance_matrix read_point_cloud(std::istream& input_stream) {
diff --git a/ripser.xcodeproj/project.pbxproj b/ripser.xcodeproj/project.pbxproj
deleted file mode 100644
index 316b1b2..0000000
--- a/ripser.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,276 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 55E113311BD63CF3002B6F51 /* ripser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 55E113301BD63CF3002B6F51 /* ripser.cpp */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 551018461BD63CB300990BFF /* CopyFiles */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = /usr/share/man/man1/;
- dstSubfolderSpec = 0;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 551018481BD63CB300990BFF /* ripser */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ripser; sourceTree = BUILT_PRODUCTS_DIR; };
- 55E113301BD63CF3002B6F51 /* ripser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ripser.cpp; sourceTree = SOURCE_ROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 551018451BD63CB300990BFF /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 5510183F1BD63CB300990BFF = {
- isa = PBXGroup;
- children = (
- 5510184A1BD63CB300990BFF /* ripser */,
- 551018491BD63CB300990BFF /* Products */,
- );
- sourceTree = "<group>";
- };
- 551018491BD63CB300990BFF /* Products */ = {
- isa = PBXGroup;
- children = (
- 551018481BD63CB300990BFF /* ripser */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 5510184A1BD63CB300990BFF /* ripser */ = {
- isa = PBXGroup;
- children = (
- 55E113301BD63CF3002B6F51 /* ripser.cpp */,
- );
- path = ripser;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 551018471BD63CB300990BFF /* ripser */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 5510184F1BD63CB300990BFF /* Build configuration list for PBXNativeTarget "ripser" */;
- buildPhases = (
- 551018441BD63CB300990BFF /* Sources */,
- 551018451BD63CB300990BFF /* Frameworks */,
- 551018461BD63CB300990BFF /* CopyFiles */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = ripser;
- productName = ripser;
- productReference = 551018481BD63CB300990BFF /* ripser */;
- productType = "com.apple.product-type.tool";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 551018401BD63CB300990BFF /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 1020;
- ORGANIZATIONNAME = "ulrich-bauer.org";
- TargetAttributes = {
- 551018471BD63CB300990BFF = {
- CreatedOnToolsVersion = 7.0.1;
- };
- };
- };
- buildConfigurationList = 551018431BD63CB300990BFF /* Build configuration list for PBXProject "ripser" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 5510183F1BD63CB300990BFF;
- productRefGroup = 551018491BD63CB300990BFF /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 551018471BD63CB300990BFF /* ripser */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
- 551018441BD63CB300990BFF /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 55E113311BD63CF3002B6F51 /* ripser.cpp in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 5510184D1BD63CB300990BFF /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = c11;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = /opt/local/include;
- MACOSX_DEPLOYMENT_TARGET = 10.11;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 5510184E1BD63CB300990BFF /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
- CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = c11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- HEADER_SEARCH_PATHS = /opt/local/include;
- MACOSX_DEPLOYMENT_TARGET = 10.11;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = macosx;
- };
- name = Release;
- };
- 551018501BD63CB300990BFF /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PREPROCESSOR_DEFINITIONS = (
- "$(inherited)",
- _FILE_FORMAT_DISTANCE_MATRIX,
- _FILE_FORMAT_LOWER_DISTANCE_MATRIX,
- _FILE_FORMAT_POINT_CLOUD,
- _USE_COEFFICIENTS,
- INDICATE_PROGRESS,
- );
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 551018511BD63CB300990BFF /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 551018431BD63CB300990BFF /* Build configuration list for PBXProject "ripser" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 5510184D1BD63CB300990BFF /* Debug */,
- 5510184E1BD63CB300990BFF /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 5510184F1BD63CB300990BFF /* Build configuration list for PBXNativeTarget "ripser" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 551018501BD63CB300990BFF /* Debug */,
- 551018511BD63CB300990BFF /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 551018401BD63CB300990BFF /* Project object */;
-}