multipers 2.7.0b2__tar.gz → 2.7.0b4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. {multipers-2.7.0b2 → multipers-2.7.0b4}/PKG-INFO +1 -1
  2. {multipers-2.7.0b2 → multipers-2.7.0b4}/THIRD_PARTY_NOTICES.md +10 -4
  3. {multipers-2.7.0b2 → multipers-2.7.0b4}/cmake/MultipersBuild.cmake +4 -0
  4. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_aida_interface.cpp +5 -3
  5. multipers-2.7.0b4/multipers/_mcbif_nanobind.cpp +398 -0
  6. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_mma_nanobind.cpp +10 -4
  7. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_multi_critical_interface.cpp +39 -31
  8. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_signed_measure_meta.py +4 -4
  9. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_slicer_nanobind.cpp +62 -43
  10. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/array_api/__init__.py +2 -2
  11. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/array_api/jax.py +12 -4
  12. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/array_api/numpy.py +11 -3
  13. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/array_api/torch.py +10 -3
  14. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/multi_critical_interface.hpp +65 -20
  15. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_wrapper_types.hpp +7 -2
  16. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/filtrations/__init__.py +2 -0
  17. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/filtrations/filtrations.py +163 -13
  18. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/grids.py +17 -4
  19. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/invariants/_utils.py +1 -1
  20. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/invariants/projected_barcode.py +25 -1
  21. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/hilbert_function.h +73 -77
  22. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/rank_invariant.h +73 -91
  23. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/nanobind_slicer_serialization.hpp +17 -13
  24. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ops.py +7 -5
  25. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/point_measure.py +12 -10
  26. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/slicer.py +29 -22
  27. {multipers-2.7.0b2 → multipers-2.7.0b4}/pyproject.toml +1 -1
  28. {multipers-2.7.0b2 → multipers-2.7.0b4}/CITATION.cff +0 -0
  29. {multipers-2.7.0b2 → multipers-2.7.0b4}/CMakeLists.txt +0 -0
  30. {multipers-2.7.0b2 → multipers-2.7.0b4}/LICENSE +0 -0
  31. {multipers-2.7.0b2 → multipers-2.7.0b4}/README.md +0 -0
  32. {multipers-2.7.0b2 → multipers-2.7.0b4}/cmake/ApplyExtPatchOverlay.cmake +0 -0
  33. {multipers-2.7.0b2 → multipers-2.7.0b4}/cmake/MultipersCodegen.cmake +0 -0
  34. {multipers-2.7.0b2 → multipers-2.7.0b4}/cmake/MultipersDependencies.cmake +0 -0
  35. {multipers-2.7.0b2 → multipers-2.7.0b4}/cmake/MultipersInstall.cmake +0 -0
  36. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/ArrayColumn.cpp +0 -0
  37. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/ArrayColumn.hpp +0 -0
  38. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/Cone.cpp +0 -0
  39. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/Cone.hpp +0 -0
  40. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/HeapColumn.cpp +0 -0
  41. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/HeapColumn.hpp +0 -0
  42. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/README.md +0 -0
  43. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/bireductions.cpp +0 -0
  44. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/bireductions.hpp +0 -0
  45. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/block_column_matrix.cpp +0 -0
  46. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/block_column_matrix.hpp +0 -0
  47. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/chunk.cpp +0 -0
  48. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/chunk.hpp +0 -0
  49. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/complexes.cpp +0 -0
  50. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/complexes.hpp +0 -0
  51. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/computation.cpp +0 -0
  52. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/computation.hpp +0 -0
  53. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/factor.cpp +0 -0
  54. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/factor.hpp +0 -0
  55. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/grade.hpp +0 -0
  56. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/indirect.hpp +0 -0
  57. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/lw.cpp +0 -0
  58. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/lw.hpp +0 -0
  59. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/matrices.cpp +0 -0
  60. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/matrices.hpp +0 -0
  61. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/minimize.cpp +0 -0
  62. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/minimize.hpp +0 -0
  63. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/priority_queue.hpp +0 -0
  64. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/reductions.cpp +0 -0
  65. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/reductions.hpp +0 -0
  66. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/relative_cohomology.cpp +0 -0
  67. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/relative_cohomology.hpp +0 -0
  68. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/skip_vector.hpp +0 -0
  69. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/time_measurement.cpp +0 -0
  70. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/time_measurement.hpp +0 -0
  71. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/typedefs.hpp +0 -0
  72. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/2pac/utils.hpp +0 -0
  73. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/CITATION.cff +0 -0
  74. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/LICENSE +0 -0
  75. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/Persistence-Algebra/CITATION.cff +0 -0
  76. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/Persistence-Algebra/LICENSE +0 -0
  77. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/Persistence-Algebra/README.md +0 -0
  78. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/README.md +0 -0
  79. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/include/CLI11.hpp +0 -0
  80. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/include/aida_interface.hpp +0 -0
  81. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/include/config.hpp +0 -0
  82. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/include/option_parser.hpp +0 -0
  83. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/include/types.hpp +0 -0
  84. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_decompose.cpp +0 -0
  85. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_decompose.hpp +0 -0
  86. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_functions.cpp +0 -0
  87. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_functions.hpp +0 -0
  88. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_helpers.cpp +0 -0
  89. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_helpers.hpp +0 -0
  90. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/aida_interface.cpp +0 -0
  91. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/block.cpp +0 -0
  92. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/block.hpp +0 -0
  93. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/config.cpp +0 -0
  94. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/AIDA/src/option_parser.cpp +0 -0
  95. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/CITATION.cff +0 -0
  96. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/LICENSE +0 -0
  97. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/README.md +0 -0
  98. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/bitset_algebra.hpp +0 -0
  99. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/column_types.hpp +0 -0
  100. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/dense_matrix.hpp +0 -0
  101. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/general.hpp +0 -0
  102. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/graded_linalg.hpp +0 -0
  103. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/graded_matrix.hpp +0 -0
  104. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/grid_scheduler.hpp +0 -0
  105. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/homomorphisms.hpp +0 -0
  106. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/matrix_base.hpp +0 -0
  107. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/orders_and_graphs.hpp +0 -0
  108. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/r2graded_matrix.hpp +0 -0
  109. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/r3graded_matrix.hpp +0 -0
  110. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/sparse_matrix.hpp +0 -0
  111. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/Persistence-Algebra/include/grlina/to_quiver.hpp +0 -0
  112. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/COPYING +0 -0
  113. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/COPYING.LESSER +0 -0
  114. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/README.md +0 -0
  115. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Complex.h +0 -0
  116. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Edge_domination_checker.h +0 -0
  117. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Grade.h +0 -0
  118. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/Vertex_domination_matrix.h +0 -0
  119. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/basic.h +0 -0
  120. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/boost_timers.h +0 -0
  121. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/deg_rips/include/deg_rips/build_complex.h +0 -0
  122. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/COPYING +0 -0
  123. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/README.md +0 -0
  124. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Delaunay_triangulation_accessors.h +0 -0
  125. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Grade_map.h +0 -0
  126. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Meb_accessors.h +0 -0
  127. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Miniball.hpp +0 -0
  128. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/Point_with_densities.h +0 -0
  129. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/boost_timers.h +0 -0
  130. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/compute_meb_radii_of_simplex_tree.h +0 -0
  131. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/count_size_of_delaunay_triangulation.h +0 -0
  132. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/function_delaunay_with_meb.h +0 -0
  133. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/get_simplices_from_triangulation.h +0 -0
  134. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/include/function_delaunay/mem_info.h +0 -0
  135. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/Graded_matrix.h +0 -0
  136. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/Grid_scheduler.h +0 -0
  137. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/boost_timers.h +0 -0
  138. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/global.h +0 -0
  139. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/mpfree.h +0 -0
  140. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpfree_mod/include/mpfree/mpfree_subroutines.h +0 -0
  141. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Coordinate_traits_with_map.h +0 -0
  142. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Graded_matrix.h +0 -0
  143. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Graded_matrix_handle.h +0 -0
  144. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/Pre_column_struct.h +0 -0
  145. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/basic.h +0 -0
  146. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_pre_column_struct.h +0 -0
  147. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_scc2020.h +0 -0
  148. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_simplex_tree.h +0 -0
  149. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/create_matrix_from_firep.h +0 -0
  150. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/mpp_utils_mod/include/mpp_utils/sorting_utility.h +0 -0
  151. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/Graded_matrix.h +0 -0
  152. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/basic.h +0 -0
  153. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/boost_timers.h +0 -0
  154. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/multi_chunk_mod/include/multi_chunk/multi_chunk.h +0 -0
  155. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/COPYING +0 -0
  156. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/COPYING.LESSER +0 -0
  157. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/README.md +0 -0
  158. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/chunk_reduction.h +0 -0
  159. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/row_reduction.h +0 -0
  160. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/spectral_sequence_reduction.h +0 -0
  161. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/standard_reduction.h +0 -0
  162. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/algorithms/twist_reduction.h +0 -0
  163. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/boundary_matrix.h +0 -0
  164. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/compute_persistence_pairs.h +0 -0
  165. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/helpers/dualize.h +0 -0
  166. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/helpers/misc.h +0 -0
  167. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/helpers/thread_local_storage.h +0 -0
  168. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/persistence_pairs.h +0 -0
  169. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Container_traits.h +0 -0
  170. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Pivot_representation.h +0 -0
  171. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Uniform_representation.h +0 -0
  172. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/Unordered_map_container_traits.h +0 -0
  173. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/bit_tree_pivot_column.h +0 -0
  174. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/default_representations.h +0 -0
  175. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/full_pivot_column.h +0 -0
  176. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/heap_column_rep.h +0 -0
  177. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/heap_pivot_column.h +0 -0
  178. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/list_column_rep.h +0 -0
  179. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/set_column_rep.h +0 -0
  180. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/sparse_pivot_column.h +0 -0
  181. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/phat/include/phat/representations/vector_column_rep.h +0 -0
  182. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/scc_mod/include/scc/Column_data.h +0 -0
  183. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/scc_mod/include/scc/Scc.h +0 -0
  184. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/function_delaunay/scc_mod/include/scc/basic.h +0 -0
  185. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/LICENSE +0 -0
  186. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/README.md +0 -0
  187. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Alpha_complex/include/gudhi/Alpha_complex/Alpha_kernel_d.h +0 -0
  188. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Alpha_complex/include/gudhi/Alpha_complex.h +0 -0
  189. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex.h +0 -0
  190. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_base.h +0 -0
  191. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Bitmap_cubical_complex/include/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +0 -0
  192. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Collapse/include/gudhi/Flag_complex_edge_collapser.h +0 -0
  193. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Degree_rips_bifiltration.h +0 -0
  194. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Dynamic_multi_parameter_filtration.h +0 -0
  195. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/Multi_parameter_generator.h +0 -0
  196. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/multi_filtration_conversions.h +0 -0
  197. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/multi_filtration_products.h +0 -0
  198. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_filtration/multi_filtration_utils.h +0 -0
  199. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_filtration/include/gudhi/Multi_parameter_filtration.h +0 -0
  200. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_parameter_filtered_complex.h +0 -0
  201. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Box.h +0 -0
  202. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Line.h +0 -0
  203. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Module.h +0 -0
  204. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Multi_parameter_filtered_complex_pcoh_interface.h +0 -0
  205. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Persistence_interface_cohomology.h +0 -0
  206. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Persistence_interface_homology.h +0 -0
  207. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Persistence_interface_vineyard.h +0 -0
  208. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Point.h +0 -0
  209. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/Summand.h +0 -0
  210. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/module_helpers.h +0 -0
  211. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Multi_persistence/summand_helpers.h +0 -0
  212. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Projective_cover_kernel.h +0 -0
  213. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Slicer.h +0 -0
  214. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/Thread_safe_slicer.h +0 -0
  215. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/multi_simplex_tree_helpers.h +0 -0
  216. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Multi_persistence/include/gudhi/slicer_helpers.h +0 -0
  217. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Fields/Z2_field_operators.h +0 -0
  218. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Fields/Zp_field_operators.h +0 -0
  219. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Matrix.h +0 -0
  220. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Base_matrix.h +0 -0
  221. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +0 -0
  222. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Boundary_matrix.h +0 -0
  223. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Chain_matrix.h +0 -0
  224. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Id_to_index_overlay.h +0 -0
  225. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/Position_to_index_overlay.h +0 -0
  226. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/RU_matrix.h +0 -0
  227. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/allocators/entry_constructors.h +0 -0
  228. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/base_pairing.h +0 -0
  229. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/base_swap.h +0 -0
  230. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/chain_pairing.h +0 -0
  231. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/chain_rep_cycles.h +0 -0
  232. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/chain_vine_swap.h +0 -0
  233. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +0 -0
  234. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/column_dimension_holder.h +0 -0
  235. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/column_utilities.h +0 -0
  236. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/entry_types.h +0 -0
  237. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/heap_column.h +0 -0
  238. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/intrusive_list_column.h +0 -0
  239. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/intrusive_set_column.h +0 -0
  240. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/list_column.h +0 -0
  241. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/naive_vector_column.h +0 -0
  242. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/row_access.h +0 -0
  243. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/set_column.h +0 -0
  244. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/unordered_set_column.h +0 -0
  245. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/columns/vector_column.h +0 -0
  246. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/index_mapper.h +0 -0
  247. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/matrix_dimension_holders.h +0 -0
  248. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/matrix_row_access.h +0 -0
  249. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/ru_pairing.h +0 -0
  250. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/ru_rep_cycles.h +0 -0
  251. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/Persistence_matrix/ru_vine_swap.h +0 -0
  252. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/persistence_interval.h +0 -0
  253. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistence_matrix/include/gudhi/persistence_matrix_options.h +0 -0
  254. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Field_Zp.h +0 -0
  255. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistent_cohomology/include/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +0 -0
  256. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Persistent_cohomology/include/gudhi/Persistent_cohomology.h +0 -0
  257. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_iterators.h +0 -0
  258. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +0 -0
  259. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_siblings.h +0 -0
  260. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +0 -0
  261. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/filtration_value_utils.h +0 -0
  262. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/hooks_simplex_base.h +0 -0
  263. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/indexing_tag.h +0 -0
  264. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/serialization_utils.h +0 -0
  265. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree/simplex_tree_options.h +0 -0
  266. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Simplex_tree/include/gudhi/Simplex_tree.h +0 -0
  267. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/Vineyard/include/gudhi/vineyard_base.h +0 -0
  268. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Debug_utils.h +0 -0
  269. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Off_reader.h +0 -0
  270. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Points_off_io.h +0 -0
  271. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/Simple_object_pool.h +0 -0
  272. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/distance_functions.h +0 -0
  273. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/graph_simplicial_complex.h +0 -0
  274. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/reader_utils.h +0 -0
  275. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/common/include/gudhi/simple_mdspan.h +0 -0
  276. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/gudhi-devel/src/python/include/python_interfaces/numpy_utils.h +0 -0
  277. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/README.md +0 -0
  278. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/Catch2/README.md +0 -0
  279. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/algorithms/standard_reduction.h +0 -0
  280. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/algorithms/twist_reduction.h +0 -0
  281. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/boundary_matrix.h +0 -0
  282. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/compute_persistence_pairs.h +0 -0
  283. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/helpers/dualize.h +0 -0
  284. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/helpers/misc.h +0 -0
  285. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/helpers/thread_local_storage.h +0 -0
  286. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/persistence_pairs.h +0 -0
  287. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/representations/abstract_pivot_column.h +0 -0
  288. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/representations/bit_tree_pivot_column.h +0 -0
  289. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/extern/phat/representations/vector_vector.h +0 -0
  290. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/basic_defs_bt.h +0 -0
  291. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bottleneck_detail.h +0 -0
  292. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bottleneck_detail.hpp +0 -0
  293. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bound_match.h +0 -0
  294. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/bound_match.hpp +0 -0
  295. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/def_debug_bt.h +0 -0
  296. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck/neighb_oracle.h +0 -0
  297. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/bottleneck.h +0 -0
  298. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common/diagram_point.h +0 -0
  299. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common/diagram_reader.h +0 -0
  300. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common/diagram_traits.h +0 -0
  301. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common/hash_combine.h +0 -0
  302. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common/infinity.h +0 -0
  303. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common/point.h +0 -0
  304. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/common.h +0 -0
  305. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/geometry/euclidean-dynamic.h +0 -0
  306. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/geometry/euclidean-fixed.h +0 -0
  307. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/local/kd-tree.h +0 -0
  308. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/local/kd-tree.hpp +0 -0
  309. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/local/search-functors.h +0 -0
  310. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/parallel/tbb.h +0 -0
  311. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/dnn/utils.h +0 -0
  312. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/bifiltration.h +0 -0
  313. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/bifiltration.hpp +0 -0
  314. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/box.h +0 -0
  315. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/box.hpp +0 -0
  316. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/cell_with_value.h +0 -0
  317. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/cell_with_value.hpp +0 -0
  318. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/common_defs.h +0 -0
  319. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/common_util.h +0 -0
  320. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/common_util.hpp +0 -0
  321. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_box.h +0 -0
  322. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_box.hpp +0 -0
  323. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_point.h +0 -0
  324. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/dual_point.hpp +0 -0
  325. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/matching_distance.hpp +0 -0
  326. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/persistence_module.h +0 -0
  327. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/persistence_module.hpp +0 -0
  328. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/simplex.h +0 -0
  329. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching/simplex.hpp +0 -0
  330. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/matching_distance.h +0 -0
  331. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle.h +0 -0
  332. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_base.h +0 -0
  333. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_base.hpp +0 -0
  334. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_kdtree_restricted.h +0 -0
  335. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_oracle_kdtree_restricted.hpp +0 -0
  336. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_params.h +0 -0
  337. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_result.h +0 -0
  338. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_gs.h +0 -0
  339. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_gs.hpp +0 -0
  340. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_jac.h +0 -0
  341. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/auction_runner_jac.hpp +0 -0
  342. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/basic_defs_ws.h +0 -0
  343. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/basic_defs_ws.hpp +0 -0
  344. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/def_debug_ws.h +0 -0
  345. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein/diagonal_heap.h +0 -0
  346. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/hera/include/hera/wasserstein.h +0 -0
  347. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/COPYING +0 -0
  348. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/COPYING.LESSER +0 -0
  349. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/README.md +0 -0
  350. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/Graded_matrix.h +0 -0
  351. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/Grid_scheduler.h +0 -0
  352. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/boost_timers.h +0 -0
  353. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/global.h +0 -0
  354. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/mpfree.h +0 -0
  355. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/include/mpfree/mpfree_subroutines.h +0 -0
  356. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Coordinate_traits_with_map.h +0 -0
  357. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Graded_matrix.h +0 -0
  358. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Graded_matrix_handle.h +0 -0
  359. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/Pre_column_struct.h +0 -0
  360. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/basic.h +0 -0
  361. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_pre_column_struct.h +0 -0
  362. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_scc2020.h +0 -0
  363. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_simplex_tree.h +0 -0
  364. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/create_matrix_from_firep.h +0 -0
  365. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/mpp_utils_mod/include/mpp_utils/sorting_utility.h +0 -0
  366. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/COPYING +0 -0
  367. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/COPYING.LESSER +0 -0
  368. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/boundary_matrix.h +0 -0
  369. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/helpers/misc.h +0 -0
  370. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/helpers/thread_local_storage.h +0 -0
  371. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Container_traits.h +0 -0
  372. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Pivot_representation.h +0 -0
  373. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Uniform_representation.h +0 -0
  374. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/Unordered_map_container_traits.h +0 -0
  375. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/bit_tree_pivot_column.h +0 -0
  376. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/default_representations.h +0 -0
  377. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/full_pivot_column.h +0 -0
  378. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/heap_column_rep.h +0 -0
  379. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/heap_pivot_column.h +0 -0
  380. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/list_column_rep.h +0 -0
  381. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/set_column_rep.h +0 -0
  382. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/sparse_pivot_column.h +0 -0
  383. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/phat_mod/include/phat/representations/vector_column_rep.h +0 -0
  384. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/scc_mod/include/scc/Column_data.h +0 -0
  385. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/scc_mod/include/scc/Scc.h +0 -0
  386. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/mpfree/scc_mod/include/scc/basic.h +0 -0
  387. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/COPYING +0 -0
  388. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/COPYING.LESSER +0 -0
  389. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/README.md +0 -0
  390. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/Grade.h +0 -0
  391. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/basic.h +0 -0
  392. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/boost_timers.h +0 -0
  393. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/firep.h +0 -0
  394. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/include/multi_critical/free_resolution.h +0 -0
  395. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/Graded_matrix.h +0 -0
  396. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/Grid_scheduler.h +0 -0
  397. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/boost_timers.h +0 -0
  398. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/global.h +0 -0
  399. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/mpfree.h +0 -0
  400. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpfree_mod/include/mpfree/mpfree_subroutines.h +0 -0
  401. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Coordinate_traits_with_map.h +0 -0
  402. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Graded_matrix.h +0 -0
  403. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Graded_matrix_handle.h +0 -0
  404. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/Pre_column_struct.h +0 -0
  405. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/basic.h +0 -0
  406. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_pre_column_struct.h +0 -0
  407. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_scc2020.h +0 -0
  408. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_graded_matrices_from_simplex_tree.h +0 -0
  409. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/create_matrix_from_firep.h +0 -0
  410. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/mpp_utils_mod/include/mpp_utils/sorting_utility.h +0 -0
  411. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/Graded_matrix.h +0 -0
  412. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/basic.h +0 -0
  413. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/boost_timers.h +0 -0
  414. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/multi_chunk_mod/include/multi_chunk/multi_chunk.h +0 -0
  415. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/COPYING +0 -0
  416. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/COPYING.LESSER +0 -0
  417. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/chunk_reduction.h +0 -0
  418. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/row_reduction.h +0 -0
  419. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/spectral_sequence_reduction.h +0 -0
  420. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/standard_reduction.h +0 -0
  421. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/algorithms/twist_reduction.h +0 -0
  422. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/boundary_matrix.h +0 -0
  423. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/compute_persistence_pairs.h +0 -0
  424. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/helpers/dualize.h +0 -0
  425. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/helpers/misc.h +0 -0
  426. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/helpers/thread_local_storage.h +0 -0
  427. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/persistence_pairs.h +0 -0
  428. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Container_traits.h +0 -0
  429. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Pivot_representation.h +0 -0
  430. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Uniform_representation.h +0 -0
  431. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/Unordered_map_container_traits.h +0 -0
  432. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/bit_tree_pivot_column.h +0 -0
  433. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/default_representations.h +0 -0
  434. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/full_pivot_column.h +0 -0
  435. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/heap_column_rep.h +0 -0
  436. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/heap_pivot_column.h +0 -0
  437. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/list_column_rep.h +0 -0
  438. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/set_column_rep.h +0 -0
  439. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/sparse_pivot_column.h +0 -0
  440. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/phat_mod/include/phat/representations/vector_column_rep.h +0 -0
  441. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/scc_mod/include/scc/Column_data.h +0 -0
  442. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/scc_mod/include/scc/Scc.h +0 -0
  443. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/multi_critical/scc_mod/include/scc/basic.h +0 -0
  444. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/LICENSE +0 -0
  445. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/README.md +0 -0
  446. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/IO.h +0 -0
  447. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/column.h +0 -0
  448. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/examples.h +0 -0
  449. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/grade.h +0 -0
  450. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/landscapes.h +0 -0
  451. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/main.cpp +0 -0
  452. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/main.h +0 -0
  453. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/matrix.h +0 -0
  454. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/signatureColumn.h +0 -0
  455. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/muphasa/mph/utils.h +0 -0
  456. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/README.md +0 -0
  457. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/deg_rips_edge_copy_reducer.patch +0 -0
  458. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/function_delaunay_runtime_logs.patch +0 -0
  459. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/generate_ext_patches.py +0 -0
  460. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/mpfree_runtime_logs.patch +0 -0
  461. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/multi_critical_features.patch +0 -0
  462. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/multi_critical_runtime_logs.patch +0 -0
  463. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/patches/muphasa_runtime_logs.patch +0 -0
  464. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/phat/COPYING +0 -0
  465. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/phat/COPYING.LESSER +0 -0
  466. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/phat/README.md +0 -0
  467. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/phat/include/phat/representations/bit_tree_pivot_column.h +0 -0
  468. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/README.md +0 -0
  469. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/bifiltration_cell.h +0 -0
  470. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/cell_with_radius.h +0 -0
  471. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/dimensional_traits_2.h +0 -0
  472. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/dimensional_traits_3.h +0 -0
  473. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid.cpp +0 -0
  474. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid.h +0 -0
  475. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid_tiling.h +0 -0
  476. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid_tiling_impl.h +0 -0
  477. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/rhomboid_with_radius.h +0 -0
  478. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/types.h +0 -0
  479. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/utils.cpp +0 -0
  480. {multipers-2.7.0b2 → multipers-2.7.0b4}/ext/rhomboidtiling_newer_cgal_version/src/utils.h +0 -0
  481. {multipers-2.7.0b2 → multipers-2.7.0b4}/licenses/LGPL-3.0-or-later.txt +0 -0
  482. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_2pac_interface.cpp +0 -0
  483. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/__init__.py +0 -0
  484. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_core_delaunay_nanobind.cpp +0 -0
  485. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_deg_rips_interface.cpp +0 -0
  486. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_function_delaunay_interface.cpp +0 -0
  487. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_function_rips_nanobind.cpp +0 -0
  488. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_grid_helper_nanobind.cpp +0 -0
  489. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_hera_interface.cpp +0 -0
  490. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_mpfree_interface.cpp +0 -0
  491. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_muphasa_interface.cpp +0 -0
  492. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_rhomboid_tiling_interface.cpp +0 -0
  493. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_simplex_tree_multi_nanobind.cpp +0 -0
  494. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_simplextree_algorithms.py +0 -0
  495. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_slicer_algorithms.py +0 -0
  496. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/_slicer_meta.py +0 -0
  497. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/MOL2.py +0 -0
  498. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/UCR.py +0 -0
  499. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/__init__.py +0 -0
  500. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/graphs.py +0 -0
  501. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/immuno_regions.py +0 -0
  502. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/minimal_presentation_to_st_bf.py +0 -0
  503. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/pytorch2simplextree.py +0 -0
  504. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/shape3d.py +0 -0
  505. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/data/synthetic.py +0 -0
  506. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/distances.py +0 -0
  507. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/2pac_interface.hpp +0 -0
  508. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/aida_interface.hpp +0 -0
  509. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/backend_log_flag.hpp +0 -0
  510. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/backend_log_policy.hpp +0 -0
  511. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/contiguous_slicer_bridge.hpp +0 -0
  512. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/deg_rips_interface.hpp +0 -0
  513. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/function_delaunay_interface.hpp +0 -0
  514. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/hera_interface.hpp +0 -0
  515. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/mpfree_interface.hpp +0 -0
  516. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/muphasa_interface.hpp +0 -0
  517. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_generator_basis.hpp +0 -0
  518. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_registry_helpers.hpp +0 -0
  519. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_registry_runtime.cpp +0 -0
  520. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/nanobind_registry_runtime.hpp +0 -0
  521. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/packed_multi_critical_bridge.hpp +0 -0
  522. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ext_interface/rhomboid_tiling_interface.hpp +0 -0
  523. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/filtrations/density.py +0 -0
  524. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/function_rips.py +0 -0
  525. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/Persistence_slices_interface.h +0 -0
  526. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/Simplex_tree_interface.h +0 -0
  527. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/Simplex_tree_multi_interface.h +0 -0
  528. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/phat_bit_tree_column.h +0 -0
  529. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/phat_column_interface.h +0 -0
  530. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/phat_vector_column.h +0 -0
  531. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/simplextree_conversion_core.hpp +0 -0
  532. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/slicer_conversion_core.hpp +0 -0
  533. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/tmp_h0_pers/mma_interface_h0.h +0 -0
  534. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/gudhi/tmp_h0_pers/naive_merge_tree.h +0 -0
  535. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/hera_monte_carlo_core.hpp +0 -0
  536. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/invariants/__init__.py +0 -0
  537. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/invariants/birth_curves.py +0 -0
  538. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/logs.py +0 -0
  539. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/__init__.py +0 -0
  540. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/accuracies.py +0 -0
  541. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/filtered_complex.py +0 -0
  542. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/invariants_with_persistable.py +0 -0
  543. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/kernels.py +0 -0
  544. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/mma.py +0 -0
  545. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/one.py +0 -0
  546. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/point_clouds.py +0 -0
  547. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/signed_measures.py +0 -0
  548. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/sliced_wasserstein.py +0 -0
  549. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/ml/tools.py +0 -0
  550. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/mma_structures.py +0 -0
  551. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/diff_helpers.h +0 -0
  552. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/euler_characteristic.h +0 -0
  553. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/function_rips.h +0 -0
  554. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/mobius_inversion.h +0 -0
  555. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multi_parameter_rank_invariant/persistence_slices.h +0 -0
  556. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multiparameter_edge_collapse.py +0 -0
  557. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation/approximation.h +0 -0
  558. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation/debug.h +0 -0
  559. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation/utilities.h +0 -0
  560. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/multiparameter_module_approximation.py +0 -0
  561. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/nanobind_array_utils.hpp +0 -0
  562. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/nanobind_dense_array_utils.hpp +0 -0
  563. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/nanobind_mma_registry_helpers.hpp +0 -0
  564. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/nanobind_object_utils.hpp +0 -0
  565. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/nanobind_simplextree_utils.hpp +0 -0
  566. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/pickle.py +0 -0
  567. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/plots.py +0 -0
  568. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/simplex_tree_multi.py +0 -0
  569. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/tensor/tensor.h +0 -0
  570. {multipers-2.7.0b2 → multipers-2.7.0b4}/multipers/tests/__init__.py +0 -0
  571. {multipers-2.7.0b2 → multipers-2.7.0b4}/options.py +0 -0
  572. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/codegen/__init__.py +0 -0
  573. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/codegen/_registry.py +0 -0
  574. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/core/backend_log_policy_core.cc +0 -0
  575. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/core/filtrations_core.cc +0 -0
  576. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/core/hera_monte_carlo_core.cc +0 -0
  577. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/core/simplextree_core.cc +0 -0
  578. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/core/slicer_core.cc +0 -0
  579. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/repair_macos_libomp_wheel.py +0 -0
  580. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/tempita_grid_gen.py +0 -0
  581. {multipers-2.7.0b2 → multipers-2.7.0b4}/tools/update_sdist_ext_whitelist.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multipers
3
- Version: 2.7.0b2
3
+ Version: 2.7.0b4
4
4
  Summary: Multiparameter Topological Persistence for Machine Learning
5
5
  Keywords: TDA,Persistence,Multiparameter,sklearn,autodiff
6
6
  Author-Email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
@@ -9,19 +9,19 @@ As a result, distributed `multipers` artifacts built with these components are l
9
9
  - `AIDA`
10
10
  - Upstream: https://github.com/JanJend/AIDA
11
11
  - Source in this repository: `ext/AIDA/`
12
- - Commit used in this workspace: `d820f64984323f2886d0a997eb247dd7acfcd0c7`
12
+ - Commit used in this workspace: `4b5bb485a5738878783d1517ebd3b2bc0d19e13d`
13
13
  - License: GPL-3.0-or-later (see `ext/AIDA/LICENSE`)
14
14
 
15
15
  - `Persistence-Algebra`
16
16
  - Upstream: https://github.com/JanJend/Persistence-Algebra
17
17
  - Source in this repository: `ext/Persistence-Algebra/`
18
- - Commit used in this workspace: `381ed521b9ea427a996da4d8d9b788a734cac628`
18
+ - Commit used in this workspace: `07e2c0d0bd7b6b48f6a584eee42d4c6ad583e078`
19
19
  - License: GPL-3.0-or-later (see `ext/Persistence-Algebra/LICENSE`)
20
20
 
21
21
  - `function_delaunay`
22
22
  - Upstream: https://bitbucket.org/mkerber/function_delaunay/
23
23
  - Header source path used at build time: `ext/function_delaunay`
24
- - Commit used in this workspace: `a481f8d90af7a97795c467d81fb3db2cf952a58e`
24
+ - Commit used in this workspace: `f810320e4554abca7eceb25334c4940fb142f7d7`
25
25
  - License: GPL-3.0-or-later (see upstream `COPYING`)
26
26
 
27
27
  - `deg_rips`
@@ -40,6 +40,12 @@ As a result, distributed `multipers` artifacts built with these components are l
40
40
  - Upstream: https://www.cgal.org/
41
41
  - License: GPL-3.0-or-later OR commercial (see SPDX headers in installed CGAL Spatial_searching package)
42
42
 
43
+ - `gudhi-devel`
44
+ - Upstream: https://github.com/hschreiber/gudhi-devel
45
+ - Header/source path used at build time: `ext/gudhi-devel`
46
+ - Commit used in this workspace: `eeb0845c1253f66f8a54741abae6763fc1ff4245`
47
+ - License: MIT (see `ext/gudhi-devel/LICENSE`)
48
+
43
49
  - `mpfree`
44
50
  - Upstream: https://bitbucket.org/mkerber/mpfree/
45
51
  - Header source path used at build time: `ext/mpfree`
@@ -49,7 +55,7 @@ As a result, distributed `multipers` artifacts built with these components are l
49
55
  - `muphasa`
50
56
  - Upstream: https://github.com/olivergafvert/muphasa
51
57
  - Header/source path used at build time: `ext/muphasa`
52
- - Commit used in this workspace: `c89f7a3f958c7b8222f0d0e8cbc4e8ec8dc0ca42`
58
+ - Commit used in this workspace: `2288e91d3c4fa0d8c0307785bf565daf0faba8ab`
53
59
  - License: MIT (see `ext/muphasa/LICENSE`)
54
60
 
55
61
  - `multi_critical`
@@ -770,6 +770,9 @@ function(multipers_configure_module module_name target_name)
770
770
  elseif(module_name STREQUAL "_function_rips_nanobind")
771
771
  multipers_link_tbb(${target_name})
772
772
 
773
+ elseif(module_name STREQUAL "_mcbif_nanobind")
774
+ multipers_link_tbb(${target_name})
775
+
773
776
  elseif(module_name STREQUAL "_core_delaunay_nanobind")
774
777
  multipers_link_tbb(${target_name})
775
778
  multipers_link_cgal(${target_name})
@@ -963,6 +966,7 @@ set(MULTIPERS_NANOBIND_MODULES
963
966
  _mma_nanobind
964
967
  _simplex_tree_multi_nanobind
965
968
  _function_rips_nanobind
969
+ _mcbif_nanobind
966
970
  _core_delaunay_nanobind
967
971
  _grid_helper_nanobind
968
972
  _mpfree_interface
@@ -68,8 +68,8 @@ nb::object summand_to_slicer(nb::object target,
68
68
  used_coordinates[0].push_back(multipers::nanobind_helpers::squeezed_raw_index_from_value(degree.first, 0));
69
69
  used_coordinates[1].push_back(multipers::nanobind_helpers::squeezed_raw_index_from_value(degree.second, 1));
70
70
  }
71
- auto compacted = multipers::nanobind_helpers::compact_squeezed_filtration_grid(
72
- filtration_grid, std::move(used_coordinates));
71
+ auto compacted =
72
+ multipers::nanobind_helpers::compact_squeezed_filtration_grid(filtration_grid, std::move(used_coordinates));
73
73
  compact_grid = compacted.filtration_grid;
74
74
  for (auto& degree : filtration_values) {
75
75
  degree.first = multipers::nanobind_helpers::remap_squeezed_coordinate(degree.first, 0, compacted.remap);
@@ -79,9 +79,11 @@ nb::object summand_to_slicer(nb::object target,
79
79
 
80
80
  auto complex = multipers::build_contiguous_f64_slicer_from_output(filtration_values, boundaries, dimensions);
81
81
 
82
- nb::object out = multipers::nanobind_helpers::build_canonical_contiguous_f64_slicer_object_from_complex(target, complex);
82
+ nb::object out =
83
+ multipers::nanobind_helpers::build_canonical_contiguous_f64_slicer_object_from_complex(target, complex);
83
84
  auto& out_wrapper = nb::cast<CanonicalWrapper&>(out);
84
85
  out_wrapper.minpres_degree = degree;
86
+ out_wrapper.is_minres = false;
85
87
  if (is_squeezed) {
86
88
  out_wrapper.filtration_grid = compact_grid;
87
89
  }
@@ -0,0 +1,398 @@
1
+ #include <nanobind/nanobind.h>
2
+ #include <nanobind/ndarray.h>
3
+ #include <nanobind/stl/string.h>
4
+
5
+ #include <oneapi/tbb/parallel_for.h>
6
+ #include <tbb/parallel_sort.h>
7
+
8
+ #include <algorithm>
9
+ #include <cmath>
10
+ #include <cstddef>
11
+ #include <cstdint>
12
+ #include <iterator>
13
+ #include <limits>
14
+ #include <map>
15
+ #include <stdexcept>
16
+ #include <string>
17
+ #include <type_traits>
18
+ #include <utility>
19
+ #include <vector>
20
+
21
+ #include "Simplex_tree_multi_interface.h"
22
+ #include "ext_interface/nanobind_registry_helpers.hpp"
23
+
24
+ namespace nb = nanobind;
25
+ using namespace nb::literals;
26
+
27
+ namespace mpmcbif {
28
+
29
+ using multipers::nanobind_helpers::is_simplextree_object;
30
+ using multipers::nanobind_helpers::visit_simplextree_wrapper;
31
+
32
+ using Simplex = std::vector<int>;
33
+ using Cluster = std::vector<int>;
34
+
35
+ struct SimplexData {
36
+ Simplex simplex;
37
+ std::vector<size_t> occurrence_indices;
38
+ };
39
+
40
+ struct NerveSimplexInfo {
41
+ Simplex simplex;
42
+ Cluster intersection;
43
+ };
44
+
45
+ inline Cluster intersect_sorted(const Cluster& left, const Cluster& right) {
46
+ Cluster out;
47
+ out.reserve(std::min(left.size(), right.size()));
48
+ std::set_intersection(left.begin(), left.end(), right.begin(), right.end(), std::back_inserter(out));
49
+ return out;
50
+ }
51
+
52
+ inline std::vector<Cluster> clusters_for_partition(const int64_t* row, size_t num_points) {
53
+ std::map<int64_t, Cluster> by_label;
54
+ for (size_t vertex = 0; vertex < num_points; ++vertex) {
55
+ by_label[row[vertex]].push_back(static_cast<int>(vertex));
56
+ }
57
+
58
+ std::vector<Cluster> clusters;
59
+ clusters.reserve(by_label.size());
60
+ for (auto& [label, cluster] : by_label) {
61
+ (void)label;
62
+ clusters.push_back(std::move(cluster));
63
+ }
64
+ return clusters;
65
+ }
66
+
67
+ inline SimplexData build_nerve_simplex_data(const Simplex& simplex,
68
+ const std::vector<std::vector<size_t>>& cluster_occurrences,
69
+ size_t num_partitions) {
70
+ std::vector<size_t> rows;
71
+ rows.reserve(num_partitions);
72
+ for (size_t start_index = 0; start_index < num_partitions; ++start_index) {
73
+ bool found = true;
74
+ size_t end_index = 0;
75
+ for (int cluster_id : simplex) {
76
+ const auto& occurrences = cluster_occurrences[static_cast<size_t>(cluster_id)];
77
+ auto occurrence_it = std::lower_bound(occurrences.begin(), occurrences.end(), start_index);
78
+ if (occurrence_it == occurrences.end()) {
79
+ found = false;
80
+ break;
81
+ }
82
+ end_index = std::max(end_index, *occurrence_it);
83
+ }
84
+ if (!found) {
85
+ break;
86
+ }
87
+ rows.push_back(end_index);
88
+ }
89
+ return {simplex, std::move(rows)};
90
+ }
91
+
92
+ inline void append_occurrence(std::vector<size_t>& occurrences, size_t partition_index) {
93
+ if (occurrences.empty() || occurrences.back() != partition_index) {
94
+ occurrences.push_back(partition_index);
95
+ }
96
+ }
97
+
98
+ inline void append_standard_combinations(std::map<Simplex, std::vector<size_t>>& simplex_occurrences,
99
+ const Cluster& cluster,
100
+ size_t partition_index,
101
+ size_t target_size,
102
+ size_t start,
103
+ Simplex& simplex) {
104
+ if (simplex.size() == target_size) {
105
+ append_occurrence(simplex_occurrences[simplex], partition_index);
106
+ return;
107
+ }
108
+
109
+ const size_t remaining = target_size - simplex.size();
110
+ for (size_t i = start; i + remaining <= cluster.size(); ++i) {
111
+ simplex.push_back(cluster[i]);
112
+ append_standard_combinations(simplex_occurrences, cluster, partition_index, target_size, i + 1, simplex);
113
+ simplex.pop_back();
114
+ }
115
+ }
116
+
117
+ inline void append_standard_cluster_simplices(std::map<Simplex, std::vector<size_t>>& simplex_occurrences,
118
+ const Cluster& cluster,
119
+ size_t partition_index,
120
+ int max_dim) {
121
+ Simplex simplex;
122
+ const size_t max_size = std::min(cluster.size(), static_cast<size_t>(max_dim) + 1);
123
+ for (size_t target_size = 1; target_size <= max_size; ++target_size) {
124
+ append_standard_combinations(simplex_occurrences, cluster, partition_index, target_size, 0, simplex);
125
+ }
126
+ }
127
+
128
+ inline std::vector<SimplexData> build_standard_simplices(const int64_t* partitions,
129
+ size_t num_partitions,
130
+ size_t num_points,
131
+ int max_dim) {
132
+ std::map<Simplex, std::vector<size_t>> simplex_occurrences;
133
+ for (size_t partition_index = 0; partition_index < num_partitions; ++partition_index) {
134
+ const int64_t* row = partitions + partition_index * num_points;
135
+ auto clusters = clusters_for_partition(row, num_points);
136
+ for (const auto& cluster : clusters) {
137
+ append_standard_cluster_simplices(simplex_occurrences, cluster, partition_index, max_dim);
138
+ }
139
+ }
140
+
141
+ std::vector<SimplexData> out;
142
+ out.reserve(simplex_occurrences.size());
143
+ for (auto& [simplex, occurrences] : simplex_occurrences) {
144
+ out.push_back({std::move(simplex), std::move(occurrences)});
145
+ }
146
+ return out;
147
+ }
148
+
149
+ inline void add_nerve_simplex(std::map<Simplex, std::vector<size_t>>& nerve_simplices, Simplex simplex) {
150
+ std::sort(simplex.begin(), simplex.end());
151
+ nerve_simplices.try_emplace(std::move(simplex), std::vector<size_t>{});
152
+ }
153
+
154
+ inline std::vector<SimplexData> build_nerve_simplices(const int64_t* partitions,
155
+ size_t num_partitions,
156
+ size_t num_points,
157
+ int max_dim) {
158
+ std::map<Cluster, int> cluster_id_by_vertices;
159
+ std::vector<Cluster> cluster_vertices;
160
+ std::vector<std::vector<size_t>> cluster_occurrences;
161
+ std::vector<std::vector<int>> new_cluster_ids_by_partition;
162
+ new_cluster_ids_by_partition.reserve(num_partitions);
163
+
164
+ for (size_t partition_index = 0; partition_index < num_partitions; ++partition_index) {
165
+ const int64_t* row = partitions + partition_index * num_points;
166
+ auto clusters = clusters_for_partition(row, num_points);
167
+ std::vector<int> new_cluster_ids;
168
+ for (auto& cluster : clusters) {
169
+ auto [it, inserted] = cluster_id_by_vertices.emplace(cluster, static_cast<int>(cluster_vertices.size()));
170
+ const int cluster_id = it->second;
171
+ if (inserted) {
172
+ cluster_vertices.push_back(std::move(cluster));
173
+ cluster_occurrences.emplace_back();
174
+ new_cluster_ids.push_back(cluster_id);
175
+ }
176
+ append_occurrence(cluster_occurrences[static_cast<size_t>(cluster_id)], partition_index);
177
+ }
178
+ new_cluster_ids_by_partition.push_back(std::move(new_cluster_ids));
179
+ }
180
+
181
+ std::map<Simplex, std::vector<size_t>> nerve_simplices;
182
+ const size_t requested_max_simplex_size = static_cast<size_t>(max_dim) + 1;
183
+ const size_t max_simplex_size =
184
+ std::min(std::min(requested_max_simplex_size, cluster_vertices.size()), num_partitions);
185
+ std::vector<std::vector<NerveSimplexInfo>> simplices_by_size(max_simplex_size + 1);
186
+
187
+ for (const auto& new_cluster_ids : new_cluster_ids_by_partition) {
188
+ for (int cluster_id : new_cluster_ids) {
189
+ const Cluster& cluster = cluster_vertices[static_cast<size_t>(cluster_id)];
190
+
191
+ for (size_t size = max_simplex_size - 1; size >= 1; --size) {
192
+ const size_t simplex_count = simplices_by_size[size].size();
193
+ for (size_t simplex_index = 0; simplex_index < simplex_count; ++simplex_index) {
194
+ const auto& previous = simplices_by_size[size][simplex_index];
195
+ auto intersection = intersect_sorted(cluster, previous.intersection);
196
+ if (!intersection.empty()) {
197
+ Simplex simplex = previous.simplex;
198
+ simplex.push_back(cluster_id);
199
+ add_nerve_simplex(nerve_simplices, simplex);
200
+ simplices_by_size[size + 1].push_back({std::move(simplex), std::move(intersection)});
201
+ }
202
+ }
203
+ if (size == 1) {
204
+ break;
205
+ }
206
+ }
207
+
208
+ Simplex vertex = {cluster_id};
209
+ add_nerve_simplex(nerve_simplices, vertex);
210
+ simplices_by_size[1].push_back({std::move(vertex), cluster});
211
+ }
212
+ }
213
+
214
+ std::vector<Simplex> simplices;
215
+ simplices.reserve(nerve_simplices.size());
216
+ for (const auto& [simplex, ignored] : nerve_simplices) {
217
+ (void)ignored;
218
+ simplices.push_back(simplex);
219
+ }
220
+
221
+ std::vector<SimplexData> out(simplices.size());
222
+ const auto build_one = [&](size_t simplex_index) {
223
+ out[simplex_index] = build_nerve_simplex_data(simplices[simplex_index], cluster_occurrences, num_partitions);
224
+ };
225
+ if (simplices.size() < 1024) {
226
+ for (size_t simplex_index = 0; simplex_index < simplices.size(); ++simplex_index) {
227
+ build_one(simplex_index);
228
+ }
229
+ } else {
230
+ tbb::parallel_for(size_t{0}, simplices.size(), build_one);
231
+ }
232
+ return out;
233
+ }
234
+
235
+ inline std::vector<double> rows_from_standard_occurrences(const std::vector<size_t>& occurrences,
236
+ const double* filtration_indices) {
237
+ std::vector<double> flat_rows;
238
+ if (occurrences.empty()) {
239
+ return flat_rows;
240
+ }
241
+
242
+ flat_rows.reserve(occurrences.size() * 2);
243
+ for (auto occurrence_it = occurrences.rbegin(); occurrence_it != occurrences.rend(); ++occurrence_it) {
244
+ const size_t occurrence = *occurrence_it;
245
+ flat_rows.push_back(-filtration_indices[occurrence]);
246
+ flat_rows.push_back(filtration_indices[occurrence]);
247
+ }
248
+ return flat_rows;
249
+ }
250
+
251
+ inline std::vector<double> rows_from_nerve_end_indices(const std::vector<size_t>& end_indices,
252
+ const double* filtration_indices) {
253
+ std::vector<double> flat_rows;
254
+ flat_rows.reserve(end_indices.size() * 2);
255
+ size_t best_end_index = std::numeric_limits<size_t>::max();
256
+ for (size_t offset = end_indices.size(); offset > 0; --offset) {
257
+ const size_t start_index = offset - 1;
258
+ const size_t end_index = end_indices[start_index];
259
+ if (end_index >= best_end_index) {
260
+ continue;
261
+ }
262
+ flat_rows.push_back(-filtration_indices[start_index]);
263
+ flat_rows.push_back(filtration_indices[end_index]);
264
+ best_end_index = end_index;
265
+ }
266
+ return flat_rows;
267
+ }
268
+
269
+ template <typename Tree, typename Filtration>
270
+ bool insert_kcritical_simplex(Tree& tree, const Simplex& simplex, const Filtration& filtration) {
271
+ using BaseTree = typename Tree::Base_tree;
272
+ auto& base_tree = static_cast<BaseTree&>(tree);
273
+ auto result =
274
+ base_tree.insert_simplex_and_subfaces(BaseTree::Filtration_maintenance::LOWER_EXISTING, simplex, filtration);
275
+ return result.first != tree.null_simplex();
276
+ }
277
+
278
+ template <typename Wrapper>
279
+ void fill_mcbif_simplextree(Wrapper& wrapper,
280
+ const int64_t* partitions,
281
+ size_t num_partitions,
282
+ size_t num_points,
283
+ const double* filtration_indices,
284
+ int max_dim,
285
+ const std::string& method) {
286
+ using Tree = std::remove_reference_t<decltype(wrapper.tree)>;
287
+ using Filtration = typename Tree::Filtration_value;
288
+
289
+ std::vector<SimplexData> simplex_data;
290
+ if (method == "standard") {
291
+ simplex_data = build_standard_simplices(partitions, num_partitions, num_points, max_dim);
292
+ } else if (method == "nerve") {
293
+ simplex_data = build_nerve_simplices(partitions, num_partitions, num_points, max_dim);
294
+ } else {
295
+ throw nb::value_error("method must be 'standard' or 'nerve'.");
296
+ }
297
+
298
+ tbb::parallel_sort(simplex_data.begin(), simplex_data.end(), [](const SimplexData& left, const SimplexData& right) {
299
+ if (left.simplex.size() != right.simplex.size()) {
300
+ return left.simplex.size() < right.simplex.size();
301
+ }
302
+ return left.simplex < right.simplex;
303
+ });
304
+
305
+ wrapper.tree.clear();
306
+ wrapper.tree.set_num_parameters(2);
307
+
308
+ bool inserted = false;
309
+ for (const auto& data : simplex_data) {
310
+ std::vector<double> flat_rows;
311
+ if (method == "standard") {
312
+ flat_rows = rows_from_standard_occurrences(data.occurrence_indices, filtration_indices);
313
+ } else if (method == "nerve") {
314
+ flat_rows = rows_from_nerve_end_indices(data.occurrence_indices, filtration_indices);
315
+ } else {
316
+ throw nb::value_error("method must be 'standard' or 'nerve'.");
317
+ }
318
+ if (flat_rows.empty()) {
319
+ continue;
320
+ }
321
+ Filtration filtration(flat_rows.begin(), flat_rows.end(), 2);
322
+ inserted |= insert_kcritical_simplex(wrapper.tree, data.simplex, filtration);
323
+ }
324
+ if (inserted) {
325
+ wrapper.tree.clear_filtration();
326
+ }
327
+ }
328
+
329
+ inline void validate_filtration_indices(const double* filtration_indices, size_t num_partitions) {
330
+ for (size_t i = 0; i < num_partitions; ++i) {
331
+ if (!std::isfinite(filtration_indices[i])) {
332
+ throw nb::value_error("filtration_indices must be finite.");
333
+ }
334
+ if (i > 0 && !(filtration_indices[i - 1] < filtration_indices[i])) {
335
+ throw nb::value_error("filtration_indices must be strictly increasing.");
336
+ }
337
+ }
338
+ }
339
+
340
+ inline void build_mcbif_dispatch(
341
+ nb::object& out,
342
+ const nb::ndarray<nb::numpy, const int64_t, nb::ndim<2>, nb::c_contig>& partitions,
343
+ const nb::ndarray<nb::numpy, const double, nb::ndim<1>, nb::c_contig>& filtration_indices,
344
+ int max_dim,
345
+ const std::string& method) {
346
+ const size_t num_partitions = partitions.shape(0);
347
+ const size_t num_points = partitions.shape(1);
348
+ visit_simplextree_wrapper(out, [&]<typename Desc>(auto& wrapper) {
349
+ if constexpr (Desc::is_kcritical && std::is_same_v<typename Desc::value_type, double>) {
350
+ nb::gil_scoped_release release;
351
+ fill_mcbif_simplextree(
352
+ wrapper, partitions.data(), num_partitions, num_points, filtration_indices.data(), max_dim, method);
353
+ } else {
354
+ throw nb::type_error("build_mcbif_simplextree expects a float64 k-critical SimplexTreeMulti target.");
355
+ }
356
+ });
357
+ }
358
+
359
+ } // namespace mpmcbif
360
+
361
+ NB_MODULE(_mcbif_nanobind, m) {
362
+ m.def(
363
+ "build_mcbif_simplextree",
364
+ [](nb::object target,
365
+ nb::ndarray<nb::numpy, const int64_t, nb::ndim<2>, nb::c_contig> partitions,
366
+ nb::ndarray<nb::numpy, const double, nb::ndim<1>, nb::c_contig> filtration_indices,
367
+ int max_dim,
368
+ std::string method) -> nb::object {
369
+ if (!mpmcbif::is_simplextree_object(target)) {
370
+ throw nb::type_error("build_mcbif_simplextree expects a SimplexTreeMulti target.");
371
+ }
372
+ if (partitions.shape(0) == 0) {
373
+ throw nb::value_error("partitions must contain at least one partition.");
374
+ }
375
+ if (partitions.shape(1) == 0) {
376
+ throw nb::value_error("partitions must contain at least one point.");
377
+ }
378
+ if (filtration_indices.shape(0) != partitions.shape(0)) {
379
+ throw nb::value_error("filtration_indices length must match the number of partitions.");
380
+ }
381
+ if (max_dim < 0) {
382
+ throw nb::value_error("max_dim must be nonnegative.");
383
+ }
384
+ if (method != "standard" && method != "nerve") {
385
+ throw nb::value_error("method must be 'standard' or 'nerve'.");
386
+ }
387
+ mpmcbif::validate_filtration_indices(filtration_indices.data(), filtration_indices.shape(0));
388
+
389
+ nb::object out = target.type()();
390
+ mpmcbif::build_mcbif_dispatch(out, partitions, filtration_indices, max_dim, method);
391
+ return out;
392
+ },
393
+ "target"_a,
394
+ "partitions"_a,
395
+ "filtration_indices"_a,
396
+ "max_dim"_a,
397
+ "method"_a);
398
+ }
@@ -178,6 +178,9 @@ auto compute_landscapes_box_impl(Gudhi::multi_persistence::Module<T>& self,
178
178
  const Gudhi::multi_persistence::Box<T>& box,
179
179
  const RandomAccessValueRange2& resolution,
180
180
  int n_jobs) {
181
+ if (resolution.size() != 2) {
182
+ throw std::invalid_argument("Module landscapes require a 2D resolution array.");
183
+ }
181
184
  std::vector<T> out;
182
185
  {
183
186
  nb::gil_scoped_release release;
@@ -188,10 +191,13 @@ auto compute_landscapes_box_impl(Gudhi::multi_persistence::Module<T>& self,
188
191
 
189
192
  template <typename T, class RandomAccessValueRange, class RandomAccessArray>
190
193
  auto compute_landscapes_grid_impl(Gudhi::multi_persistence::Module<T>& self,
191
- int degree,
192
- const RandomAccessValueRange& ks,
193
- const std::vector<RandomAccessArray>& grid,
194
- int n_jobs) {
194
+ int degree,
195
+ const RandomAccessValueRange& ks,
196
+ const std::vector<RandomAccessArray>& grid,
197
+ int n_jobs) {
198
+ if (grid.size() != 2) {
199
+ throw std::invalid_argument("Module landscapes require a 2D grid.");
200
+ }
195
201
  std::vector<T> out;
196
202
  {
197
203
  nb::gil_scoped_release release;