summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Bauer <mail@ulrich-bauer.org>2020-11-25 21:49:42 +0100
committerUlrich Bauer <mail@ulrich-bauer.org>2020-11-25 21:49:42 +0100
commitd045b5d3873ed6aa45a29cce81634d3c27441d3f (patch)
treefa50bbe5372e862bd6a72cd7b18ae5113b26fbd1
parent1c0959db6bf21916937e68dc3266444607022519 (diff)
parent286d3696796a707eecd0f71e6377880f60c936da (diff)
Merge branch 'master' into apparent-pairs-new
* master: fixed documentation: the binary format for distance values is 32 bit, not 64 bit fixed compile error pointed out by adamConnerSax fix to read, properly handling premature end of file endian conversion for binary read removed examples and development files for master removed benchmark files
-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 */;
-}