scikit-tda / scikit-tda

Topological Data Analysis for Python🐍
https://docs.scikit-tda.org
Other
527 stars 55 forks source link

error for windows installation #5

Closed Sandy4321 closed 5 years ago

Sandy4321 commented 5 years ago

how to install on windows? can you put it to conda forge then instalation will be easy like http://gudhi.gforge.inria.fr/ conda install -c conda-forge gudhi

Sandy4321 commented 5 years ago

error message is

Microsoft Windows [Version 10.0.17763.379]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>pip install scikit-tda
Collecting scikit-tda
  Using cached https://files.pythonhosted.org/packages/e2/67/14676df9d3c8fae3324f6a73e60e9b705c1dfea8131e275a313ab90bd09d/scikit_tda-0.0.3-py3-none-any.whl
Requirement already satisfied: Cython in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (0.27.3)
Requirement already satisfied: pillow in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (5.0.0)
Requirement already satisfied: persim in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (0.0.8)
Requirement already satisfied: numpy in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (1.14.2)
Collecting tadasets (from scikit-tda)
  Using cached https://files.pythonhosted.org/packages/5b/06/d1b9edccfcd071b245b0d1ab4b22eb2ff7aaeaa6d015db58d701d9782122/tadasets-0.0.4-py3-none-any.whl
Collecting kmapper (from scikit-tda)
  Using cached https://files.pythonhosted.org/packages/fb/3f/a1290b9425a7e0ff4ae51a6e6ff68e50ad793b3460f435c2ec81c0383751/kmapper-1.2.0-py3-none-any.whl
Requirement already satisfied: matplotlib in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (2.2.2)
Requirement already satisfied: scipy in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (1.0.0)
Requirement already satisfied: scikit-learn in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (0.19.1)
Collecting ripser (from scikit-tda)
  Using cached https://files.pythonhosted.org/packages/8c/52/ca457da871708a169a0042d955f31f55caa060d1846f3de72b538724ef50/ripser-0.3.2.tar.gz
Collecting umap-learn (from scikit-tda)
Requirement already satisfied: numba in c:\users\sndr\anaconda3\lib\site-packages (from scikit-tda) (0.42.0)
Requirement already satisfied: hopcroftkarp in c:\users\sndr\anaconda3\lib\site-packages (from persim->scikit-tda) (1.2.4)
Requirement already satisfied: Jinja2 in c:\users\sndr\anaconda3\lib\site-packages (from kmapper->scikit-tda) (2.10)
Requirement already satisfied: cycler>=0.10 in c:\users\sndr\anaconda3\lib\site-packages (from matplotlib->scikit-tda) (0.10.0)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\users\sndr\anaconda3\lib\site-packages (from matplotlib->scikit-tda) (2.2.0)
Requirement already satisfied: python-dateutil>=2.1 in c:\users\sndr\anaconda3\lib\site-packages (from matplotlib->scikit-tda) (2.6.1)
Requirement already satisfied: pytz in c:\users\sndr\anaconda3\lib\site-packages (from matplotlib->scikit-tda) (2018.3)
Requirement already satisfied: six>=1.10 in c:\users\sndr\anaconda3\lib\site-packages (from matplotlib->scikit-tda) (1.11.0)
Requirement already satisfied: kiwisolver>=1.0.1 in c:\users\sndr\anaconda3\lib\site-packages (from matplotlib->scikit-tda) (1.0.1)
Requirement already satisfied: llvmlite>=0.27.0dev0 in c:\users\sndr\anaconda3\lib\site-packages (from numba->scikit-tda) (0.27.0)
Requirement already satisfied: MarkupSafe>=0.23 in c:\users\sndr\anaconda3\lib\site-packages (from Jinja2->kmapper->scikit-tda) (1.0)
Requirement already satisfied: setuptools in c:\users\sndr\anaconda3\lib\site-packages (from kiwisolver>=1.0.1->matplotlib->scikit-tda) (40.8.0)
Building wheels for collected packages: ripser
  Building wheel for ripser (setup.py) ... error
  Complete output from command C:\Users\sndr\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\sndr\\AppData\\Local\\Temp\\pip-install-qfuv8vfq\\ripser\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\sndr\AppData\Local\Temp\pip-wheel-h8ontev6 --python-tag cp36:
  Warning: Extension name 'pyRipser' does not match fully qualified name 'ripser.pyRipser' of 'ripser/pyRipser.pyx'
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.6
  creating build\lib.win-amd64-3.6\ripser
  copying ripser\ripser.py -> build\lib.win-amd64-3.6\ripser
  copying ripser\_version.py -> build\lib.win-amd64-3.6\ripser
  copying ripser\__init__.py -> build\lib.win-amd64-3.6\ripser
  running build_ext
  building 'pyRipser' extension
  creating build\temp.win-amd64-3.6
  creating build\temp.win-amd64-3.6\Release
  creating build\temp.win-amd64-3.6\Release\ripser
  C:\Users\sndr\Anaconda3\Library\mingw-w64\bin\gcc.exe -mdll -O -Wall -DMS_WIN64 -DUSE_COEFFICIENTS=1 -DNDEBUG=1 -DASSEMBLE_REDUCTION_MATRIX=1 -I.\ripser -IC:\Users\sndr\Anaconda3\include -IC:\Users\sndr\Anaconda3\include -IC:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include -c ripser/pyRipser.cpp -o build\temp.win-amd64-3.6\Release\ripser\pyripser.o -Ofast -D_hypot=hypot
  In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/unordered_map:35:0,
                   from ripser/ripser.cpp:50,
                   from ripser/pyRipser.cpp:657:
  C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
   #error This file requires compiler and library support for the \
    ^
  In file included from C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1816:0,
                   from C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:18,
                   from C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                   from ripser/pyRipser.cpp:650:
  C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:13:79: note: #pragma message: C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
                            "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION")
                                                                                 ^
  In file included from ripser/pyRipser.cpp:657:0:
  ripser/ripser.cpp:53:73: error: expected template-name before '<' token
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                                                           ^
  ripser/ripser.cpp:53:73: error: expected '{' before '<' token
  ripser/ripser.cpp:53:73: error: expected unqualified-id before '<' token
  ripser/ripser.cpp:59:33: error: '>>' should be '> >' within a nested template argument list
    std::vector<std::vector<index_t>> B;
                                   ^
  ripser/ripser.cpp: In constructor 'diameter_entry_t::diameter_entry_t(const diameter_index_t&)':
  ripser/ripser.cpp:154:43: warning: delegating constructors only available with -std=c++11 or -std=gnu++11
        : diameter_entry_t(_diameter_index, 1) {}
                                             ^
  ripser/ripser.cpp: At global scope:
  ripser/ripser.cpp:184:49: error: expected ',' or '...' before '&&' token
    compressed_distance_matrix(std::vector<value_t>&& _distances)
                                                   ^
  ripser/ripser.cpp: In constructor 'compressed_distance_matrix<Layout>::compressed_distance_matrix(std::vector<float>)':
  ripser/ripser.cpp:185:18: error: 'move' is not a member of 'std'
        : distances(std::move(_distances)), rows((1 + std::sqrt(1 + 8 * distances.size())) / 2) {
                    ^
  ripser/ripser.cpp:185:28: error: '_distances' was not declared in this scope
        : distances(std::move(_distances)), rows((1 + std::sqrt(1 + 8 * distances.size())) / 2) {
                              ^
  ripser/ripser.cpp: At global scope:
  ripser/ripser.cpp:206:42: error: '>>' should be '> >' within a nested template argument list
    std::vector<std::vector<diameter_index_t>> neighbors;
                                            ^
  ripser/ripser.cpp: In function 'diameter_entry_t pop_pivot(Heap&, coefficient_t)':
  ripser/ripser.cpp:327:3: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
     auto pivot = column.top();
     ^
  ripser/ripser.cpp:327:8: error: 'pivot' does not name a type
     auto pivot = column.top();
          ^
  ripser/ripser.cpp:339:6: error: 'pivot' was not declared in this scope
        pivot = column.top();
        ^
  ripser/ripser.cpp:341:68: error: 'pivot' was not declared in this scope
     } while (!column.empty() && get_index(column.top()) == get_index(pivot));
                                                                      ^
  ripser/ripser.cpp: At global scope:
  ripser/ripser.cpp:458:23: error: expected ',' or '...' before '&&' token
    ripser(DistanceMatrix&& _dist, index_t _dim_max, value_t _threshold, float _ratio,
                         ^
  ripser/ripser.cpp: In constructor 'ripser<DistanceMatrix>::ripser(DistanceMatrix)':
  ripser/ripser.cpp:460:13: error: 'move' is not a member of 'std'
        : dist(std::move(_dist)), n(dist.size()),
               ^
  ripser/ripser.cpp:460:23: error: '_dist' was not declared in this scope
        : dist(std::move(_dist)), n(dist.size()),
                         ^
  ripser/ripser.cpp:461:16: error: '_dim_max' was not declared in this scope
          dim_max(_dim_max), threshold(_threshold),
                  ^
  ripser/ripser.cpp:461:37: error: '_threshold' was not declared in this scope
          dim_max(_dim_max), threshold(_threshold),
                                       ^
  ripser/ripser.cpp:462:14: error: '_ratio' was not declared in this scope
          ratio(_ratio), modulus(_modulus), do_cocycles(_do_cocycles),
                ^
  ripser/ripser.cpp:462:31: error: '_modulus' was not declared in this scope
          ratio(_ratio), modulus(_modulus), do_cocycles(_do_cocycles),
                                 ^
  ripser/ripser.cpp:462:54: error: '_do_cocycles' was not declared in this scope
          ratio(_ratio), modulus(_modulus), do_cocycles(_do_cocycles),
                                                        ^
  ripser/ripser.cpp: In member function 'value_t ripser<DistanceMatrix>::compute_diameter(index_t, index_t) const':
  ripser/ripser.cpp:508:19: error: 'numeric_limits' is not a member of 'std'
     value_t diam = -std::numeric_limits<value_t>::infinity();
                     ^
  ripser/ripser.cpp:508:46: error: expected primary-expression before '>' token
     value_t diam = -std::numeric_limits<value_t>::infinity();
                                                ^
  ripser/ripser.cpp:508:47: error: '::infinity' has not been declared
     value_t diam = -std::numeric_limits<value_t>::infinity();
                                                 ^
  ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&)':
  ripser/ripser.cpp:540:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
     for (auto e : edges) {
          ^
  ripser/ripser.cpp:540:13: error: 'e' does not name a type
     for (auto e : edges) {
               ^
  ripser/ripser.cpp:559:3: error: expected ';' before 'std'
     std::reverse(columns_to_reduce.begin(), columns_to_reduce.end());
     ^
  ripser/ripser.cpp:561:3: error: expected primary-expression before 'for'
     for (index_t i = 0; i < n; ++i) {
     ^
  ripser/ripser.cpp:561:3: error: expected ')' before 'for'
  ripser/ripser.cpp:564:43: error: 'numeric_limits' is not a member of 'std'
       births_and_deaths_by_dim[0].push_back(std::numeric_limits<value_t>::infinity());
                                             ^
  ripser/ripser.cpp:564:70: error: expected primary-expression before '>' token
       births_and_deaths_by_dim[0].push_back(std::numeric_limits<value_t>::infinity());
                                                                        ^
  ripser/ripser.cpp:564:71: error: '::infinity' has not been declared
       births_and_deaths_by_dim[0].push_back(std::numeric_limits<value_t>::infinity());
                                                                         ^
  ripser/ripser.cpp: In member function 'diameter_entry_t ripser<DistanceMatrix>::add_coboundary_and_get_pivot(Iterator, Iterator, coefficient_t, Column&, Column&, const index_t&, hash_map<long long int, long long int>&, bool&)':
  ripser/ripser.cpp:578:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
     for (auto it = column_begin; it != column_end; ++it) {
          ^
  ripser/ripser.cpp:578:13: error: 'it' does not name a type
     for (auto it = column_begin; it != column_end; ++it) {
               ^
  ripser/ripser.cpp:578:32: error: expected ';' before 'it'
     for (auto it = column_begin; it != column_end; ++it) {
                                  ^
  ripser/ripser.cpp:578:32: error: 'it' was not declared in this scope
  ripser/ripser.cpp:593:29: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
         if (pivot_column_index.find(get_index(coface)) ==
                               ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp:594:29: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
             pivot_column_index.end()) {
                               ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp:601:9: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
      for (auto coface : coface_entries) working_coboundary.push(coface);
           ^
  ripser/ripser.cpp:601:14: error: 'coface' does not name a type
      for (auto coface : coface_entries) working_coboundary.push(coface);
                ^
  ripser/ripser.cpp:602:3: error: expected ';' before '}' token
     }
     ^
  ripser/ripser.cpp:602:3: error: expected primary-expression before '}' token
  ripser/ripser.cpp:602:3: error: expected ';' before '}' token
  ripser/ripser.cpp:602:3: error: expected primary-expression before '}' token
  ripser/ripser.cpp:602:3: error: expected ')' before '}' token
  ripser/ripser.cpp:602:3: error: expected primary-expression before '}' token
  ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::compute_pairs(std::vector<std::pair<float, long long int> >&, hash_map<long long int, long long int>&, index_t)':
  ripser/ripser.cpp:621:4: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
      auto column_to_reduce = columns_to_reduce[index_column_to_reduce];
      ^
  ripser/ripser.cpp:621:9: error: 'column_to_reduce' does not name a type
      auto column_to_reduce = columns_to_reduce[index_column_to_reduce];
           ^
  ripser/ripser.cpp:625:74: error: '>>' should be '> >' within a nested template argument list
                          greater_diameter_or_smaller_index<diameter_entry_t>>
                                                                            ^
  ripser/ripser.cpp:630:74: error: '>>' should be '> >' within a nested template argument list
                          greater_diameter_or_smaller_index<diameter_entry_t>>
                                                                            ^
  ripser/ripser.cpp:633:36: error: 'column_to_reduce' was not declared in this scope
      value_t diameter = get_diameter(column_to_reduce);
                                      ^
  ripser/ripser.cpp:656:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       auto reduction_column_begin = reduction_matrix.cbegin(index_column_to_add),
       ^
  ripser/ripser.cpp:656:10: error: 'reduction_column_begin' does not name a type
       auto reduction_column_begin = reduction_matrix.cbegin(index_column_to_add),
            ^
  ripser/ripser.cpp:677:9: error: 'reduction_column_begin' was not declared in this scope
           reduction_column_begin, reduction_column_end, factor_column_to_add,
           ^
  ripser/ripser.cpp:677:33: error: 'reduction_column_end' was not declared in this scope
           reduction_column_begin, reduction_column_end, factor_column_to_add,
                                   ^
  ripser/ripser.cpp:684:6: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
        auto pair = pivot_column_index.find(get_index(pivot));
        ^
  ripser/ripser.cpp:684:11: error: 'pair' does not name a type
        auto pair = pivot_column_index.find(get_index(pivot));
             ^
  ripser/ripser.cpp:686:10: error: 'pair' was not declared in this scope
        if (pair != pivot_column_index.end()) {
            ^
  ripser/ripser.cpp:686:10: note: suggested alternative:
  In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_algobase.h:64:0,
                   from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/char_traits.h:39,
                   from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/ios:40,
                   from ripser/pyRipser.cpp:652:
  C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_pair.h:96:12: note:   'std::pair'
       struct pair
              ^
  In file included from ripser/pyRipser.cpp:657:0:
  ripser/ripser.cpp:686:36: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
        if (pair != pivot_column_index.end()) {
                                      ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp:698:9: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
           auto cocycle = working_reduction_column;
           ^
  ripser/ripser.cpp:698:14: error: 'cocycle' does not name a type
           auto cocycle = working_reduction_column;
                ^
  ripser/ripser.cpp:702:40: error: 'cocycle' was not declared in this scope
           while (get_index(e = get_pivot(cocycle, modulus)) != -1) {
                                          ^
  ripser/ripser.cpp:716:25: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
         pivot_column_index.insert(
                           ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp:753:46: error: 'numeric_limits' is not a member of 'std'
        births_and_deaths_by_dim[dim].push_back(std::numeric_limits<value_t>::infinity());
                                                ^
  ripser/ripser.cpp:753:73: error: expected primary-expression before '>' token
        births_and_deaths_by_dim[dim].push_back(std::numeric_limits<value_t>::infinity());
                                                                           ^
  ripser/ripser.cpp:753:74: error: '::infinity' has not been declared
        births_and_deaths_by_dim[dim].push_back(std::numeric_limits<value_t>::infinity());
                                                                            ^
  ripser/ripser.cpp:759:7: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
         auto cocycle = working_reduction_column;
         ^
  ripser/ripser.cpp:759:12: error: 'cocycle' does not name a type
         auto cocycle = working_reduction_column;
              ^
  ripser/ripser.cpp:763:38: error: 'cocycle' was not declared in this scope
         while (get_index(e = get_pivot(cocycle, modulus)) != -1) {
                                        ^
  ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::compute_barcodes()':
  ripser/ripser.cpp:798:23: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
       pivot_column_index.reserve(columns_to_reduce.size());
                         ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp: In member function 'diameter_entry_t ripser<compressed_distance_matrix<(compressed_matrix_layout)0u> >::simplex_coboundary_enumerator::next()':
  ripser/ripser.cpp:842:20: warning: range-based 'for' loops only available with -std=c++11 or -std=gnu++11
     for (index_t w : vertices) coface_diameter = std::max(coface_diameter, dist(v, w));
                      ^
  ripser/ripser.cpp: In constructor 'ripser<sparse_distance_matrix>::simplex_coboundary_enumerator::simplex_coboundary_enumerator(diameter_entry_t, index_t, const ripser<sparse_distance_matrix>&)':
  ripser/ripser.cpp:879:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
     for (auto v : vertices) {
          ^
  ripser/ripser.cpp:879:13: error: 'v' does not name a type
     for (auto v : vertices) {
               ^
  ripser/ripser.cpp:883:2: error: expected ';' before '}' token
    }
    ^
  ripser/ripser.cpp:883:2: error: expected primary-expression before '}' token
  ripser/ripser.cpp:883:2: error: expected ';' before '}' token
  ripser/ripser.cpp:883:2: error: expected primary-expression before '}' token
  ripser/ripser.cpp:883:2: error: expected ')' before '}' token
  ripser/ripser.cpp:883:2: error: expected primary-expression before '}' token
  ripser/ripser.cpp: In member function 'bool ripser<sparse_distance_matrix>::simplex_coboundary_enumerator::has_next(bool)':
  ripser/ripser.cpp:886:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
     for (auto &it0 = neighbor_it[0], &end0 = neighbor_end[0]; it0 != end0; ++it0) {
          ^
  ripser/ripser.cpp:886:33: error: invalid initialization of reference of type 'int&' from expression of type 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >'
     for (auto &it0 = neighbor_it[0], &end0 = neighbor_end[0]; it0 != end0; ++it0) {
                                   ^
  ripser/ripser.cpp:886:58: error: invalid initialization of reference of type 'int&' from expression of type 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >'
     for (auto &it0 = neighbor_it[0], &end0 = neighbor_end[0]; it0 != end0; ++it0) {
                                                            ^
  ripser/ripser.cpp:887:9: error: invalid type argument of unary '*' (have 'int')
      x = *it0;
           ^
  ripser/ripser.cpp:889:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       auto &it = neighbor_it[idx], end = neighbor_end[idx];
       ^
  ripser/ripser.cpp:889:31: error: invalid initialization of reference of type 'int&' from expression of type 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >'
       auto &it = neighbor_it[idx], end = neighbor_end[idx];
                                 ^
  ripser/ripser.cpp:889:56: error: cannot convert 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >' to 'int' in initialization
       auto &it = neighbor_it[idx], end = neighbor_end[idx];
                                                          ^
  ripser/ripser.cpp:890:23: error: invalid type argument of unary '*' (have 'int')
       while (get_index(*it) > get_index(x))
                         ^
  ripser/ripser.cpp:892:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       auto y = *it;
       ^
  ripser/ripser.cpp:892:10: error: 'y' does not name a type
       auto y = *it;
            ^
  ripser/ripser.cpp:893:19: error: 'y' was not declared in this scope
       if (get_index(y) != get_index(x))
                     ^
  ripser/ripser.cpp: In member function 'std::vector<std::pair<float, long long int> > ripser<DistanceMatrix>::get_edges() [with DistanceMatrix = sparse_distance_matrix]':
  ripser/ripser.cpp:937:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
     for (auto n : dist.neighbors[i]) {
          ^
  ripser/ripser.cpp:937:13: error: 'n' does not name a type
     for (auto n : dist.neighbors[i]) {
               ^
  ripser/ripser.cpp:941:2: error: expected ';' before 'return'
    return edges;
    ^
  ripser/ripser.cpp:941:2: error: expected primary-expression before 'return'
  ripser/ripser.cpp:941:2: error: expected ';' before 'return'
  ripser/ripser.cpp:941:2: error: expected primary-expression before 'return'
  ripser/ripser.cpp:941:2: error: expected ')' before 'return'
  ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::assemble_columns_to_reduce(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&, hash_map<long long int, long long int>&, index_t) [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>; index_t = long long int]':
  ripser/ripser.cpp:963:25: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
     if (pivot_column_index.find(index) == pivot_column_index.end()) {
                           ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp:963:59: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
     if (pivot_column_index.find(index) == pivot_column_index.end()) {
                                                             ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::assemble_columns_to_reduce(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&, hash_map<long long int, long long int>&, index_t) [with DistanceMatrix = sparse_distance_matrix; index_t = long long int]':
  ripser/ripser.cpp:983:34: warning: range-based 'for' loops only available with -std=c++11 or -std=gnu++11
    for (diameter_index_t simplex : simplices) {
                                    ^
  ripser/ripser.cpp:987:4: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
      auto coface = cofaces.next();
      ^
  ripser/ripser.cpp:987:9: error: 'coface' does not name a type
      auto coface = cofaces.next();
           ^
  ripser/ripser.cpp:989:57: error: 'coface' was not declared in this scope
      next_simplices.push_back(std::make_pair(get_diameter(coface), get_index(coface)));
                                                           ^
  ripser/ripser.cpp:991:26: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
      if (pivot_column_index.find(get_index(coface)) == pivot_column_index.end())
                            ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp:991:72: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
      if (pivot_column_index.find(get_index(coface)) == pivot_column_index.end())
                                                                          ^
  ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
   template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                       ^
  ripser/ripser.cpp: In function 'ripserResults rips_dm(float*, int, int, int, float, int)':
  ripser/ripser.cpp:1006:69: error: 'move' is not a member of 'std'
     compressed_lower_distance_matrix(compressed_upper_distance_matrix(std::move(distances)));
                                                                       ^
  ripser/ripser.cpp:1009:16: error: 'numeric_limits' is not a member of 'std'
    value_t min = std::numeric_limits<value_t>::infinity(),
                  ^
  ripser/ripser.cpp:1009:43: error: expected primary-expression before '>' token
    value_t min = std::numeric_limits<value_t>::infinity(),
                                             ^
  ripser/ripser.cpp:1009:44: error: '::infinity' has not been declared
    value_t min = std::numeric_limits<value_t>::infinity(),
                                              ^
  ripser/ripser.cpp:1013:29: error: 'numeric_limits' is not a member of 'std'
    value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
                               ^
  ripser/ripser.cpp:1013:56: error: expected primary-expression before '>' token
    value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
                                                          ^
  ripser/ripser.cpp:1013:57: error: '::infinity' has not been declared
    value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
                                                           ^
  ripser/ripser.cpp:1015:18: error: 'numeric_limits' is not a member of 'std'
     value_t r_i = -std::numeric_limits<value_t>::infinity();
                    ^
  ripser/ripser.cpp:1015:45: error: expected primary-expression before '>' token
     value_t r_i = -std::numeric_limits<value_t>::infinity();
                                               ^
  ripser/ripser.cpp:1015:46: error: '::infinity' has not been declared
     value_t r_i = -std::numeric_limits<value_t>::infinity();
                                                ^
  ripser/ripser.cpp:1020:19: error: 'numeric_limits' is not a member of 'std'
    if (threshold == std::numeric_limits<value_t>::max()) threshold = enclosing_radius;
                     ^
  ripser/ripser.cpp:1020:46: error: expected primary-expression before '>' token
    if (threshold == std::numeric_limits<value_t>::max()) threshold = enclosing_radius;
                                                ^
  ripser/ripser.cpp:1020:47: error: '::max' has not been declared
    if (threshold == std::numeric_limits<value_t>::max()) threshold = enclosing_radius;
                                                 ^
  ripser/ripser.cpp:1020:47: note: suggested alternative:
  In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/char_traits.h:39:0,
                   from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/ios:40,
                   from ripser/pyRipser.cpp:652:
  C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_algobase.h:265:5: note:   'std::max'
       max(const _Tp& __a, const _Tp& __b, _Compare __comp)
       ^
  In file included from ripser/pyRipser.cpp:657:0:
  ripser/ripser.cpp:1022:7: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
    for (auto d : dist.distances) {
         ^
  ripser/ripser.cpp:1022:12: error: 'd' does not name a type
    for (auto d : dist.distances) {
              ^
  ripser/ripser.cpp:1029:2: error: expected ';' before 'ripserResults'
    ripserResults res;
    ^
  ripser/ripser.cpp:1029:16: error: expected primary-expression before 'res'
    ripserResults res;
                  ^
  ripser/ripser.cpp:1029:16: error: expected ';' before 'res'
  ripser/ripser.cpp:1029:16: error: 'res' was not declared in this scope
  ripser/ripser.cpp:1029:19: error: expected ')' before ';' token
    ripserResults res;
                     ^
  ripser/ripser.cpp:1030:19: error: 'max' was not declared in this scope
    if (threshold >= max) {
                     ^
  ripser/ripser.cpp:1030:19: note: suggested alternative:
  In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/char_traits.h:39:0,
                   from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/ios:40,
                   from ripser/pyRipser.cpp:652:
  C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_algobase.h:265:5: note:   'std::max'
       max(const _Tp& __a, const _Tp& __b, _Compare __comp)
       ^
  In file included from ripser/pyRipser.cpp:657:0:
  ripser/ripser.cpp:1031:46: error: 'move' is not a member of 'std'
     ripser<compressed_lower_distance_matrix> r(std::move(dist), dim_max, threshold, ratio,
                                                ^
  ripser/ripser.cpp:1034:18: error: 'res' was not declared in this scope
     r.copy_results(res);
                    ^
  ripser/ripser.cpp:1036:59: error: 'move' is not a member of 'std'
     ripser<sparse_distance_matrix> r(sparse_distance_matrix(std::move(dist), threshold), dim_max,
                                                             ^
  ripser/ripser.cpp:1039:18: error: 'res' was not declared in this scope
     r.copy_results(res);
                    ^
  ripser/ripser.cpp:1041:2: error: 'res' was not declared in this scope
    res.num_edges = num_edges;
    ^
  ripser/ripser.cpp:1009:10: warning: unused variable 'min' [-Wunused-variable]
    value_t min = std::numeric_limits<value_t>::infinity(),
            ^
  ripser/ripser.cpp: In function 'ripserResults rips_dm_sparse(int*, int*, float*, int, int, int, int, float, int)':
  ripser/ripser.cpp:1051:57: error: no matching function for call to 'ripser<sparse_distance_matrix>::ripser(sparse_distance_matrix, int&, float&, float&, int&, int&)'
            dim_max, threshold, ratio, modulus, do_cocycles);
                                                           ^
  ripser/ripser.cpp:458:2: note: candidate: ripser<DistanceMatrix>::ripser(DistanceMatrix) [with DistanceMatrix = sparse_distance_matrix]
    ripser(DistanceMatrix&& _dist, index_t _dim_max, value_t _threshold, float _ratio,
    ^
  ripser/ripser.cpp:458:2: note:   candidate expects 1 argument, 6 provided
  ripser/ripser.cpp:439:42: note: candidate: ripser<sparse_distance_matrix>::ripser(const ripser<sparse_distance_matrix>&)
   template <typename DistanceMatrix> class ripser {
                                            ^
  ripser/ripser.cpp:439:42: note:   candidate expects 1 argument, 6 provided
  ripser/pyRipser.cpp: In function 'PyTypeObject* __Pyx_ImportType(PyObject*, const char*, const char*, size_t, __Pyx_ImportType_CheckSize)':
  ripser/pyRipser.cpp:6991:53: warning: unknown conversion type character 'z' in format [-Wformat=]
               module_name, class_name, size, basicsize);
                                                       ^
  ripser/pyRipser.cpp:6991:53: warning: unknown conversion type character 'z' in format [-Wformat=]
  ripser/pyRipser.cpp:6991:53: warning: too many arguments for format [-Wformat-extra-args]
  In file included from ripser/pyRipser.cpp:657:0:
  ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>]':
  ripser/ripser.cpp:1033:22:   required from here
  ripser/ripser.cpp:797:32: error: 'hash_map<long long int, long long int> pivot_column_index' has incomplete type
       hash_map<index_t, index_t> pivot_column_index;
                                  ^
  ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = sparse_distance_matrix]':
  ripser/ripser.cpp:1038:22:   required from here
  ripser/ripser.cpp:797:32: error: 'hash_map<long long int, long long int> pivot_column_index' has incomplete type
  ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&) [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>]':
  ripser/ripser.cpp:791:22:   required from 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>]'
  ripser/ripser.cpp:1033:22:   required from here
  ripser/ripser.cpp:559:15: error: could not convert 'std::reverse<__gnu_cxx::__normal_iterator<std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >((& columns_to_reduce)->std::vector<_Tp, _Alloc>::begin<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >(), (& columns_to_reduce)->std::vector<_Tp, _Alloc>::end<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >())' from 'void' to 'bool'
     std::reverse(columns_to_reduce.begin(), columns_to_reduce.end());
                 ^
  ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&) [with DistanceMatrix = sparse_distance_matrix]':
  ripser/ripser.cpp:791:22:   required from 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = sparse_distance_matrix]'
  ripser/ripser.cpp:1038:22:   required from here
  ripser/ripser.cpp:559:15: error: could not convert 'std::reverse<__gnu_cxx::__normal_iterator<std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >((& columns_to_reduce)->std::vector<_Tp, _Alloc>::begin<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >(), (& columns_to_reduce)->std::vector<_Tp, _Alloc>::end<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >())' from 'void' to 'bool'
  ripser/ripser.cpp: In member function 'std::vector<std::pair<float, long long int> > ripser<DistanceMatrix>::get_edges() [with DistanceMatrix = sparse_distance_matrix]':
  ripser/ripser.cpp:942:1: warning: control reaches end of non-void function [-Wreturn-type]
   }
   ^
  error: command 'C:\\Users\\sndr\\Anaconda3\\Library\\mingw-w64\\bin\\gcc.exe' failed with exit status 1

  ----------------------------------------
  Failed building wheel for ripser
  Running setup.py clean for ripser
Failed to build ripser
Installing collected packages: tadasets, kmapper, ripser, umap-learn, scikit-tda
  Running setup.py install for ripser ... error
    Complete output from command C:\Users\sndr\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\sndr\\AppData\\Local\\Temp\\pip-install-qfuv8vfq\\ripser\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\sndr\AppData\Local\Temp\pip-record-uilvyg2i\install-record.txt --single-version-externally-managed --compile:
    Warning: Extension name 'pyRipser' does not match fully qualified name 'ripser.pyRipser' of 'ripser/pyRipser.pyx'
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    creating build\lib.win-amd64-3.6\ripser
    copying ripser\ripser.py -> build\lib.win-amd64-3.6\ripser
    copying ripser\_version.py -> build\lib.win-amd64-3.6\ripser
    copying ripser\__init__.py -> build\lib.win-amd64-3.6\ripser
    running build_ext
    building 'pyRipser' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\ripser
    C:\Users\sndr\Anaconda3\Library\mingw-w64\bin\gcc.exe -mdll -O -Wall -DMS_WIN64 -DUSE_COEFFICIENTS=1 -DNDEBUG=1 -DASSEMBLE_REDUCTION_MATRIX=1 -I.\ripser -IC:\Users\sndr\Anaconda3\include -IC:\Users\sndr\Anaconda3\include -IC:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include -c ripser/pyRipser.cpp -o build\temp.win-amd64-3.6\Release\ripser\pyripser.o -Ofast -D_hypot=hypot
    In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/unordered_map:35:0,
                     from ripser/ripser.cpp:50,
                     from ripser/pyRipser.cpp:657:
    C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
     #error This file requires compiler and library support for the \
      ^
    In file included from C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/ndarraytypes.h:1816:0,
                     from C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/ndarrayobject.h:18,
                     from C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/arrayobject.h:4,
                     from ripser/pyRipser.cpp:650:
    C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h:13:79: note: #pragma message: C:\Users\sndr\Anaconda3\lib\site-packages\numpy\core\include/numpy/npy_1_7_deprecated_api.h(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
                              "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION")
                                                                                   ^
    In file included from ripser/pyRipser.cpp:657:0:
    ripser/ripser.cpp:53:73: error: expected template-name before '<' token
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                                                             ^
    ripser/ripser.cpp:53:73: error: expected '{' before '<' token
    ripser/ripser.cpp:53:73: error: expected unqualified-id before '<' token
    ripser/ripser.cpp:59:33: error: '>>' should be '> >' within a nested template argument list
      std::vector<std::vector<index_t>> B;
                                     ^
    ripser/ripser.cpp: In constructor 'diameter_entry_t::diameter_entry_t(const diameter_index_t&)':
    ripser/ripser.cpp:154:43: warning: delegating constructors only available with -std=c++11 or -std=gnu++11
          : diameter_entry_t(_diameter_index, 1) {}
                                               ^
    ripser/ripser.cpp: At global scope:
    ripser/ripser.cpp:184:49: error: expected ',' or '...' before '&&' token
      compressed_distance_matrix(std::vector<value_t>&& _distances)
                                                     ^
    ripser/ripser.cpp: In constructor 'compressed_distance_matrix<Layout>::compressed_distance_matrix(std::vector<float>)':
    ripser/ripser.cpp:185:18: error: 'move' is not a member of 'std'
          : distances(std::move(_distances)), rows((1 + std::sqrt(1 + 8 * distances.size())) / 2) {
                      ^
    ripser/ripser.cpp:185:28: error: '_distances' was not declared in this scope
          : distances(std::move(_distances)), rows((1 + std::sqrt(1 + 8 * distances.size())) / 2) {
                                ^
    ripser/ripser.cpp: At global scope:
    ripser/ripser.cpp:206:42: error: '>>' should be '> >' within a nested template argument list
      std::vector<std::vector<diameter_index_t>> neighbors;
                                              ^
    ripser/ripser.cpp: In function 'diameter_entry_t pop_pivot(Heap&, coefficient_t)':
    ripser/ripser.cpp:327:3: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       auto pivot = column.top();
       ^
    ripser/ripser.cpp:327:8: error: 'pivot' does not name a type
       auto pivot = column.top();
            ^
    ripser/ripser.cpp:339:6: error: 'pivot' was not declared in this scope
          pivot = column.top();
          ^
    ripser/ripser.cpp:341:68: error: 'pivot' was not declared in this scope
       } while (!column.empty() && get_index(column.top()) == get_index(pivot));
                                                                        ^
    ripser/ripser.cpp: At global scope:
    ripser/ripser.cpp:458:23: error: expected ',' or '...' before '&&' token
      ripser(DistanceMatrix&& _dist, index_t _dim_max, value_t _threshold, float _ratio,
                           ^
    ripser/ripser.cpp: In constructor 'ripser<DistanceMatrix>::ripser(DistanceMatrix)':
    ripser/ripser.cpp:460:13: error: 'move' is not a member of 'std'
          : dist(std::move(_dist)), n(dist.size()),
                 ^
    ripser/ripser.cpp:460:23: error: '_dist' was not declared in this scope
          : dist(std::move(_dist)), n(dist.size()),
                           ^
    ripser/ripser.cpp:461:16: error: '_dim_max' was not declared in this scope
            dim_max(_dim_max), threshold(_threshold),
                    ^
    ripser/ripser.cpp:461:37: error: '_threshold' was not declared in this scope
            dim_max(_dim_max), threshold(_threshold),
                                         ^
    ripser/ripser.cpp:462:14: error: '_ratio' was not declared in this scope
            ratio(_ratio), modulus(_modulus), do_cocycles(_do_cocycles),
                  ^
    ripser/ripser.cpp:462:31: error: '_modulus' was not declared in this scope
            ratio(_ratio), modulus(_modulus), do_cocycles(_do_cocycles),
                                   ^
    ripser/ripser.cpp:462:54: error: '_do_cocycles' was not declared in this scope
            ratio(_ratio), modulus(_modulus), do_cocycles(_do_cocycles),
                                                          ^
    ripser/ripser.cpp: In member function 'value_t ripser<DistanceMatrix>::compute_diameter(index_t, index_t) const':
    ripser/ripser.cpp:508:19: error: 'numeric_limits' is not a member of 'std'
       value_t diam = -std::numeric_limits<value_t>::infinity();
                       ^
    ripser/ripser.cpp:508:46: error: expected primary-expression before '>' token
       value_t diam = -std::numeric_limits<value_t>::infinity();
                                                  ^
    ripser/ripser.cpp:508:47: error: '::infinity' has not been declared
       value_t diam = -std::numeric_limits<value_t>::infinity();
                                                   ^
    ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&)':
    ripser/ripser.cpp:540:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       for (auto e : edges) {
            ^
    ripser/ripser.cpp:540:13: error: 'e' does not name a type
       for (auto e : edges) {
                 ^
    ripser/ripser.cpp:559:3: error: expected ';' before 'std'
       std::reverse(columns_to_reduce.begin(), columns_to_reduce.end());
       ^
    ripser/ripser.cpp:561:3: error: expected primary-expression before 'for'
       for (index_t i = 0; i < n; ++i) {
       ^
    ripser/ripser.cpp:561:3: error: expected ')' before 'for'
    ripser/ripser.cpp:564:43: error: 'numeric_limits' is not a member of 'std'
         births_and_deaths_by_dim[0].push_back(std::numeric_limits<value_t>::infinity());
                                               ^
    ripser/ripser.cpp:564:70: error: expected primary-expression before '>' token
         births_and_deaths_by_dim[0].push_back(std::numeric_limits<value_t>::infinity());
                                                                          ^
    ripser/ripser.cpp:564:71: error: '::infinity' has not been declared
         births_and_deaths_by_dim[0].push_back(std::numeric_limits<value_t>::infinity());
                                                                           ^
    ripser/ripser.cpp: In member function 'diameter_entry_t ripser<DistanceMatrix>::add_coboundary_and_get_pivot(Iterator, Iterator, coefficient_t, Column&, Column&, const index_t&, hash_map<long long int, long long int>&, bool&)':
    ripser/ripser.cpp:578:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       for (auto it = column_begin; it != column_end; ++it) {
            ^
    ripser/ripser.cpp:578:13: error: 'it' does not name a type
       for (auto it = column_begin; it != column_end; ++it) {
                 ^
    ripser/ripser.cpp:578:32: error: expected ';' before 'it'
       for (auto it = column_begin; it != column_end; ++it) {
                                    ^
    ripser/ripser.cpp:578:32: error: 'it' was not declared in this scope
    ripser/ripser.cpp:593:29: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
           if (pivot_column_index.find(get_index(coface)) ==
                                 ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp:594:29: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
               pivot_column_index.end()) {
                                 ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp:601:9: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
        for (auto coface : coface_entries) working_coboundary.push(coface);
             ^
    ripser/ripser.cpp:601:14: error: 'coface' does not name a type
        for (auto coface : coface_entries) working_coboundary.push(coface);
                  ^
    ripser/ripser.cpp:602:3: error: expected ';' before '}' token
       }
       ^
    ripser/ripser.cpp:602:3: error: expected primary-expression before '}' token
    ripser/ripser.cpp:602:3: error: expected ';' before '}' token
    ripser/ripser.cpp:602:3: error: expected primary-expression before '}' token
    ripser/ripser.cpp:602:3: error: expected ')' before '}' token
    ripser/ripser.cpp:602:3: error: expected primary-expression before '}' token
    ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::compute_pairs(std::vector<std::pair<float, long long int> >&, hash_map<long long int, long long int>&, index_t)':
    ripser/ripser.cpp:621:4: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
        auto column_to_reduce = columns_to_reduce[index_column_to_reduce];
        ^
    ripser/ripser.cpp:621:9: error: 'column_to_reduce' does not name a type
        auto column_to_reduce = columns_to_reduce[index_column_to_reduce];
             ^
    ripser/ripser.cpp:625:74: error: '>>' should be '> >' within a nested template argument list
                            greater_diameter_or_smaller_index<diameter_entry_t>>
                                                                              ^
    ripser/ripser.cpp:630:74: error: '>>' should be '> >' within a nested template argument list
                            greater_diameter_or_smaller_index<diameter_entry_t>>
                                                                              ^
    ripser/ripser.cpp:633:36: error: 'column_to_reduce' was not declared in this scope
        value_t diameter = get_diameter(column_to_reduce);
                                        ^
    ripser/ripser.cpp:656:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
         auto reduction_column_begin = reduction_matrix.cbegin(index_column_to_add),
         ^
    ripser/ripser.cpp:656:10: error: 'reduction_column_begin' does not name a type
         auto reduction_column_begin = reduction_matrix.cbegin(index_column_to_add),
              ^
    ripser/ripser.cpp:677:9: error: 'reduction_column_begin' was not declared in this scope
             reduction_column_begin, reduction_column_end, factor_column_to_add,
             ^
    ripser/ripser.cpp:677:33: error: 'reduction_column_end' was not declared in this scope
             reduction_column_begin, reduction_column_end, factor_column_to_add,
                                     ^
    ripser/ripser.cpp:684:6: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
          auto pair = pivot_column_index.find(get_index(pivot));
          ^
    ripser/ripser.cpp:684:11: error: 'pair' does not name a type
          auto pair = pivot_column_index.find(get_index(pivot));
               ^
    ripser/ripser.cpp:686:10: error: 'pair' was not declared in this scope
          if (pair != pivot_column_index.end()) {
              ^
    ripser/ripser.cpp:686:10: note: suggested alternative:
    In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_algobase.h:64:0,
                     from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/char_traits.h:39,
                     from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/ios:40,
                     from ripser/pyRipser.cpp:652:
    C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_pair.h:96:12: note:   'std::pair'
         struct pair
                ^
    In file included from ripser/pyRipser.cpp:657:0:
    ripser/ripser.cpp:686:36: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
          if (pair != pivot_column_index.end()) {
                                        ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp:698:9: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
             auto cocycle = working_reduction_column;
             ^
    ripser/ripser.cpp:698:14: error: 'cocycle' does not name a type
             auto cocycle = working_reduction_column;
                  ^
    ripser/ripser.cpp:702:40: error: 'cocycle' was not declared in this scope
             while (get_index(e = get_pivot(cocycle, modulus)) != -1) {
                                            ^
    ripser/ripser.cpp:716:25: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
           pivot_column_index.insert(
                             ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp:753:46: error: 'numeric_limits' is not a member of 'std'
          births_and_deaths_by_dim[dim].push_back(std::numeric_limits<value_t>::infinity());
                                                  ^
    ripser/ripser.cpp:753:73: error: expected primary-expression before '>' token
          births_and_deaths_by_dim[dim].push_back(std::numeric_limits<value_t>::infinity());
                                                                             ^
    ripser/ripser.cpp:753:74: error: '::infinity' has not been declared
          births_and_deaths_by_dim[dim].push_back(std::numeric_limits<value_t>::infinity());
                                                                              ^
    ripser/ripser.cpp:759:7: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
           auto cocycle = working_reduction_column;
           ^
    ripser/ripser.cpp:759:12: error: 'cocycle' does not name a type
           auto cocycle = working_reduction_column;
                ^
    ripser/ripser.cpp:763:38: error: 'cocycle' was not declared in this scope
           while (get_index(e = get_pivot(cocycle, modulus)) != -1) {
                                          ^
    ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::compute_barcodes()':
    ripser/ripser.cpp:798:23: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
         pivot_column_index.reserve(columns_to_reduce.size());
                           ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp: In member function 'diameter_entry_t ripser<compressed_distance_matrix<(compressed_matrix_layout)0u> >::simplex_coboundary_enumerator::next()':
    ripser/ripser.cpp:842:20: warning: range-based 'for' loops only available with -std=c++11 or -std=gnu++11
       for (index_t w : vertices) coface_diameter = std::max(coface_diameter, dist(v, w));
                        ^
    ripser/ripser.cpp: In constructor 'ripser<sparse_distance_matrix>::simplex_coboundary_enumerator::simplex_coboundary_enumerator(diameter_entry_t, index_t, const ripser<sparse_distance_matrix>&)':
    ripser/ripser.cpp:879:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       for (auto v : vertices) {
            ^
    ripser/ripser.cpp:879:13: error: 'v' does not name a type
       for (auto v : vertices) {
                 ^
    ripser/ripser.cpp:883:2: error: expected ';' before '}' token
      }
      ^
    ripser/ripser.cpp:883:2: error: expected primary-expression before '}' token
    ripser/ripser.cpp:883:2: error: expected ';' before '}' token
    ripser/ripser.cpp:883:2: error: expected primary-expression before '}' token
    ripser/ripser.cpp:883:2: error: expected ')' before '}' token
    ripser/ripser.cpp:883:2: error: expected primary-expression before '}' token
    ripser/ripser.cpp: In member function 'bool ripser<sparse_distance_matrix>::simplex_coboundary_enumerator::has_next(bool)':
    ripser/ripser.cpp:886:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       for (auto &it0 = neighbor_it[0], &end0 = neighbor_end[0]; it0 != end0; ++it0) {
            ^
    ripser/ripser.cpp:886:33: error: invalid initialization of reference of type 'int&' from expression of type 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >'
       for (auto &it0 = neighbor_it[0], &end0 = neighbor_end[0]; it0 != end0; ++it0) {
                                     ^
    ripser/ripser.cpp:886:58: error: invalid initialization of reference of type 'int&' from expression of type 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >'
       for (auto &it0 = neighbor_it[0], &end0 = neighbor_end[0]; it0 != end0; ++it0) {
                                                              ^
    ripser/ripser.cpp:887:9: error: invalid type argument of unary '*' (have 'int')
        x = *it0;
             ^
    ripser/ripser.cpp:889:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
         auto &it = neighbor_it[idx], end = neighbor_end[idx];
         ^
    ripser/ripser.cpp:889:31: error: invalid initialization of reference of type 'int&' from expression of type 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >'
         auto &it = neighbor_it[idx], end = neighbor_end[idx];
                                   ^
    ripser/ripser.cpp:889:56: error: cannot convert 'std::reverse_iterator<__gnu_cxx::__normal_iterator<const std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >' to 'int' in initialization
         auto &it = neighbor_it[idx], end = neighbor_end[idx];
                                                            ^
    ripser/ripser.cpp:890:23: error: invalid type argument of unary '*' (have 'int')
         while (get_index(*it) > get_index(x))
                           ^
    ripser/ripser.cpp:892:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
         auto y = *it;
         ^
    ripser/ripser.cpp:892:10: error: 'y' does not name a type
         auto y = *it;
              ^
    ripser/ripser.cpp:893:19: error: 'y' was not declared in this scope
         if (get_index(y) != get_index(x))
                       ^
    ripser/ripser.cpp: In member function 'std::vector<std::pair<float, long long int> > ripser<DistanceMatrix>::get_edges() [with DistanceMatrix = sparse_distance_matrix]':
    ripser/ripser.cpp:937:8: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
       for (auto n : dist.neighbors[i]) {
            ^
    ripser/ripser.cpp:937:13: error: 'n' does not name a type
       for (auto n : dist.neighbors[i]) {
                 ^
    ripser/ripser.cpp:941:2: error: expected ';' before 'return'
      return edges;
      ^
    ripser/ripser.cpp:941:2: error: expected primary-expression before 'return'
    ripser/ripser.cpp:941:2: error: expected ';' before 'return'
    ripser/ripser.cpp:941:2: error: expected primary-expression before 'return'
    ripser/ripser.cpp:941:2: error: expected ')' before 'return'
    ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::assemble_columns_to_reduce(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&, hash_map<long long int, long long int>&, index_t) [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>; index_t = long long int]':
    ripser/ripser.cpp:963:25: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
       if (pivot_column_index.find(index) == pivot_column_index.end()) {
                             ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp:963:59: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
       if (pivot_column_index.find(index) == pivot_column_index.end()) {
                                                               ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp: In member function 'void ripser<DistanceMatrix>::assemble_columns_to_reduce(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&, hash_map<long long int, long long int>&, index_t) [with DistanceMatrix = sparse_distance_matrix; index_t = long long int]':
    ripser/ripser.cpp:983:34: warning: range-based 'for' loops only available with -std=c++11 or -std=gnu++11
      for (diameter_index_t simplex : simplices) {
                                      ^
    ripser/ripser.cpp:987:4: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
        auto coface = cofaces.next();
        ^
    ripser/ripser.cpp:987:9: error: 'coface' does not name a type
        auto coface = cofaces.next();
             ^
    ripser/ripser.cpp:989:57: error: 'coface' was not declared in this scope
        next_simplices.push_back(std::make_pair(get_diameter(coface), get_index(coface)));
                                                             ^
    ripser/ripser.cpp:991:26: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
        if (pivot_column_index.find(get_index(coface)) == pivot_column_index.end())
                              ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp:991:72: error: invalid use of incomplete type 'class hash_map<long long int, long long int>'
        if (pivot_column_index.find(get_index(coface)) == pivot_column_index.end())
                                                                            ^
    ripser/ripser.cpp:53:37: note: declaration of 'class hash_map<long long int, long long int>'
     template <class Key, class T> class hash_map : public std::unordered_map<Key, T> {};
                                         ^
    ripser/ripser.cpp: In function 'ripserResults rips_dm(float*, int, int, int, float, int)':
    ripser/ripser.cpp:1006:69: error: 'move' is not a member of 'std'
       compressed_lower_distance_matrix(compressed_upper_distance_matrix(std::move(distances)));
                                                                         ^
    ripser/ripser.cpp:1009:16: error: 'numeric_limits' is not a member of 'std'
      value_t min = std::numeric_limits<value_t>::infinity(),
                    ^
    ripser/ripser.cpp:1009:43: error: expected primary-expression before '>' token
      value_t min = std::numeric_limits<value_t>::infinity(),
                                               ^
    ripser/ripser.cpp:1009:44: error: '::infinity' has not been declared
      value_t min = std::numeric_limits<value_t>::infinity(),
                                                ^
    ripser/ripser.cpp:1013:29: error: 'numeric_limits' is not a member of 'std'
      value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
                                 ^
    ripser/ripser.cpp:1013:56: error: expected primary-expression before '>' token
      value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
                                                            ^
    ripser/ripser.cpp:1013:57: error: '::infinity' has not been declared
      value_t enclosing_radius = std::numeric_limits<value_t>::infinity();
                                                             ^
    ripser/ripser.cpp:1015:18: error: 'numeric_limits' is not a member of 'std'
       value_t r_i = -std::numeric_limits<value_t>::infinity();
                      ^
    ripser/ripser.cpp:1015:45: error: expected primary-expression before '>' token
       value_t r_i = -std::numeric_limits<value_t>::infinity();
                                                 ^
    ripser/ripser.cpp:1015:46: error: '::infinity' has not been declared
       value_t r_i = -std::numeric_limits<value_t>::infinity();
                                                  ^
    ripser/ripser.cpp:1020:19: error: 'numeric_limits' is not a member of 'std'
      if (threshold == std::numeric_limits<value_t>::max()) threshold = enclosing_radius;
                       ^
    ripser/ripser.cpp:1020:46: error: expected primary-expression before '>' token
      if (threshold == std::numeric_limits<value_t>::max()) threshold = enclosing_radius;
                                                  ^
    ripser/ripser.cpp:1020:47: error: '::max' has not been declared
      if (threshold == std::numeric_limits<value_t>::max()) threshold = enclosing_radius;
                                                   ^
    ripser/ripser.cpp:1020:47: note: suggested alternative:
    In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/char_traits.h:39:0,
                     from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/ios:40,
                     from ripser/pyRipser.cpp:652:
    C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_algobase.h:265:5: note:   'std::max'
         max(const _Tp& __a, const _Tp& __b, _Compare __comp)
         ^
    In file included from ripser/pyRipser.cpp:657:0:
    ripser/ripser.cpp:1022:7: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
      for (auto d : dist.distances) {
           ^
    ripser/ripser.cpp:1022:12: error: 'd' does not name a type
      for (auto d : dist.distances) {
                ^
    ripser/ripser.cpp:1029:2: error: expected ';' before 'ripserResults'
      ripserResults res;
      ^
    ripser/ripser.cpp:1029:16: error: expected primary-expression before 'res'
      ripserResults res;
                    ^
    ripser/ripser.cpp:1029:16: error: expected ';' before 'res'
    ripser/ripser.cpp:1029:16: error: 'res' was not declared in this scope
    ripser/ripser.cpp:1029:19: error: expected ')' before ';' token
      ripserResults res;
                       ^
    ripser/ripser.cpp:1030:19: error: 'max' was not declared in this scope
      if (threshold >= max) {
                       ^
    ripser/ripser.cpp:1030:19: note: suggested alternative:
    In file included from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/char_traits.h:39:0,
                     from C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/ios:40,
                     from ripser/pyRipser.cpp:652:
    C:/Users/sndr/Anaconda3/Library/mingw-w64/include/c++/5.3.0/bits/stl_algobase.h:265:5: note:   'std::max'
         max(const _Tp& __a, const _Tp& __b, _Compare __comp)
         ^
    In file included from ripser/pyRipser.cpp:657:0:
    ripser/ripser.cpp:1031:46: error: 'move' is not a member of 'std'
       ripser<compressed_lower_distance_matrix> r(std::move(dist), dim_max, threshold, ratio,
                                                  ^
    ripser/ripser.cpp:1034:18: error: 'res' was not declared in this scope
       r.copy_results(res);
                      ^
    ripser/ripser.cpp:1036:59: error: 'move' is not a member of 'std'
       ripser<sparse_distance_matrix> r(sparse_distance_matrix(std::move(dist), threshold), dim_max,
                                                               ^
    ripser/ripser.cpp:1039:18: error: 'res' was not declared in this scope
       r.copy_results(res);
                      ^
    ripser/ripser.cpp:1041:2: error: 'res' was not declared in this scope
      res.num_edges = num_edges;
      ^
    ripser/ripser.cpp:1009:10: warning: unused variable 'min' [-Wunused-variable]
      value_t min = std::numeric_limits<value_t>::infinity(),
              ^
    ripser/ripser.cpp: In function 'ripserResults rips_dm_sparse(int*, int*, float*, int, int, int, int, float, int)':
    ripser/ripser.cpp:1051:57: error: no matching function for call to 'ripser<sparse_distance_matrix>::ripser(sparse_distance_matrix, int&, float&, float&, int&, int&)'
              dim_max, threshold, ratio, modulus, do_cocycles);
                                                             ^
    ripser/ripser.cpp:458:2: note: candidate: ripser<DistanceMatrix>::ripser(DistanceMatrix) [with DistanceMatrix = sparse_distance_matrix]
      ripser(DistanceMatrix&& _dist, index_t _dim_max, value_t _threshold, float _ratio,
      ^
    ripser/ripser.cpp:458:2: note:   candidate expects 1 argument, 6 provided
    ripser/ripser.cpp:439:42: note: candidate: ripser<sparse_distance_matrix>::ripser(const ripser<sparse_distance_matrix>&)
     template <typename DistanceMatrix> class ripser {
                                              ^
    ripser/ripser.cpp:439:42: note:   candidate expects 1 argument, 6 provided
    ripser/pyRipser.cpp: In function 'PyTypeObject* __Pyx_ImportType(PyObject*, const char*, const char*, size_t, __Pyx_ImportType_CheckSize)':
    ripser/pyRipser.cpp:6991:53: warning: unknown conversion type character 'z' in format [-Wformat=]
                 module_name, class_name, size, basicsize);
                                                         ^
    ripser/pyRipser.cpp:6991:53: warning: unknown conversion type character 'z' in format [-Wformat=]
    ripser/pyRipser.cpp:6991:53: warning: too many arguments for format [-Wformat-extra-args]
    In file included from ripser/pyRipser.cpp:657:0:
    ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>]':
    ripser/ripser.cpp:1033:22:   required from here
    ripser/ripser.cpp:797:32: error: 'hash_map<long long int, long long int> pivot_column_index' has incomplete type
         hash_map<index_t, index_t> pivot_column_index;
                                    ^
    ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = sparse_distance_matrix]':
    ripser/ripser.cpp:1038:22:   required from here
    ripser/ripser.cpp:797:32: error: 'hash_map<long long int, long long int> pivot_column_index' has incomplete type
    ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&) [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>]':
    ripser/ripser.cpp:791:22:   required from 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = compressed_distance_matrix<(compressed_matrix_layout)0u>]'
    ripser/ripser.cpp:1033:22:   required from here
    ripser/ripser.cpp:559:15: error: could not convert 'std::reverse<__gnu_cxx::__normal_iterator<std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >((& columns_to_reduce)->std::vector<_Tp, _Alloc>::begin<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >(), (& columns_to_reduce)->std::vector<_Tp, _Alloc>::end<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >())' from 'void' to 'bool'
       std::reverse(columns_to_reduce.begin(), columns_to_reduce.end());
                   ^
    ripser/ripser.cpp: In instantiation of 'void ripser<DistanceMatrix>::compute_dim_0_pairs(std::vector<std::pair<float, long long int> >&, std::vector<std::pair<float, long long int> >&) [with DistanceMatrix = sparse_distance_matrix]':
    ripser/ripser.cpp:791:22:   required from 'void ripser<DistanceMatrix>::compute_barcodes() [with DistanceMatrix = sparse_distance_matrix]'
    ripser/ripser.cpp:1038:22:   required from here
    ripser/ripser.cpp:559:15: error: could not convert 'std::reverse<__gnu_cxx::__normal_iterator<std::pair<float, long long int>*, std::vector<std::pair<float, long long int> > > >((& columns_to_reduce)->std::vector<_Tp, _Alloc>::begin<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >(), (& columns_to_reduce)->std::vector<_Tp, _Alloc>::end<std::pair<float, long long int>, std::allocator<std::pair<float, long long int> > >())' from 'void' to 'bool'
    ripser/ripser.cpp: In member function 'std::vector<std::pair<float, long long int> > ripser<DistanceMatrix>::get_edges() [with DistanceMatrix = sparse_distance_matrix]':
    ripser/ripser.cpp:942:1: warning: control reaches end of non-void function [-Wreturn-type]
     }
     ^
    error: command 'C:\\Users\\sndr\\Anaconda3\\Library\\mingw-w64\\bin\\gcc.exe' failed with exit status 1

    ----------------------------------------
Command "C:\Users\sndr\Anaconda3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\sndr\\AppData\\Local\\Temp\\pip-install-qfuv8vfq\\ripser\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\sndr\AppData\Local\Temp\pip-record-uilvyg2i\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\sndr\AppData\Local\Temp\pip-install-qfuv8vfq\ripser\

C:\WINDOWS\system32>
sauln commented 5 years ago

This issue is duplicate scikit-tda/ripser.py/#71

Sandy4321 commented 5 years ago

can write full link how to find this scikit-tda/ripser.py/#71