scikit-tda / ripser.py

A Lean Persistent Homology Library for Python
http://ripser.scikit-tda.org
Other
276 stars 61 forks source link

Install Ripser on ArchLinux #139

Closed galenseilis closed 2 years ago

galenseilis commented 2 years ago

I tried to install scikit-tda using pip3 install scikit-tda and found that ripser was not installing properly. I tried pip3 install ripser directly and got the same error. This is the output.

pip3 install ripser
Defaulting to user installation because normal site-packages is not writeable
Collecting ripser
  Using cached ripser-0.6.1.tar.gz (72 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: numpy in /usr/lib/python3.10/site-packages (from ripser) (1.21.5)
Requirement already satisfied: scikit-learn in ./.local/lib/python3.10/site-packages (from ripser) (1.0.2)
Collecting Cython
  Using cached Cython-0.29.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.9 MB)
Requirement already satisfied: scipy in /usr/lib/python3.10/site-packages (from ripser) (1.7.3)
Collecting persim
  Using cached persim-0.3.1-py3-none-any.whl (47 kB)
Requirement already satisfied: matplotlib in /usr/lib/python3.10/site-packages (from persim->ripser) (3.5.1)
Requirement already satisfied: joblib in ./.local/lib/python3.10/site-packages (from persim->ripser) (1.1.0)
Collecting hopcroftkarp
  Using cached hopcroftkarp-1.2.5-py2.py3-none-any.whl
Collecting deprecated
  Using cached Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: wrapt<2,>=1.10 in /usr/lib/python3.10/site-packages (from deprecated->persim->ripser) (1.12.1)
Requirement already satisfied: cycler>=0.10 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (0.10.0)
Requirement already satisfied: fonttools>=4.22.0 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (4.28.5)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (1.3.2)
Requirement already satisfied: packaging>=20.0 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (20.9)
Requirement already satisfied: pillow>=6.2.0 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (9.0.0)
Requirement already satisfied: pyparsing>=2.2.1 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (2.4.7)
Requirement already satisfied: python-dateutil>=2.7 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (2.8.2)
Requirement already satisfied: six in /usr/lib/python3.10/site-packages (from cycler>=0.10->matplotlib->persim->ripser) (1.16.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in ./.local/lib/python3.10/site-packages (from scikit-learn->ripser) (3.0.0)
Building wheels for collected packages: ripser
  Building wheel for ripser (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python /usr/lib/python3.10/site-packages/pep517/in_process/_in_process.py build_wheel /tmp/tmp7ur1iu9l
       cwd: /tmp/pip-install-ak00uoso/ripser_1ee63e4d09e64419a5d6389b545b4f4d
  Complete output (150 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.10
  creating build/lib.linux-x86_64-3.10/ripser
  copying ripser/ripser.py -> build/lib.linux-x86_64-3.10/ripser
  copying ripser/_version.py -> build/lib.linux-x86_64-3.10/ripser
  copying ripser/__init__.py -> build/lib.linux-x86_64-3.10/ripser
  running build_ext
  building 'pyRipser' extension
  creating build/temp.linux-x86_64-3.10
  creating build/temp.linux-x86_64-3.10/ripser
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -DUSE_COEFFICIENTS=1 -DNDEBUG=1 -DASSEMBLE_REDUCTION_MATRIX=1 -I./ripser -I/usr/include/python3.10 -I/tmp/pip-build-env-3wfykw1s/overlay/lib/python3.10/site-packages/numpy/core/include -c ripser/pyRipser.cpp -o build/temp.linux-x86_64-3.10/ripser/pyRipser.o -Ofast -D_hypot=hypot -std=c++11
  In file included from /tmp/pip-build-env-3wfykw1s/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1960,
                   from /tmp/pip-build-env-3wfykw1s/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /tmp/pip-build-env-3wfykw1s/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from ripser/pyRipser.cpp:739:
  /tmp/pip-build-env-3wfykw1s/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  In file included from ripser/pyRipser.cpp:752:
  ripser/ripser.cpp:163:13: warning: attribute ignored in declaration of ‘struct entry_t’ [-Wattributes]
    163 | PACK(struct entry_t {
        |             ^~~~~~~
  ripser/ripser.cpp:160:49: note: in definition of macro ‘PACK’
    160 | #define PACK( ... ) __attribute__((__packed__)) __VA_ARGS__
        |                                                 ^~~~~~~~~~~
  ripser/ripser.cpp:163:13: note: attribute for ‘struct entry_t’ must follow the ‘struct’ keyword
    163 | PACK(struct entry_t {
        |             ^~~~~~~
  ripser/ripser.cpp:160:49: note: in definition of macro ‘PACK’
    160 | #define PACK( ... ) __attribute__((__packed__)) __VA_ARGS__
        |                                                 ^~~~~~~~~~~
  ripser/ripser.cpp: In member function ‘void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long int> >&, std::vector<std::pair<float, long int> >&)’:
  ripser/ripser.cpp:707:26: error: ‘numeric_limits’ is not a member of ‘std’
    707 |                     std::numeric_limits<value_t>::infinity());
        |                          ^~~~~~~~~~~~~~
  ripser/ripser.cpp:707:48: error: expected primary-expression before ‘>’ token
    707 |                     std::numeric_limits<value_t>::infinity());
        |                                                ^
  ripser/ripser.cpp:707:51: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
    707 |                     std::numeric_limits<value_t>::infinity());
        |                                                   ^~~~~~~~
        |                                                   isfinite
  ripser/ripser.cpp: In member function ‘void ripser<DistanceMatrix>::compute_pairs(std::vector<std::pair<float, long int> >&, ripser<DistanceMatrix>::entry_hash_map&, index_t)’:
  ripser/ripser.cpp:923:30: error: ‘numeric_limits’ is not a member of ‘std’
    923 |                         std::numeric_limits<value_t>::infinity());
        |                              ^~~~~~~~~~~~~~
  ripser/ripser.cpp:923:52: error: expected primary-expression before ‘>’ token
    923 |                         std::numeric_limits<value_t>::infinity());
        |                                                    ^
  ripser/ripser.cpp:923:55: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
    923 |                         std::numeric_limits<value_t>::infinity());
        |                                                       ^~~~~~~~
        |                                                       isfinite
  ripser/ripser.cpp: In function ‘ripserResults rips_dm(float*, int, int, int, float, int)’:
  ripser/ripser.cpp:1146:24: error: ‘numeric_limits’ is not a member of ‘std’
   1146 |     value_t min = std::numeric_limits<value_t>::infinity(),
        |                        ^~~~~~~~~~~~~~
  ripser/ripser.cpp:1146:46: error: expected primary-expression before ‘>’ token
   1146 |     value_t min = std::numeric_limits<value_t>::infinity(),
        |                                              ^
  ripser/ripser.cpp:1146:49: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
   1146 |     value_t min = std::numeric_limits<value_t>::infinity(),
        |                                                 ^~~~~~~~
        |                                                 isfinite
  ripser/ripser.cpp:1153:27: error: ‘numeric_limits’ is not a member of ‘std’
   1153 |     if (threshold == std::numeric_limits<value_t>::max() ||
        |                           ^~~~~~~~~~~~~~
  ripser/ripser.cpp:1153:49: error: expected primary-expression before ‘>’ token
   1153 |     if (threshold == std::numeric_limits<value_t>::max() ||
        |                                                 ^
  ripser/ripser.cpp:1153:52: error: ‘::max’ has not been declared; did you mean ‘std::max’?
   1153 |     if (threshold == std::numeric_limits<value_t>::max() ||
        |                                                    ^~~
        |                                                    std::max
  In file included from /usr/include/c++/11.1.0/algorithm:62,
                   from ripser/ripser.cpp:41,
                   from ripser/pyRipser.cpp:752:
  /usr/include/c++/11.1.0/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
   3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
        |     ^~~
  In file included from ripser/pyRipser.cpp:752:
  ripser/ripser.cpp:1154:27: error: ‘numeric_limits’ is not a member of ‘std’
   1154 |         threshold == std::numeric_limits<value_t>::infinity()) {
        |                           ^~~~~~~~~~~~~~
  ripser/ripser.cpp:1154:49: error: expected primary-expression before ‘>’ token
   1154 |         threshold == std::numeric_limits<value_t>::infinity()) {
        |                                                 ^
  ripser/ripser.cpp:1154:52: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
   1154 |         threshold == std::numeric_limits<value_t>::infinity()) {
        |                                                    ^~~~~~~~
        |                                                    isfinite
  ripser/ripser.cpp:1155:41: error: ‘numeric_limits’ is not a member of ‘std’
   1155 |         value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
        |                                         ^~~~~~~~~~~~~~
  ripser/ripser.cpp:1155:63: error: expected primary-expression before ‘>’ token
   1155 |         value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
        |                                                               ^
  ripser/ripser.cpp:1155:66: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
   1155 |         value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
        |                                                                  ^~~~~~~~
        |                                                                  isfinite
  ripser/ripser.cpp:1157:33: error: ‘numeric_limits’ is not a member of ‘std’
   1157 |             value_t r_i = -std::numeric_limits<value_t>::infinity();
        |                                 ^~~~~~~~~~~~~~
  ripser/ripser.cpp:1157:55: error: expected primary-expression before ‘>’ token
   1157 |             value_t r_i = -std::numeric_limits<value_t>::infinity();
        |                                                       ^
  ripser/ripser.cpp:1157:58: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
   1157 |             value_t r_i = -std::numeric_limits<value_t>::infinity();
        |                                                          ^~~~~~~~
        |                                                          isfinite
  ripser/ripser.cpp:1167:9: error: ‘max’ was not declared in this scope; did you mean ‘std::max’?
   1167 |         max = std::max(max, d);
        |         ^~~
        |         std::max
  In file included from /usr/include/c++/11.1.0/algorithm:62,
                   from ripser/ripser.cpp:41,
                   from ripser/pyRipser.cpp:752:
  /usr/include/c++/11.1.0/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
   3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
        |     ^~~
  In file included from ripser/pyRipser.cpp:752:
  ripser/ripser.cpp:1168:9: error: ‘max_finite’ was not declared in this scope; did you mean ‘isfinite’?
   1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
        |         ^~~~~~~~~~
        |         isfinite
  ripser/ripser.cpp:1168:32: error: ‘numeric_limits’ is not a member of ‘std’
   1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
        |                                ^~~~~~~~~~~~~~
  ripser/ripser.cpp:1168:54: error: expected primary-expression before ‘>’ token
   1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
        |                                                      ^
  ripser/ripser.cpp:1168:57: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
   1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
        |                                                         ^~~~~~~~
        |                                                         isfinite
  ripser/ripser.cpp:1176:22: error: ‘max’ was not declared in this scope; did you mean ‘std::max’?
   1176 |     if (threshold >= max) {
        |                      ^~~
        |                      std::max
  In file included from /usr/include/c++/11.1.0/algorithm:62,
                   from ripser/ripser.cpp:41,
                   from ripser/pyRipser.cpp:752:
  /usr/include/c++/11.1.0/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
   3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
        |     ^~~
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for ripser
Failed to build ripser
ERROR: Could not build wheels for ripser which use PEP 517 and cannot be installed directly
galenseilis commented 2 years ago

I updated pip and got a different output when I retried to install ripser.

pip3 install ripser
Defaulting to user installation because normal site-packages is not writeable
Collecting ripser
  Using cached ripser-0.6.1.tar.gz (72 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting Cython
  Using cached Cython-0.29.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl (1.9 MB)
Requirement already satisfied: scikit-learn in ./.local/lib/python3.10/site-packages (from ripser) (1.0.2)
Requirement already satisfied: scipy in /usr/lib/python3.10/site-packages (from ripser) (1.7.3)
Requirement already satisfied: numpy in /usr/lib/python3.10/site-packages (from ripser) (1.21.5)
Requirement already satisfied: persim in ./.local/lib/python3.10/site-packages (from ripser) (0.3.1)
Requirement already satisfied: hopcroftkarp in ./.local/lib/python3.10/site-packages (from persim->ripser) (1.2.5)
Requirement already satisfied: joblib in ./.local/lib/python3.10/site-packages (from persim->ripser) (1.1.0)
Requirement already satisfied: deprecated in ./.local/lib/python3.10/site-packages (from persim->ripser) (1.2.13)
Requirement already satisfied: matplotlib in /usr/lib/python3.10/site-packages (from persim->ripser) (3.5.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in ./.local/lib/python3.10/site-packages (from scikit-learn->ripser) (3.0.0)
Requirement already satisfied: wrapt<2,>=1.10 in /usr/lib/python3.10/site-packages (from deprecated->persim->ripser) (1.12.1)
Requirement already satisfied: cycler>=0.10 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (0.10.0)
Requirement already satisfied: fonttools>=4.22.0 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (4.28.5)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (1.3.2)
Requirement already satisfied: packaging>=20.0 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (20.9)
Requirement already satisfied: pillow>=6.2.0 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (9.0.0)
Requirement already satisfied: pyparsing>=2.2.1 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (2.4.7)
Requirement already satisfied: python-dateutil>=2.7 in /usr/lib/python3.10/site-packages (from matplotlib->persim->ripser) (2.8.2)
Requirement already satisfied: six in /usr/lib/python3.10/site-packages (from cycler>=0.10->matplotlib->persim->ripser) (1.16.0)
Building wheels for collected packages: ripser
  Building wheel for ripser (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for ripser (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [150 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.10
      creating build/lib.linux-x86_64-3.10/ripser
      copying ripser/ripser.py -> build/lib.linux-x86_64-3.10/ripser
      copying ripser/_version.py -> build/lib.linux-x86_64-3.10/ripser
      copying ripser/__init__.py -> build/lib.linux-x86_64-3.10/ripser
      running build_ext
      building 'pyRipser' extension
      creating build/temp.linux-x86_64-3.10
      creating build/temp.linux-x86_64-3.10/ripser
      gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fPIC -DUSE_COEFFICIENTS=1 -DNDEBUG=1 -DASSEMBLE_REDUCTION_MATRIX=1 -I./ripser -I/usr/include/python3.10 -I/tmp/pip-build-env-e137bwdd/overlay/lib/python3.10/site-packages/numpy/core/include -c ripser/pyRipser.cpp -o build/temp.linux-x86_64-3.10/ripser/pyRipser.o -Ofast -D_hypot=hypot -std=c++11
      In file included from /tmp/pip-build-env-e137bwdd/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/ndarraytypes.h:1960,
                       from /tmp/pip-build-env-e137bwdd/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                       from /tmp/pip-build-env-e137bwdd/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                       from ripser/pyRipser.cpp:739:
      /tmp/pip-build-env-e137bwdd/overlay/lib/python3.10/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
         17 | #warning "Using deprecated NumPy API, disable it with " \
            |  ^~~~~~~
      In file included from ripser/pyRipser.cpp:752:
      ripser/ripser.cpp:163:13: warning: attribute ignored in declaration of ‘struct entry_t’ [-Wattributes]
        163 | PACK(struct entry_t {
            |             ^~~~~~~
      ripser/ripser.cpp:160:49: note: in definition of macro ‘PACK’
        160 | #define PACK( ... ) __attribute__((__packed__)) __VA_ARGS__
            |                                                 ^~~~~~~~~~~
      ripser/ripser.cpp:163:13: note: attribute for ‘struct entry_t’ must follow the ‘struct’ keyword
        163 | PACK(struct entry_t {
            |             ^~~~~~~
      ripser/ripser.cpp:160:49: note: in definition of macro ‘PACK’
        160 | #define PACK( ... ) __attribute__((__packed__)) __VA_ARGS__
            |                                                 ^~~~~~~~~~~
      ripser/ripser.cpp: In member function ‘void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long int> >&, std::vector<std::pair<float, long int> >&)’:
      ripser/ripser.cpp:707:26: error: ‘numeric_limits’ is not a member of ‘std’
        707 |                     std::numeric_limits<value_t>::infinity());
            |                          ^~~~~~~~~~~~~~
      ripser/ripser.cpp:707:48: error: expected primary-expression before ‘>’ token
        707 |                     std::numeric_limits<value_t>::infinity());
            |                                                ^
      ripser/ripser.cpp:707:51: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
        707 |                     std::numeric_limits<value_t>::infinity());
            |                                                   ^~~~~~~~
            |                                                   isfinite
      ripser/ripser.cpp: In member function ‘void ripser<DistanceMatrix>::compute_pairs(std::vector<std::pair<float, long int> >&, ripser<DistanceMatrix>::entry_hash_map&, index_t)’:
      ripser/ripser.cpp:923:30: error: ‘numeric_limits’ is not a member of ‘std’
        923 |                         std::numeric_limits<value_t>::infinity());
            |                              ^~~~~~~~~~~~~~
      ripser/ripser.cpp:923:52: error: expected primary-expression before ‘>’ token
        923 |                         std::numeric_limits<value_t>::infinity());
            |                                                    ^
      ripser/ripser.cpp:923:55: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
        923 |                         std::numeric_limits<value_t>::infinity());
            |                                                       ^~~~~~~~
            |                                                       isfinite
      ripser/ripser.cpp: In function ‘ripserResults rips_dm(float*, int, int, int, float, int)’:
      ripser/ripser.cpp:1146:24: error: ‘numeric_limits’ is not a member of ‘std’
       1146 |     value_t min = std::numeric_limits<value_t>::infinity(),
            |                        ^~~~~~~~~~~~~~
      ripser/ripser.cpp:1146:46: error: expected primary-expression before ‘>’ token
       1146 |     value_t min = std::numeric_limits<value_t>::infinity(),
            |                                              ^
      ripser/ripser.cpp:1146:49: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
       1146 |     value_t min = std::numeric_limits<value_t>::infinity(),
            |                                                 ^~~~~~~~
            |                                                 isfinite
      ripser/ripser.cpp:1153:27: error: ‘numeric_limits’ is not a member of ‘std’
       1153 |     if (threshold == std::numeric_limits<value_t>::max() ||
            |                           ^~~~~~~~~~~~~~
      ripser/ripser.cpp:1153:49: error: expected primary-expression before ‘>’ token
       1153 |     if (threshold == std::numeric_limits<value_t>::max() ||
            |                                                 ^
      ripser/ripser.cpp:1153:52: error: ‘::max’ has not been declared; did you mean ‘std::max’?
       1153 |     if (threshold == std::numeric_limits<value_t>::max() ||
            |                                                    ^~~
            |                                                    std::max
      In file included from /usr/include/c++/11.1.0/algorithm:62,
                       from ripser/ripser.cpp:41,
                       from ripser/pyRipser.cpp:752:
      /usr/include/c++/11.1.0/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
       3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
            |     ^~~
      In file included from ripser/pyRipser.cpp:752:
      ripser/ripser.cpp:1154:27: error: ‘numeric_limits’ is not a member of ‘std’
       1154 |         threshold == std::numeric_limits<value_t>::infinity()) {
            |                           ^~~~~~~~~~~~~~
      ripser/ripser.cpp:1154:49: error: expected primary-expression before ‘>’ token
       1154 |         threshold == std::numeric_limits<value_t>::infinity()) {
            |                                                 ^
      ripser/ripser.cpp:1154:52: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
       1154 |         threshold == std::numeric_limits<value_t>::infinity()) {
            |                                                    ^~~~~~~~
            |                                                    isfinite
      ripser/ripser.cpp:1155:41: error: ‘numeric_limits’ is not a member of ‘std’
       1155 |         value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
            |                                         ^~~~~~~~~~~~~~
      ripser/ripser.cpp:1155:63: error: expected primary-expression before ‘>’ token
       1155 |         value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
            |                                                               ^
      ripser/ripser.cpp:1155:66: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
       1155 |         value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
            |                                                                  ^~~~~~~~
            |                                                                  isfinite
      ripser/ripser.cpp:1157:33: error: ‘numeric_limits’ is not a member of ‘std’
       1157 |             value_t r_i = -std::numeric_limits<value_t>::infinity();
            |                                 ^~~~~~~~~~~~~~
      ripser/ripser.cpp:1157:55: error: expected primary-expression before ‘>’ token
       1157 |             value_t r_i = -std::numeric_limits<value_t>::infinity();
            |                                                       ^
      ripser/ripser.cpp:1157:58: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
       1157 |             value_t r_i = -std::numeric_limits<value_t>::infinity();
            |                                                          ^~~~~~~~
            |                                                          isfinite
      ripser/ripser.cpp:1167:9: error: ‘max’ was not declared in this scope; did you mean ‘std::max’?
       1167 |         max = std::max(max, d);
            |         ^~~
            |         std::max
      In file included from /usr/include/c++/11.1.0/algorithm:62,
                       from ripser/ripser.cpp:41,
                       from ripser/pyRipser.cpp:752:
      /usr/include/c++/11.1.0/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
       3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
            |     ^~~
      In file included from ripser/pyRipser.cpp:752:
      ripser/ripser.cpp:1168:9: error: ‘max_finite’ was not declared in this scope; did you mean ‘isfinite’?
       1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
            |         ^~~~~~~~~~
            |         isfinite
      ripser/ripser.cpp:1168:32: error: ‘numeric_limits’ is not a member of ‘std’
       1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
            |                                ^~~~~~~~~~~~~~
      ripser/ripser.cpp:1168:54: error: expected primary-expression before ‘>’ token
       1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
            |                                                      ^
      ripser/ripser.cpp:1168:57: error: ‘::infinity’ has not been declared; did you mean ‘isfinite’?
       1168 |         max_finite = d != std::numeric_limits<value_t>::infinity()
            |                                                         ^~~~~~~~
            |                                                         isfinite
      ripser/ripser.cpp:1176:22: error: ‘max’ was not declared in this scope; did you mean ‘std::max’?
       1176 |     if (threshold >= max) {
            |                      ^~~
            |                      std::max
      In file included from /usr/include/c++/11.1.0/algorithm:62,
                       from ripser/ripser.cpp:41,
                       from ripser/pyRipser.cpp:752:
      /usr/include/c++/11.1.0/bits/stl_algo.h:3467:5: note: ‘std::max’ declared here
       3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
            |     ^~~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for ripser
Failed to build ripser
ERROR: Could not build wheels for ripser, which is required to install pyproject.toml-based projects
ctralie commented 2 years ago

This should be fixed in the most recent release! We can re-open the issue if not