Re: Distance matrix vineyard

Dmitriy Morozov

The first question you should decide for yourself is what simplicial complex you want to build out of the distance matrix. Forget the time-variance and vineyards, just for a fixed time.

If it's something like Vietoris-Rips complex, then you need to decide how much effort you want to put into implementing the vineyard. The path of least resistance is to approximate the time-varying VR filtration with a time-varying lower-star filtration. To do so, take the first barycentric subdivision of the VR-complex and assign to the barycenter of each simplex the value previously assigned to the simplex. Take the lower-star filtration of this complex, you'll get the same persistence diagram as with VR filtration. The lower-star filtration is what pl-vineyards works with, so you can subdivide the time however finely you want, and feed your data into pl-vineyard code.

The more complicated path is to use the C++ routines to compute the exact times when the simplices in the VR filtration transpose, and simulate this process updating persistence through the transpositions. If you end up going this route, I'd love to incorporate this code into Dionysus.

Dmitriy

On Fri, Jan 31, 2020 at 4:09 AM <K.A.Garside2@...> wrote:
Hi Dmitriy,

I would like to look at the vineyard of a time varying point cloud obtained from a distance matrix but I am unsure about the correct input data format and whether the pl-vineyard function is appropriate in this application.

The documentation says to list the simplices in the 'complex' file and the values at the vertices at each time point in the 'values' file. In the distance matrix application would the edges be thought of as the vertices? If so, would the simplicial complex just be the list of edge identifiers? How does this deal with faces? What would be the correct format for my data?

Many thanks!

Distance matrix vineyard

K.A.Garside2@...

Hi Dmitriy,

I would like to look at the vineyard of a time varying point cloud obtained from a distance matrix but I am unsure about the correct input data format and whether the pl-vineyard function is appropriate in this application.

The documentation says to list the simplices in the 'complex' file and the values at the vertices at each time point in the 'values' file. In the distance matrix application would the edges be thought of as the vertices? If so, would the simplicial complex just be the list of edge identifiers? How does this deal with faces? What would be the correct format for my data?

Many thanks!

Re: Literature for computation of homology between two chains that Dionysus is based on

o.lamarre7@...

Hi Dmitriy,

Yes, all clear now. Thank you very much for the explanation!

- Olivier

Re: Literature for computation of homology between two chains that Dionysus is based on

Dmitriy Morozov

homologous() does exactly what you describe. It takes (c1 - c2) and checks if it is a boundary, meaning it checks that (c1 - c2) is in the image of the boundary matrix. The persistence algorithm does this for the boundaries of all simplices in the filtration: it checks whether the boundary of a simplex is already a boundary (and therefore the addition of the simplex creates a cycle). That's what the column reduction of the standard persistence algorithm does. (It does more than this, of course, but this is part of it does.) homologous() simply takes (c1 - c2) and reduces it using the columns of the reduced boundary matrix; the reduced part allows the greedy reduction algorithm to just work. If you get a 0 as a result of the reduction, it means (c1 - c2) is a boundary, and the function returns True; otherwise False.

I hope this helps.

On Sun, Jan 5, 2020 at 3:29 PM <o.lamarre7@...> wrote:

Hi! I am a student and I've been using the Dionysus library for a few months (thank you!). My use case is fairly simple - I have a simplicial complex of dimension 2, and I evaluate whether two 1-chains (with the same start and end vertices) are homologous.

I am looking for an intuition behind the implementation of the homologous() function in Dionysus. Specifically, is there any literature this function is based on? I'm familiar with the theory behind homology, persistence, etc., just not with implementation details.

There is a lot of information in the literature about efficient implementations related persistent homology (ex: filtration, reduced boundary matrices, Betti numbers, etc.), but as simple as it sounds, I couldn't find much about calculating whether two chains are homologous. For example, are two chains combined into a cycle and then checked whether they are a boundary of a higher-dimensionality chain? Can that be inferred from a boundary matrix?

Any details about the inspiration for the implementation in Dionysus (and/or a brief description of it) would be super appreciated. Thank you very much!

Literature for computation of homology between two chains that Dionysus is based on

o.lamarre7@...

Hi! I am a student and I've been using the Dionysus library for a few months (thank you!). My use case is fairly simple - I have a simplicial complex of dimension 2, and I evaluate whether two 1-chains (with the same start and end vertices) are homologous.

I am looking for an intuition behind the implementation of the homologous() function in Dionysus. Specifically, is there any literature this function is based on? I'm familiar with the theory behind homology, persistence, etc., just not with implementation details.

There is a lot of information in the literature about efficient implementations related persistent homology (ex: filtration, reduced boundary matrices, Betti numbers, etc.), but as simple as it sounds, I couldn't find much about calculating whether two chains are homologous. For example, are two chains combined into a cycle and then checked whether they are a boundary of a higher-dimensionality chain? Can that be inferred from a boundary matrix?

Any details about the inspiration for the implementation in Dionysus (and/or a brief description of it) would be super appreciated. Thank you very much!

Re: Using vineyards

Dmitriy Morozov

Glad to hear it. Good luck.

Re: Using vineyards

jfespinoza.mx@...

Actually, all the examples were built in the directory. Finally, I can now run the program pl-vineyards:

jesus@LaBestia:~/Dionysus/Dionysus/build/examples/pl-functions\$ cat complex
0
1
0 1
2
0 2
1 2
0 1 2
jesus@LaBestia:~/Dionysus/Dionysus/build/examples/pl-functions\$ cat values
3.3   6    2
1.2   3    10
7.5   2.1  0
jesus@LaBestia:~/Dionysus/Dionysus/build/examples/pl-functions\$ ./pl-vineyard complex values myfunction
<0>
<1>
<0, 1>
<2>
<0, 2>
<1, 2>
<0, 1, 2>
3.3 6 2
1.2 3 10
7.5 2.1 0

0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
Pairing computed
Processed frame: 1
Processed frame: 2
Vineyard computed
jesus@LaBestia:~/Dionysus/Dionysus/build/examples/pl-functions\$ cat myfunction0.edg
2 inf 0
3.0297 inf 0.128713
3.0297 inf 0.128713
1.2 inf 1
1.2 inf 1
2.775 inf 1.25
2.775 inf 1.25
2.30769 inf 1.76923
2.30769 inf 1.76923
0 inf 2
3.3 3.3 0
3.0297 3.0297 0.128713
3.0297 3.0297 0.128713
10 10 1
jesus@LaBestia:~/Dionysus/Dionysus/build/examples/pl-functions\$ cat myfunction1.edg
10 10 1
4.60123 4.60123 1.53988
4.60123 4.60123 1.53988
7.5 7.5 2

Thanks a lot Dmitriy, this program is exactly what I need to continue with my analysis. Best regards

J.

Re: Using vineyards

Dmitriy Morozov

Unfortunately, I cannot reproduce this. Can you try wiping out the build directory and recreating it from scratch?

Re: Using vineyards

jfespinoza.mx@...

The code is now compiling at 100%, however there is a warning when executing cmake and an error when executing make:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ cmake ..
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/include (found version "1.67.0") found components:  program_options python serialization
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning (dev) at examples/homology-zigzags/CMakeLists.txt:9 (add_executable):
Policy CMP0002 is not set: Logical target names must be globally unique.
Run "cmake --help-policy CMP0002" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so (found version "3.7.3")
CMake Warning (dev) at bindings/python/CMakeLists.txt:50 (get_target_property):
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.

The LOCATION property should not be read from target "_dionysus".  Use the
target name directly with add_custom_command, or use the generator
expression \$<TARGET_FILE>, as appropriate.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/jesus/Dionysus/Dionysus/build
jesus@LaBestia:~/Dionysus/Dionysus/build\$ make
Scanning dependencies of target bottleneck-distance
[  1%] Building CXX object examples/CMakeFiles/bottleneck-distance.dir/bottleneck-distance.o
[  2%] Linking CXX executable bottleneck-distance
[  2%] Built target bottleneck-distance
Scanning dependencies of target compare-diagrams
[  3%] Building CXX object examples/alphashapes/CMakeFiles/compare-diagrams.dir/compare-diagrams.o
[  4%] Linking CXX executable compare-diagrams
[  4%] Built target compare-diagrams
Scanning dependencies of target cech-complex
[  5%] Building CXX object examples/cech-complex/CMakeFiles/cech-complex.dir/cech-complex.o
[  6%] Linking CXX executable cech-complex
[  6%] Built target cech-complex
Scanning dependencies of target rips-consistency-zigzag
[  7%] Building CXX object examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o
[  8%] Linking CXX executable rips-consistency-zigzag
[  8%] Built target rips-consistency-zigzag
Scanning dependencies of target rips-pairwise-cohomology
[ 10%] Building CXX object examples/cohomology/CMakeFiles/rips-pairwise-cohomology.dir/rips-pairwise-cohomology.o
[ 11%] Linking CXX executable rips-pairwise-cohomology
[ 11%] Built target rips-pairwise-cohomology
Scanning dependencies of target rips-explicit-cohomology
[ 12%] Building CXX object examples/cohomology/CMakeFiles/rips-explicit-cohomology.dir/rips-explicit-cohomology.o
[ 13%] Linking CXX executable rips-explicit-cohomology
[ 13%] Built target rips-explicit-cohomology
Scanning dependencies of target rips-cohomology
[ 14%] Building CXX object examples/cohomology/CMakeFiles/rips-cohomology.dir/rips-cohomology.o
[ 15%] Linking CXX executable rips-cohomology
[ 15%] Built target rips-cohomology
Scanning dependencies of target rips-weighted-cohomology
[ 16%] Building CXX object examples/cohomology/CMakeFiles/rips-weighted-cohomology.dir/rips-weighted-cohomology.o
[ 17%] Linking CXX executable rips-weighted-cohomology
[ 17%] Built target rips-weighted-cohomology
Scanning dependencies of target triangle-cohomology
[ 19%] Building CXX object examples/cohomology/CMakeFiles/triangle-cohomology.dir/triangle-cohomology.o
[ 20%] Linking CXX executable triangle-cohomology
[ 20%] Built target triangle-cohomology
Scanning dependencies of target avida-distance
[ 21%] Building CXX object examples/fitness/CMakeFiles/avida-distance.dir/avida-distance.o
[ 22%] Linking CXX executable avida-distance
[ 22%] Built target avida-distance
Scanning dependencies of target avida-rips-distance
[ 23%] Building CXX object examples/fitness/CMakeFiles/avida-rips-distance.dir/avida-rips-distance.o
[ 24%] Linking CXX executable avida-rips-distance
[ 24%] Built target avida-rips-distance
Scanning dependencies of target test-grid2D-vineyard
[ 25%] Building CXX object examples/pl-functions/CMakeFiles/test-grid2D-vineyard.dir/test-grid2D-vineyard.o
[ 26%] Linking CXX executable test-grid2D-vineyard
[ 26%] Built target test-grid2D-vineyard
Scanning dependencies of target test-grid2D
[ 28%] Building CXX object examples/pl-functions/CMakeFiles/test-grid2D.dir/test-grid2D.o
[ 29%] Linking CXX executable test-grid2D
[ 29%] Built target test-grid2D
Scanning dependencies of target combustion-vineyard
[ 30%] Building CXX object examples/pl-functions/CMakeFiles/combustion-vineyard.dir/combustion-vineyard.o
[ 31%] Linking CXX executable combustion-vineyard
[ 31%] Built target combustion-vineyard
Scanning dependencies of target pl-vineyard
[ 32%] Building CXX object examples/pl-functions/CMakeFiles/pl-vineyard.dir/pl-vineyard.o
[ 33%] Linking CXX executable pl-vineyard
[ 33%] Built target pl-vineyard
Scanning dependencies of target triangle
[ 34%] Building CXX object examples/triangle/CMakeFiles/triangle.dir/triangle.o
[ 35%] Linking CXX executable triangle
[ 35%] Built target triangle
Scanning dependencies of target triangle-zigzag
[ 37%] Building CXX object examples/triangle/CMakeFiles/triangle-zigzag.dir/triangle-zigzag.o
[ 38%] Linking CXX executable triangle-zigzag
[ 38%] Built target triangle-zigzag
Scanning dependencies of target poincare
[ 39%] Building CXX object examples/poincare/CMakeFiles/poincare.dir/poincare.o
[ 40%] Linking CXX executable poincare
[ 40%] Built target poincare
Scanning dependencies of target rips-pairwise
[ 41%] Building CXX object examples/rips/CMakeFiles/rips-pairwise.dir/rips-pairwise.o
[ 42%] Linking CXX executable rips-pairwise
[ 42%] Built target rips-pairwise
Scanning dependencies of target rips
[ 43%] Building CXX object examples/rips/CMakeFiles/rips.dir/rips.o
[ 44%] Linking CXX executable rips
[ 44%] Built target rips
Scanning dependencies of target rips-weighted
[ 46%] Building CXX object examples/rips/CMakeFiles/rips-weighted.dir/rips-weighted.o
[ 47%] Linking CXX executable rips-weighted
[ 47%] Built target rips-weighted
Scanning dependencies of target rips-image-zigzag
[ 48%] Building CXX object examples/rips/CMakeFiles/rips-image-zigzag.dir/rips-image-zigzag.o
[ 49%] Linking CXX executable rips-image-zigzag
[ 49%] Built target rips-image-zigzag
Scanning dependencies of target rips-pairwise.py
[ 49%] Built target rips-pairwise.py
Scanning dependencies of target rips.py
[ 49%] Built target rips.py
Scanning dependencies of target rips-zigzag
[ 50%] Building CXX object examples/rips/CMakeFiles/rips-zigzag.dir/rips-zigzag.o
[ 51%] Linking CXX executable rips-zigzag
[ 51%] Built target rips-zigzag
Scanning dependencies of target filtration-homology
[ 52%] Building CXX object examples/filtration/CMakeFiles/filtration-homology.dir/filtration-homology.o
[ 53%] Linking CXX executable filtration-homology
[ 53%] Built target filtration-homology
Scanning dependencies of target M-ZZ
[ 55%] Building CXX object examples/homology-zigzags/CMakeFiles/M-ZZ.dir/M-ZZ.o
[ 56%] Linking CXX executable M-ZZ
[ 56%] Built target M-ZZ
Scanning dependencies of target rips-pairwise
[ 57%] Building CXX object examples/homology-zigzags/CMakeFiles/rips-pairwise.dir/rips-pairwise.o
[ 58%] Linking CXX executable rips-pairwise
[ 58%] Built target rips-pairwise
Scanning dependencies of target dM-ZZ
[ 59%] Building CXX object examples/homology-zigzags/CMakeFiles/dM-ZZ.dir/dM-ZZ.o
[ 60%] Linking CXX executable dM-ZZ
[ 60%] Built target dM-ZZ
Scanning dependencies of target iR-ZZ
[ 61%] Building CXX object examples/homology-zigzags/CMakeFiles/iR-ZZ.dir/iR-ZZ.o
[ 62%] Linking CXX executable iR-ZZ
[ 62%] Built target iR-ZZ
Scanning dependencies of target oR-ZZ
[ 64%] Building CXX object examples/homology-zigzags/CMakeFiles/oR-ZZ.dir/oR-ZZ.o
[ 65%] Linking CXX executable oR-ZZ
[ 65%] Built target oR-ZZ
Scanning dependencies of target test-eventqueue
[ 66%] Building CXX object tests/geometry/CMakeFiles/test-eventqueue.dir/test-eventqueue.o
[ 67%] Linking CXX executable test-eventqueue
[ 67%] Built target test-eventqueue
Scanning dependencies of target euclidean
[ 68%] Building CXX object tests/geometry/CMakeFiles/euclidean.dir/euclidean.o
[ 69%] Linking CXX executable euclidean
[ 69%] Built target euclidean
Scanning dependencies of target test-ksort-linear
[ 70%] Building CXX object tests/geometry/CMakeFiles/test-ksort-linear.dir/test-ksort-linear.o
[ 71%] Linking CXX executable test-ksort-linear
[ 71%] Built target test-ksort-linear
Scanning dependencies of target test-orderlist
[ 73%] Building CXX object tests/utilities/CMakeFiles/test-orderlist.dir/test-orderlist.o
[ 74%] Linking CXX executable test-orderlist
[ 74%] Built target test-orderlist
Scanning dependencies of target test-set-iterators
[ 75%] Building CXX object tests/utilities/CMakeFiles/test-set-iterators.dir/test-set-iterators.o
[ 76%] Linking CXX executable test-set-iterators
[ 76%] Built target test-set-iterators
Scanning dependencies of target test-consistencylist
[ 77%] Building CXX object tests/utilities/CMakeFiles/test-consistencylist.dir/test-consistencylist.o
[ 78%] Linking CXX executable test-consistencylist
[ 78%] Built target test-consistencylist
Scanning dependencies of target extract-diagram
[ 79%] Building CXX object tools/CMakeFiles/extract-diagram.dir/extract-diagram.o
[ 80%] Linking CXX executable extract-diagram
[ 80%] Built target extract-diagram
Scanning dependencies of target bottleneck
[ 82%] Building CXX object tools/matching/CMakeFiles/bottleneck.dir/bottleneck.o
[ 83%] Linking CXX executable bottleneck
[ 83%] Built target bottleneck
Scanning dependencies of target wasserstein
[ 84%] Building CXX object tools/matching/CMakeFiles/wasserstein.dir/wasserstein.o
[ 85%] Linking CXX executable wasserstein
[ 85%] Built target wasserstein
Scanning dependencies of target _dionysus
[ 86%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/dionysus.o
[ 87%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/filtration.o
[ 88%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/chain.o
[ 89%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/static-persistence.o
[ 91%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/dynamic-persistence.o
[ 92%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/persistence-diagram.o
[ 93%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/simplex.o
[ 94%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/birthid.o
[ 95%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/zigzag-persistence.o
[ 96%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/cohomology-persistence.o
[ 97%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/rips.o
[ 98%] Building CXX object bindings/python/CMakeFiles/_dionysus.dir/distances.o
[100%] Linking CXX shared library lib_dionysus.so
[100%] Built target _dionysus
CMake Error: failed to create symbolic link '/home/jesus/Dionysus/Dionysus/build/bindings/python/dionysus/_dionysus.so': no such file or directory
make[1]: *** [CMakeFiles/Makefile2:1596: bindings/python/CMakeFiles/dionysus-link.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Re: Using vineyards

Dmitriy Morozov

Try it now. I can't tell if it's a bug in GCC, or the code is not compliant, but either way it should be fixed.

On Sat, Nov 23, 2019 at 10:14 PM <jfespinoza.mx@...> wrote:
Hi Dmitriy, thanks for the help. The file you mentioned helped to advance in compilation. However, I get another error:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ cmake ..
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/include (found version "1.67.0") found components:  program_options python serialization
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning (dev) at examples/homology-zigzags/CMakeLists.txt:9 (add_executable):
Policy CMP0002 is not set: Logical target names must be globally unique.
Run "cmake --help-policy CMP0002" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so (found version "3.7.3")
CMake Warning (dev) at bindings/python/CMakeLists.txt:50 (get_target_property):
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.

The LOCATION property should not be read from target "_dionysus".  Use the
target name directly with add_custom_command, or use the generator
expression \$<TARGET_FILE>, as appropriate.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/jesus/Dionysus/Dionysus/build
jesus@LaBestia:~/Dionysus/Dionysus/build\$ make
Scanning dependencies of target bottleneck-distance
[  1%] Building CXX object examples/CMakeFiles/bottleneck-distance.dir/bottleneck-distance.o
[  2%] Linking CXX executable bottleneck-distance
[  2%] Built target bottleneck-distance
Scanning dependencies of target compare-diagrams
[  3%] Building CXX object examples/alphashapes/CMakeFiles/compare-diagrams.dir/compare-diagrams.o
[  4%] Linking CXX executable compare-diagrams
[  4%] Built target compare-diagrams
Scanning dependencies of target cech-complex
[  5%] Building CXX object examples/cech-complex/CMakeFiles/cech-complex.dir/cech-complex.o
[  6%] Linking CXX executable cech-complex
[  6%] Built target cech-complex
Scanning dependencies of target rips-consistency-zigzag
[  7%] Building CXX object examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o
[  8%] Linking CXX executable rips-consistency-zigzag
[  8%] Built target rips-consistency-zigzag
Scanning dependencies of target rips-pairwise-cohomology
[ 10%] Building CXX object examples/cohomology/CMakeFiles/rips-pairwise-cohomology.dir/rips-pairwise-cohomology.o
[ 11%] Linking CXX executable rips-pairwise-cohomology
[ 11%] Built target rips-pairwise-cohomology
Scanning dependencies of target rips-explicit-cohomology
[ 12%] Building CXX object examples/cohomology/CMakeFiles/rips-explicit-cohomology.dir/rips-explicit-cohomology.o
[ 13%] Linking CXX executable rips-explicit-cohomology
[ 13%] Built target rips-explicit-cohomology
Scanning dependencies of target rips-cohomology
[ 14%] Building CXX object examples/cohomology/CMakeFiles/rips-cohomology.dir/rips-cohomology.o
[ 15%] Linking CXX executable rips-cohomology
[ 15%] Built target rips-cohomology
Scanning dependencies of target rips-weighted-cohomology
[ 16%] Building CXX object examples/cohomology/CMakeFiles/rips-weighted-cohomology.dir/rips-weighted-cohomology.o
[ 17%] Linking CXX executable rips-weighted-cohomology
[ 17%] Built target rips-weighted-cohomology
Scanning dependencies of target triangle-cohomology
[ 19%] Building CXX object examples/cohomology/CMakeFiles/triangle-cohomology.dir/triangle-cohomology.o
[ 20%] Linking CXX executable triangle-cohomology
[ 20%] Built target triangle-cohomology
Scanning dependencies of target avida-distance
[ 21%] Building CXX object examples/fitness/CMakeFiles/avida-distance.dir/avida-distance.o
[ 22%] Linking CXX executable avida-distance
[ 22%] Built target avida-distance
Scanning dependencies of target avida-rips-distance
[ 23%] Building CXX object examples/fitness/CMakeFiles/avida-rips-distance.dir/avida-rips-distance.o
[ 24%] Linking CXX executable avida-rips-distance
[ 24%] Built target avida-rips-distance
Scanning dependencies of target test-grid2D-vineyard
[ 25%] Building CXX object examples/pl-functions/CMakeFiles/test-grid2D-vineyard.dir/test-grid2D-vineyard.o
[ 26%] Linking CXX executable test-grid2D-vineyard
[ 26%] Built target test-grid2D-vineyard
Scanning dependencies of target test-grid2D
[ 28%] Building CXX object examples/pl-functions/CMakeFiles/test-grid2D.dir/test-grid2D.o
[ 29%] Linking CXX executable test-grid2D
[ 29%] Built target test-grid2D
Scanning dependencies of target combustion-vineyard
[ 30%] Building CXX object examples/pl-functions/CMakeFiles/combustion-vineyard.dir/combustion-vineyard.o
[ 31%] Linking CXX executable combustion-vineyard
[ 31%] Built target combustion-vineyard
Scanning dependencies of target pl-vineyard
[ 32%] Building CXX object examples/pl-functions/CMakeFiles/pl-vineyard.dir/pl-vineyard.o
[ 33%] Linking CXX executable pl-vineyard
[ 33%] Built target pl-vineyard
Scanning dependencies of target triangle
[ 34%] Building CXX object examples/triangle/CMakeFiles/triangle.dir/triangle.o
[ 35%] Linking CXX executable triangle
[ 35%] Built target triangle
Scanning dependencies of target triangle-zigzag
[ 37%] Building CXX object examples/triangle/CMakeFiles/triangle-zigzag.dir/triangle-zigzag.o
[ 38%] Linking CXX executable triangle-zigzag
[ 38%] Built target triangle-zigzag
Scanning dependencies of target poincare
[ 39%] Building CXX object examples/poincare/CMakeFiles/poincare.dir/poincare.o
[ 40%] Linking CXX executable poincare
[ 40%] Built target poincare
Scanning dependencies of target rips-pairwise
[ 41%] Building CXX object examples/rips/CMakeFiles/rips-pairwise.dir/rips-pairwise.o
[ 42%] Linking CXX executable rips-pairwise
[ 42%] Built target rips-pairwise
Scanning dependencies of target rips
[ 43%] Building CXX object examples/rips/CMakeFiles/rips.dir/rips.o
[ 44%] Linking CXX executable rips
[ 44%] Built target rips
Scanning dependencies of target rips-weighted
[ 46%] Building CXX object examples/rips/CMakeFiles/rips-weighted.dir/rips-weighted.o
[ 47%] Linking CXX executable rips-weighted
[ 47%] Built target rips-weighted
Scanning dependencies of target rips-image-zigzag
[ 48%] Building CXX object examples/rips/CMakeFiles/rips-image-zigzag.dir/rips-image-zigzag.o
[ 49%] Linking CXX executable rips-image-zigzag
[ 49%] Built target rips-image-zigzag
Scanning dependencies of target rips-pairwise.py
[ 49%] Built target rips-pairwise.py
Scanning dependencies of target rips.py
[ 49%] Built target rips.py
Scanning dependencies of target rips-zigzag
[ 50%] Building CXX object examples/rips/CMakeFiles/rips-zigzag.dir/rips-zigzag.o
[ 51%] Linking CXX executable rips-zigzag
[ 51%] Built target rips-zigzag
Scanning dependencies of target filtration-homology
[ 52%] Building CXX object examples/filtration/CMakeFiles/filtration-homology.dir/filtration-homology.o
[ 53%] Linking CXX executable filtration-homology
[ 53%] Built target filtration-homology
Scanning dependencies of target M-ZZ
[ 55%] Building CXX object examples/homology-zigzags/CMakeFiles/M-ZZ.dir/M-ZZ.o
[ 56%] Linking CXX executable M-ZZ
[ 56%] Built target M-ZZ
Scanning dependencies of target rips-pairwise
[ 57%] Building CXX object examples/homology-zigzags/CMakeFiles/rips-pairwise.dir/rips-pairwise.o
[ 58%] Linking CXX executable rips-pairwise
[ 58%] Built target rips-pairwise
Scanning dependencies of target dM-ZZ
[ 59%] Building CXX object examples/homology-zigzags/CMakeFiles/dM-ZZ.dir/dM-ZZ.o
[ 60%] Linking CXX executable dM-ZZ
[ 60%] Built target dM-ZZ
Scanning dependencies of target iR-ZZ
[ 61%] Building CXX object examples/homology-zigzags/CMakeFiles/iR-ZZ.dir/iR-ZZ.o
[ 62%] Linking CXX executable iR-ZZ
[ 62%] Built target iR-ZZ
Scanning dependencies of target oR-ZZ
[ 64%] Building CXX object examples/homology-zigzags/CMakeFiles/oR-ZZ.dir/oR-ZZ.o
[ 65%] Linking CXX executable oR-ZZ
[ 65%] Built target oR-ZZ
Scanning dependencies of target test-eventqueue
[ 66%] Building CXX object tests/geometry/CMakeFiles/test-eventqueue.dir/test-eventqueue.o
[ 67%] Linking CXX executable test-eventqueue
[ 67%] Built target test-eventqueue
Scanning dependencies of target euclidean
[ 68%] Building CXX object tests/geometry/CMakeFiles/euclidean.dir/euclidean.o
[ 69%] Linking CXX executable euclidean
[ 69%] Built target euclidean
Scanning dependencies of target test-ksort-linear
[ 70%] Building CXX object tests/geometry/CMakeFiles/test-ksort-linear.dir/test-ksort-linear.o
[ 71%] Linking CXX executable test-ksort-linear
[ 71%] Built target test-ksort-linear
Scanning dependencies of target test-orderlist
[ 73%] Building CXX object tests/utilities/CMakeFiles/test-orderlist.dir/test-orderlist.o
In file included from /home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp:1:
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.h:101:21: error: invalid class name in declaration of ‘OrderList<T>::OrderComparison
class OrderList<T>::OrderComparison
^~~~~~~~~~~~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/utilities/orderlist.h:207,
from /home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp:1:
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:113:9: error: template definition of non-template ‘int OrderList<T>::OrderComparison::compare
compare(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:113:9: error: ComparableType’ was not declared in this scope
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:113:27: error: ComparableType’ was not declared in this scope
compare(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:123:12: error: declaration of ‘operator()’ as non-function
operator()(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:123:12: error: ComparableType’ was not declared in this scope
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:123:30: error: ComparableType’ was not declared in this scope
operator()(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp: In function ‘int main()’:
/home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp:16:25: error: aggregate ‘Comparison cmp’ has incomplete type and cannot be defined
OList list; Comparison cmp;
^~~
make[2]: *** [tests/utilities/CMakeFiles/test-orderlist.dir/build.make:63: tests/utilities/CMakeFiles/test-orderlist.dir/test-orderlist.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1354: tests/utilities/CMakeFiles/test-orderlist.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I have the following version of Boost:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ dpkg -s libboost-dev | grep Version
Version: 1.67.0.1

Re: Using vineyards

jfespinoza.mx@...

Hi Dmitriy, thanks for the help. The file you mentioned helped to advance in compilation. However, I get another error:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ cmake ..
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/include (found version "1.67.0") found components:  program_options python serialization
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning (dev) at examples/homology-zigzags/CMakeLists.txt:9 (add_executable):
Policy CMP0002 is not set: Logical target names must be globally unique.
Run "cmake --help-policy CMP0002" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.7m.so (found version "3.7.3")
CMake Warning (dev) at bindings/python/CMakeLists.txt:50 (get_target_property):
Policy CMP0026 is not set: Disallow use of the LOCATION target property.
Run "cmake --help-policy CMP0026" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.

The LOCATION property should not be read from target "_dionysus".  Use the
target name directly with add_custom_command, or use the generator
expression \$<TARGET_FILE>, as appropriate.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /home/jesus/Dionysus/Dionysus/build
jesus@LaBestia:~/Dionysus/Dionysus/build\$ make
Scanning dependencies of target bottleneck-distance
[  1%] Building CXX object examples/CMakeFiles/bottleneck-distance.dir/bottleneck-distance.o
[  2%] Linking CXX executable bottleneck-distance
[  2%] Built target bottleneck-distance
Scanning dependencies of target compare-diagrams
[  3%] Building CXX object examples/alphashapes/CMakeFiles/compare-diagrams.dir/compare-diagrams.o
[  4%] Linking CXX executable compare-diagrams
[  4%] Built target compare-diagrams
Scanning dependencies of target cech-complex
[  5%] Building CXX object examples/cech-complex/CMakeFiles/cech-complex.dir/cech-complex.o
[  6%] Linking CXX executable cech-complex
[  6%] Built target cech-complex
Scanning dependencies of target rips-consistency-zigzag
[  7%] Building CXX object examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o
[  8%] Linking CXX executable rips-consistency-zigzag
[  8%] Built target rips-consistency-zigzag
Scanning dependencies of target rips-pairwise-cohomology
[ 10%] Building CXX object examples/cohomology/CMakeFiles/rips-pairwise-cohomology.dir/rips-pairwise-cohomology.o
[ 11%] Linking CXX executable rips-pairwise-cohomology
[ 11%] Built target rips-pairwise-cohomology
Scanning dependencies of target rips-explicit-cohomology
[ 12%] Building CXX object examples/cohomology/CMakeFiles/rips-explicit-cohomology.dir/rips-explicit-cohomology.o
[ 13%] Linking CXX executable rips-explicit-cohomology
[ 13%] Built target rips-explicit-cohomology
Scanning dependencies of target rips-cohomology
[ 14%] Building CXX object examples/cohomology/CMakeFiles/rips-cohomology.dir/rips-cohomology.o
[ 15%] Linking CXX executable rips-cohomology
[ 15%] Built target rips-cohomology
Scanning dependencies of target rips-weighted-cohomology
[ 16%] Building CXX object examples/cohomology/CMakeFiles/rips-weighted-cohomology.dir/rips-weighted-cohomology.o
[ 17%] Linking CXX executable rips-weighted-cohomology
[ 17%] Built target rips-weighted-cohomology
Scanning dependencies of target triangle-cohomology
[ 19%] Building CXX object examples/cohomology/CMakeFiles/triangle-cohomology.dir/triangle-cohomology.o
[ 20%] Linking CXX executable triangle-cohomology
[ 20%] Built target triangle-cohomology
Scanning dependencies of target avida-distance
[ 21%] Building CXX object examples/fitness/CMakeFiles/avida-distance.dir/avida-distance.o
[ 22%] Linking CXX executable avida-distance
[ 22%] Built target avida-distance
Scanning dependencies of target avida-rips-distance
[ 23%] Building CXX object examples/fitness/CMakeFiles/avida-rips-distance.dir/avida-rips-distance.o
[ 24%] Linking CXX executable avida-rips-distance
[ 24%] Built target avida-rips-distance
Scanning dependencies of target test-grid2D-vineyard
[ 25%] Building CXX object examples/pl-functions/CMakeFiles/test-grid2D-vineyard.dir/test-grid2D-vineyard.o
[ 26%] Linking CXX executable test-grid2D-vineyard
[ 26%] Built target test-grid2D-vineyard
Scanning dependencies of target test-grid2D
[ 28%] Building CXX object examples/pl-functions/CMakeFiles/test-grid2D.dir/test-grid2D.o
[ 29%] Linking CXX executable test-grid2D
[ 29%] Built target test-grid2D
Scanning dependencies of target combustion-vineyard
[ 30%] Building CXX object examples/pl-functions/CMakeFiles/combustion-vineyard.dir/combustion-vineyard.o
[ 31%] Linking CXX executable combustion-vineyard
[ 31%] Built target combustion-vineyard
Scanning dependencies of target pl-vineyard
[ 32%] Building CXX object examples/pl-functions/CMakeFiles/pl-vineyard.dir/pl-vineyard.o
[ 33%] Linking CXX executable pl-vineyard
[ 33%] Built target pl-vineyard
Scanning dependencies of target triangle
[ 34%] Building CXX object examples/triangle/CMakeFiles/triangle.dir/triangle.o
[ 35%] Linking CXX executable triangle
[ 35%] Built target triangle
Scanning dependencies of target triangle-zigzag
[ 37%] Building CXX object examples/triangle/CMakeFiles/triangle-zigzag.dir/triangle-zigzag.o
[ 38%] Linking CXX executable triangle-zigzag
[ 38%] Built target triangle-zigzag
Scanning dependencies of target poincare
[ 39%] Building CXX object examples/poincare/CMakeFiles/poincare.dir/poincare.o
[ 40%] Linking CXX executable poincare
[ 40%] Built target poincare
Scanning dependencies of target rips-pairwise
[ 41%] Building CXX object examples/rips/CMakeFiles/rips-pairwise.dir/rips-pairwise.o
[ 42%] Linking CXX executable rips-pairwise
[ 42%] Built target rips-pairwise
Scanning dependencies of target rips
[ 43%] Building CXX object examples/rips/CMakeFiles/rips.dir/rips.o
[ 44%] Linking CXX executable rips
[ 44%] Built target rips
Scanning dependencies of target rips-weighted
[ 46%] Building CXX object examples/rips/CMakeFiles/rips-weighted.dir/rips-weighted.o
[ 47%] Linking CXX executable rips-weighted
[ 47%] Built target rips-weighted
Scanning dependencies of target rips-image-zigzag
[ 48%] Building CXX object examples/rips/CMakeFiles/rips-image-zigzag.dir/rips-image-zigzag.o
[ 49%] Linking CXX executable rips-image-zigzag
[ 49%] Built target rips-image-zigzag
Scanning dependencies of target rips-pairwise.py
[ 49%] Built target rips-pairwise.py
Scanning dependencies of target rips.py
[ 49%] Built target rips.py
Scanning dependencies of target rips-zigzag
[ 50%] Building CXX object examples/rips/CMakeFiles/rips-zigzag.dir/rips-zigzag.o
[ 51%] Linking CXX executable rips-zigzag
[ 51%] Built target rips-zigzag
Scanning dependencies of target filtration-homology
[ 52%] Building CXX object examples/filtration/CMakeFiles/filtration-homology.dir/filtration-homology.o
[ 53%] Linking CXX executable filtration-homology
[ 53%] Built target filtration-homology
Scanning dependencies of target M-ZZ
[ 55%] Building CXX object examples/homology-zigzags/CMakeFiles/M-ZZ.dir/M-ZZ.o
[ 56%] Linking CXX executable M-ZZ
[ 56%] Built target M-ZZ
Scanning dependencies of target rips-pairwise
[ 57%] Building CXX object examples/homology-zigzags/CMakeFiles/rips-pairwise.dir/rips-pairwise.o
[ 58%] Linking CXX executable rips-pairwise
[ 58%] Built target rips-pairwise
Scanning dependencies of target dM-ZZ
[ 59%] Building CXX object examples/homology-zigzags/CMakeFiles/dM-ZZ.dir/dM-ZZ.o
[ 60%] Linking CXX executable dM-ZZ
[ 60%] Built target dM-ZZ
Scanning dependencies of target iR-ZZ
[ 61%] Building CXX object examples/homology-zigzags/CMakeFiles/iR-ZZ.dir/iR-ZZ.o
[ 62%] Linking CXX executable iR-ZZ
[ 62%] Built target iR-ZZ
Scanning dependencies of target oR-ZZ
[ 64%] Building CXX object examples/homology-zigzags/CMakeFiles/oR-ZZ.dir/oR-ZZ.o
[ 65%] Linking CXX executable oR-ZZ
[ 65%] Built target oR-ZZ
Scanning dependencies of target test-eventqueue
[ 66%] Building CXX object tests/geometry/CMakeFiles/test-eventqueue.dir/test-eventqueue.o
[ 67%] Linking CXX executable test-eventqueue
[ 67%] Built target test-eventqueue
Scanning dependencies of target euclidean
[ 68%] Building CXX object tests/geometry/CMakeFiles/euclidean.dir/euclidean.o
[ 69%] Linking CXX executable euclidean
[ 69%] Built target euclidean
Scanning dependencies of target test-ksort-linear
[ 70%] Building CXX object tests/geometry/CMakeFiles/test-ksort-linear.dir/test-ksort-linear.o
[ 71%] Linking CXX executable test-ksort-linear
[ 71%] Built target test-ksort-linear
Scanning dependencies of target test-orderlist
[ 73%] Building CXX object tests/utilities/CMakeFiles/test-orderlist.dir/test-orderlist.o
In file included from /home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp:1:
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.h:101:21: error: invalid class name in declaration of ‘OrderList<T>::OrderComparison
class OrderList<T>::OrderComparison
^~~~~~~~~~~~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/utilities/orderlist.h:207,
from /home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp:1:
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:113:9: error: template definition of non-template ‘int OrderList<T>::OrderComparison::compare
compare(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:113:9: error: ComparableType’ was not declared in this scope
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:113:27: error: ComparableType’ was not declared in this scope
compare(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:123:12: error: declaration of ‘operator()’ as non-function
operator()(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:123:12: error: ComparableType’ was not declared in this scope
/home/jesus/Dionysus/Dionysus/include/utilities/orderlist.hpp:123:30: error: ComparableType’ was not declared in this scope
operator()(ComparableType a, ComparableType b) const
^~~~~~~~~~~~~~
/home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp: In function ‘int main()’:
/home/jesus/Dionysus/Dionysus/tests/utilities/test-orderlist.cpp:16:25: error: aggregate ‘Comparison cmp’ has incomplete type and cannot be defined
OList list; Comparison cmp;
^~~
make[2]: *** [tests/utilities/CMakeFiles/test-orderlist.dir/build.make:63: tests/utilities/CMakeFiles/test-orderlist.dir/test-orderlist.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1354: tests/utilities/CMakeFiles/test-orderlist.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I have the following version of Boost:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ dpkg -s libboost-dev | grep Version
Version: 1.67.0.1

Re: Using vineyards

Dmitriy Morozov

What version of Boost are you using?

Either way, pull the new version of Dionysus and try it now. I pushed what I think is a fix for this problem.

On Sat, Nov 23, 2019 at 8:46 PM <jfespinoza.mx@...> wrote:
Hi. I have tried to install the Dionysus library to use the vineyard programs, that is, the first version of Dionysus (https://mrzv.org/software/dionysus/). But when executing make, the following appears:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ make
Scanning dependencies of target bottleneck-distance
[  1%] Building CXX object examples/CMakeFiles/bottleneck-distance.dir/bottleneck-distance.o
[  2%] Linking CXX executable bottleneck-distance
[  2%] Built target bottleneck-distance
Scanning dependencies of target compare-diagrams
[  3%] Building CXX object examples/alphashapes/CMakeFiles/compare-diagrams.dir/compare-diagrams.o
[  4%] Linking CXX executable compare-diagrams
[  4%] Built target compare-diagrams
Scanning dependencies of target cech-complex
[  5%] Building CXX object examples/cech-complex/CMakeFiles/cech-complex.dir/cech-complex.o
[  6%] Linking CXX executable cech-complex
[  6%] Built target cech-complex
Scanning dependencies of target rips-consistency-zigzag
[  7%] Building CXX object examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::generate(Dimension, Rips<Distances_, Simplex_>::DistanceType, const Functor&, I
terator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:34:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:34:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::vertex_cofaces(Rips<Distances_, Simplex_>::IndexType, Dimension, Rips<Distances
_, Simplex_>::DistanceType, const Functor&, Iterator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:52:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:52:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::edge_cofaces(Rips<Distances_, Simplex_>::IndexType, Rips<Distances_, Simplex_>:
:IndexType, Dimension, Rips<Distances_, Simplex_>::DistanceType, const Functor&, Iterator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:78:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:78:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::cofaces(const Simplex&, Dimension, Rips<Distances_, Simplex_>::DistanceType, co
nst Functor&, Iterator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:114:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f, false);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:114:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::bron_kerbosch(Rips<Distances_, Simplex_>::VertexContainer&, const VertexContain
er&, typename Rips<Distances_, Simplex_>::Simplex::VertexContainer::const_iterator, Dimension, const NeighborTest&, const Functor&, bool) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:143:64: error: next’ is not a member of ‘boost
for (typename VertexContainer::const_iterator cur = boost::next(excluded); cur != candidates.end(); ++cur)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:143:64: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:153:69: error: next’ is not a member of ‘boost
for (typename VertexContainer::const_iterator ccur = boost::next(cur); ccur != candidates.end(); ++ccur)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:153:69: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘Rips<Distances_, Simplex_>::DistanceType Rips<Distances_, Simplex_>::max_distance() const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:182:35: error: next’ is not a member of ‘boost
for (IndexType b = boost::next(a); b != distances_.end(); ++b)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:182:35: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘Rips<Distances_, Simplex_>::DistanceType Rips<Distances_, Simplex_>::Evaluator::operator()(const Simplex&) const
’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:194:76: error: next’ is not a member of ‘boost
for (typename Simplex::VertexContainer::const_iterator  b = boost::next(a);         b != s.vertices().end();    ++b)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:194:76: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::IndexDeathPair ZigzagPersistence<BirthID_, SimplexData_
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:98:67: error: prior’ is not a member of ‘boost
unsigned order              = b_list.empty() ? 0 : boost::prior(b_list.end())->order + 1;
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:98:67: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:100:46: error: prior’ is not a member of ‘boost
BIndex last_b               = boost::prior(b_list.end());
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:100:46: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::Death ZigzagPersistence<BirthID_, SimplexData_>::remove
(ZigzagPersistence<BirthID_, SimplexData_>::SimplexIndex, const BirthID&, Visitor&)’:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:269:35: error: prior’ is not a member of ‘boost
reducers.push_back(boost::prior(z_row.rend()));     // j is the first reducer
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:269:35: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:278:63: error: next’ is not a member of ‘boost
reducers.push_back(ZRowReverseIterator(boost::next(cur)));
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:278:63: note: suggested alternative: ‘get
reducers.push_back(ZRowReverseIterator(boost::next(cur)));
^~~~
get
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::SimplexIndex ZigzagPersistence<BirthID_, SimplexData_>:
:ZigzagVisitor::new_simplex(ZigzagPersistence<BirthID_, SimplexData_>&)’:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:685:58: error: prior’ is not a member of ‘boost
unsigned order      = zz.s_list.empty() ? 0 : boost::prior(zz.s_list.end())->order + 1;
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:685:58: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:687:19: error: prior’ is not a member of ‘boost
return boost::prior(zz.s_list.end());
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:687:19: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::ZIndex ZigzagPersistence<BirthID_, SimplexData_>::Zigza
gVisitor::new_z_in_add(ZigzagPersistence<BirthID_, SimplexData_>&, const ZColumn&, const BRow&)’:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:695:66: error: prior’ is not a member of ‘boost
int order                   = zz.z_list.empty() ? 0 : boost::prior(zz.z_list.end())->order + 1;
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:695:66: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:697:19: error: prior’ is not a member of ‘boost
return boost::prior(zz.z_list.end());
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:697:19: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
make[2]: *** [examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/build.make:63: examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:270: examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Could you tell me if it is a missing library?

Best.

J.

Using vineyards

jfespinoza.mx@...

Hi. I have tried to install the Dionysus library to use the vineyard programs, that is, the first version of Dionysus (https://mrzv.org/software/dionysus/). But when executing make, the following appears:

jesus@LaBestia:~/Dionysus/Dionysus/build\$ make
Scanning dependencies of target bottleneck-distance
[  1%] Building CXX object examples/CMakeFiles/bottleneck-distance.dir/bottleneck-distance.o
[  2%] Linking CXX executable bottleneck-distance
[  2%] Built target bottleneck-distance
Scanning dependencies of target compare-diagrams
[  3%] Building CXX object examples/alphashapes/CMakeFiles/compare-diagrams.dir/compare-diagrams.o
[  4%] Linking CXX executable compare-diagrams
[  4%] Built target compare-diagrams
Scanning dependencies of target cech-complex
[  5%] Building CXX object examples/cech-complex/CMakeFiles/cech-complex.dir/cech-complex.o
[  6%] Linking CXX executable cech-complex
[  6%] Built target cech-complex
Scanning dependencies of target rips-consistency-zigzag
[  7%] Building CXX object examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::generate(Dimension, Rips<Distances_, Simplex_>::DistanceType, const Functor&, I
terator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:34:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:34:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::vertex_cofaces(Rips<Distances_, Simplex_>::IndexType, Dimension, Rips<Distances
_, Simplex_>::DistanceType, const Functor&, Iterator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:52:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:52:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::edge_cofaces(Rips<Distances_, Simplex_>::IndexType, Rips<Distances_, Simplex_>:
:IndexType, Dimension, Rips<Distances_, Simplex_>::DistanceType, const Functor&, Iterator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:78:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:78:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::cofaces(const Simplex&, Dimension, Rips<Distances_, Simplex_>::DistanceType, co
nst Functor&, Iterator, Iterator) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:114:47: error: prior’ is not a member of ‘boost
bron_kerbosch(current, candidates, boost::prior(candidates.begin()), k, neighbor, f, false);
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:114:47: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘void Rips<Distances_, Simplex_>::bron_kerbosch(Rips<Distances_, Simplex_>::VertexContainer&, const VertexContain
er&, typename Rips<Distances_, Simplex_>::Simplex::VertexContainer::const_iterator, Dimension, const NeighborTest&, const Functor&, bool) const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:143:64: error: next’ is not a member of ‘boost
for (typename VertexContainer::const_iterator cur = boost::next(excluded); cur != candidates.end(); ++cur)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:143:64: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:153:69: error: next’ is not a member of ‘boost
for (typename VertexContainer::const_iterator ccur = boost::next(cur); ccur != candidates.end(); ++ccur)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:153:69: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘Rips<Distances_, Simplex_>::DistanceType Rips<Distances_, Simplex_>::max_distance() const’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:182:35: error: next’ is not a member of ‘boost
for (IndexType b = boost::next(a); b != distances_.end(); ++b)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:182:35: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:174,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp: In member function ‘Rips<Distances_, Simplex_>::DistanceType Rips<Distances_, Simplex_>::Evaluator::operator()(const Simplex&) const
’:
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:194:76: error: next’ is not a member of ‘boost
for (typename Simplex::VertexContainer::const_iterator  b = boost::next(a);         b != s.vertices().end();    ++b)
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/rips.hpp:194:76: note: suggested alternatives:
In file included from /usr/include/c++/8/bits/stl_algobase.h:66,
from /usr/include/c++/8/vector:60,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:4,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/c++/8/bits/stl_iterator_base_funcs.h:213:5: note:   ‘std::next
next(_InputIterator __x, typename
^~~~
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:29:8: note:   ‘boost::mpl::next
struct next
^~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::IndexDeathPair ZigzagPersistence<BirthID_, SimplexData_
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:98:67: error: prior’ is not a member of ‘boost
unsigned order              = b_list.empty() ? 0 : boost::prior(b_list.end())->order + 1;
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:98:67: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:100:46: error: prior’ is not a member of ‘boost
BIndex last_b               = boost::prior(b_list.end());
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:100:46: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::Death ZigzagPersistence<BirthID_, SimplexData_>::remove
(ZigzagPersistence<BirthID_, SimplexData_>::SimplexIndex, const BirthID&, Visitor&)’:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:269:35: error: prior’ is not a member of ‘boost
reducers.push_back(boost::prior(z_row.rend()));     // j is the first reducer
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:269:35: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:278:63: error: next’ is not a member of ‘boost
reducers.push_back(ZRowReverseIterator(boost::next(cur)));
^~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:278:63: note: suggested alternative: ‘get
reducers.push_back(ZRowReverseIterator(boost::next(cur)));
^~~~
get
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::SimplexIndex ZigzagPersistence<BirthID_, SimplexData_>:
:ZigzagVisitor::new_simplex(ZigzagPersistence<BirthID_, SimplexData_>&)’:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:685:58: error: prior’ is not a member of ‘boost
unsigned order      = zz.s_list.empty() ? 0 : boost::prior(zz.s_list.end())->order + 1;
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:685:58: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:687:19: error: prior’ is not a member of ‘boost
return boost::prior(zz.s_list.end());
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:687:19: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp: In member function ‘ZigzagPersistence<BirthID_, SimplexData_>::ZIndex ZigzagPersistence<BirthID_, SimplexData_>::Zigza
gVisitor::new_z_in_add(ZigzagPersistence<BirthID_, SimplexData_>&, const ZColumn&, const BRow&)’:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:695:66: error: prior’ is not a member of ‘boost
int order                   = zz.z_list.empty() ? 0 : boost::prior(zz.z_list.end())->order + 1;
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:695:66: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
In file included from /home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.h:191,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:2:
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:697:19: error: prior’ is not a member of ‘boost
return boost::prior(zz.z_list.end());
^~~~~
/home/jesus/Dionysus/Dionysus/include/topology/zigzag-persistence.hpp:697:19: note: suggested alternative:
In file included from /usr/include/boost/mpl/next.hpp:17,
from /usr/include/boost/mpl/bind.hpp:25,
from /usr/include/boost/mpl/lambda.hpp:18,
from /usr/include/boost/mpl/apply.hpp:25,
from /home/jesus/Dionysus/Dionysus/include/topology/simplex.h:17,
from /home/jesus/Dionysus/Dionysus/include/topology/rips.h:6,
from /home/jesus/Dionysus/Dionysus/examples/consistency/rips-consistency-zigzag.cpp:1:
/usr/include/boost/mpl/next_prior.hpp:38:8: note:   ‘boost::mpl::prior
struct prior
^~~~~
make[2]: *** [examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/build.make:63: examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/rips-consistency-zigzag.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:270: examples/consistency/CMakeFiles/rips-consistency-zigzag.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Could you tell me if it is a missing library?

Best.

J.

Re: Homology for huge dataset

nukpezah@...

Hi Dmitry
Thanks for the clarification.
Sincerely
Jonathan

Re: Homology for huge dataset

Dmitriy Morozov

Again, this depends on the specifics of your application, but if your
data is in 3D, then yes, you can most likely just replace the rips
step with the alpha shapes. In other words, you understood be
correctly.

On Sat, Oct 5, 2019 at 6:30 PM <nukpezah@...> wrote:

Hi Dmitri
I was using the rips filtration and trying to compute the persistence bar codes by passing the rips filtration to the dionysus.homology_persistence class and then using the dionysus.init_diagrams on the persistence and the rips filtration to obtain the bar codes. If I understand you right, I should use diode to compute the alpha shape filtration and then pass that into dionysus.homology_persistence class to compute the persistence homology? Thanks
Jonathan

Re: Homology for huge dataset

nukpezah@...

Hi Dmitri
I was using the rips filtration and trying to compute the persistence bar codes by passing the rips filtration to the dionysus.homology_persistence class and then using the dionysus.init_diagrams on the persistence and the rips filtration to obtain the bar codes. If I understand you right, I should use diode to compute the alpha shape filtration and then pass that into dionysus.homology_persistence class to compute the persistence homology? Thanks
Jonathan

Re: Homology for huge dataset

Dmitriy Morozov

What filtration are you using? I.e., what are you trying to compute?
If you have points in 3D, alpha shapes is a natural choice. 20K points
is nothing for alpha shapes, 20M would be doable on a laptop.

You can compute an alpha shape filtration using diode:
https://github.com/mrzv/diode

If you are after something else, you'll have to explain what it is.

Dmitriy

On Sat, Oct 5, 2019 at 10:45 AM <nukpezah@...> wrote:

Hi Dmitry
I wanted to find if the latest release of Dionysus is optimized for computing persistence homology for huge data sets. I have a huge dataset of morphology metrics (3 dimensions) of 20,000 cells, that is 20,000 points in 3D space. I was trying to calculate the persistence diagrams on a 16 core processor linux machine but the computation kept crushing. My assumption was that it could not handle the millions of simplexes it needs to calculate? Is there a workaround this if this is the issue? Thanks
Jonathan

Homology for huge dataset

nukpezah@...

Hi Dmitry
I wanted to find if the latest release of Dionysus is optimized for computing persistence homology for huge data sets. I have a huge dataset of morphology metrics (3 dimensions) of 20,000 cells, that is 20,000 points in 3D space. I was trying to calculate the persistence diagrams on a 16 core processor linux machine but the computation kept crushing. My assumption was that it could not handle the millions of simplexes it needs to calculate? Is there a workaround this if this is the issue? Thanks
Jonathan

Re: Homology groups for paths on 8-connected grids

o.lamarre7@...

Oh I see! Great, thank you very much for the help!

Re: Homology groups for paths on 8-connected grids

Dmitriy Morozov

The chains should be defined in terms of the indices in the filtration. Each entry should be a tuple of coefficient and index. So to make your code work, change the chain definitions to:

chain_red = d.Chain([(1,f.index(d.Simplex(s))) for s in [(1,4), (4,8), (8,9)]])
chain_green = d.Chain([(1,f.index(d.Simplex(s))) for s in [(1,5), (5,9)]])
chain_blue = d.Chain([(1,f.index(d.Simplex(s))) for s in [(1,2), (2,6), (6,9)]])

On Wed, Sep 18, 2019 at 11:06 PM <o.lamarre7@...> wrote:
Hi!
I've been playing around with this library and after going through the (great) documentation for it, I'm still stuck trying to implement what I believe to be rather basic: evaluate path homologies on already-known 8-connected grids.

Here's a sample problem to illustrate the situation: say we have an already-known 8-connected grid/map with known obstacles (shown in dark gray). Such a 2D map can be represented as a simplicial complex (containing k-0, k-1 and k-2 simplices). The space contained between the 2,5,6,9 vertices is a hole:

Now, I would like to compare different chains (with the same start and end vertices) and would like to tell whether they belong to the same homology group or not. In the following example, the red and green 1-chains should be considered homologous but the blue chain should belong to a different homology group:

I have attempted to implement this example in a very simply Dionysus example using Python:

import dionysus as d

# Create simplicial complex
simplices_k0 = [[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]
simplices_k1 = [[0,1],[1,2], [2,3], [0,4], [0,5], [1,4], [1,5], [2,5], [2,6], [3,6], [4,5], [4,7], [4,8], [5,7], [5,8], [5,9], [6,9], [6,10], [7,8], [8,9], [9,10]]
simplices_k2 = [[0,4,5], [0,1,5], [0,4,1], [1,4,5], [1,2,5], [2,3,6], [4,5,7], [5,7,8], [4,5,8], [4,7,8], [5,8,9], [6,9,10]]

# Create filtration and reduced boundary matrix
f = d.Filtration(simplices_k0 + simplices_k1 + simplices_k2)
f.sort()
m = d.homology_persistence(f)

# Chains to evaluate/compare
chain_red = d.Chain([(1,4), (4,8), (8,9)])
chain_green = d.Chain([(1,5), (5,9)])
chain_blue = d.Chain([(1,2), (2,6), (6,9)])

m.homologous(chain_red, chain_green)    # Returns False (but was expecting True)
m.homologous(chain_red, chain_blue)      # Returns True  (but was expecting False)
m.homologous(chain_green, chain_blue)  # Returns False (was expecting False)
As mentioned in the comments above, there is definitely something I am missing. First, am I creating the chains properly? I thought they were basically a list of 1-D simplices tuples, but this might not be the case (still confused after looking at the API documentation). Second - would anyone be able to tell if this is a proper usage for the "homologous" method? If not, how could I adapt the code above to successfully compare the red-green-blue chains from the example?

Thank you very much!