multipers 2.3.3b2__tar.gz → 2.3.3b4__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.

Potentially problematic release.


This version of multipers might be problematic. Click here for more details.

Files changed (191) hide show
  1. {multipers-2.3.3b2/multipers.egg-info → multipers-2.3.3b4}/PKG-INFO +6 -1
  2. {multipers-2.3.3b2 → multipers-2.3.3b4}/README.md +5 -0
  3. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/signed_measures.py +5 -3
  4. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/plots.py +40 -14
  5. {multipers-2.3.3b2 → multipers-2.3.3b4/multipers.egg-info}/PKG-INFO +6 -1
  6. {multipers-2.3.3b2 → multipers-2.3.3b4}/pyproject.toml +1 -1
  7. {multipers-2.3.3b2 → multipers-2.3.3b4}/LICENSE +0 -0
  8. {multipers-2.3.3b2 → multipers-2.3.3b4}/MANIFEST.in +0 -0
  9. {multipers-2.3.3b2 → multipers-2.3.3b4}/_tempita_grid_gen.py +0 -0
  10. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/__init__.py +0 -0
  11. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/_signed_measure_meta.py +0 -0
  12. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/_slicer_meta.py +0 -0
  13. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/array_api/__init__.py +0 -0
  14. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/array_api/numpy.py +0 -0
  15. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/array_api/torch.py +0 -0
  16. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/MOL2.py +0 -0
  17. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/UCR.py +0 -0
  18. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/__init__.py +0 -0
  19. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/graphs.py +0 -0
  20. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/immuno_regions.py +0 -0
  21. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/minimal_presentation_to_st_bf.py +0 -0
  22. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/pytorch2simplextree.py +0 -0
  23. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/shape3d.py +0 -0
  24. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/data/synthetic.py +0 -0
  25. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/distances.py +0 -0
  26. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/filtration_conversions.pxd +0 -0
  27. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/filtration_conversions.pxd.tp +0 -0
  28. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/filtrations/__init__.py +0 -0
  29. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/filtrations/density.py +0 -0
  30. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/filtrations/filtrations.py +0 -0
  31. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/filtrations.pxd +0 -0
  32. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/function_rips.pyx +0 -0
  33. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/grids.pyx +0 -0
  34. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/Persistence_slices_interface.h +0 -0
  35. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/Simplex_tree_interface.h +0 -0
  36. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/Simplex_tree_multi_interface.h +0 -0
  37. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/cubical_to_boundary.h +0 -0
  38. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Bitmap_cubical_complex.h +0 -0
  39. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h +0 -0
  40. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +0 -0
  41. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Debug_utils.h +0 -0
  42. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Multi_field.h +0 -0
  43. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Multi_field_operators.h +0 -0
  44. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Multi_field_shared.h +0 -0
  45. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Multi_field_small.h +0 -0
  46. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h +0 -0
  47. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h +0 -0
  48. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Z2_field.h +0 -0
  49. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Z2_field_operators.h +0 -0
  50. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Zp_field.h +0 -0
  51. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Zp_field_operators.h +0 -0
  52. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Fields/Zp_field_shared.h +0 -0
  53. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Flag_complex_edge_collapser.h +0 -0
  54. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Matrix.h +0 -0
  55. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Multi_critical_filtration.h +0 -0
  56. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Multi_persistence/Box.h +0 -0
  57. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Multi_persistence/Line.h +0 -0
  58. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Off_reader.h +0 -0
  59. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/One_critical_filtration.h +0 -0
  60. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h +0 -0
  61. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +0 -0
  62. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h +0 -0
  63. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h +0 -0
  64. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h +0 -0
  65. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h +0 -0
  66. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h +0 -0
  67. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h +0 -0
  68. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h +0 -0
  69. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/base_swap.h +0 -0
  70. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h +0 -0
  71. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h +0 -0
  72. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h +0 -0
  73. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h +0 -0
  74. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h +0 -0
  75. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +0 -0
  76. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h +0 -0
  77. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h +0 -0
  78. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h +0 -0
  79. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h +0 -0
  80. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h +0 -0
  81. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h +0 -0
  82. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h +0 -0
  83. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h +0 -0
  84. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h +0 -0
  85. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h +0 -0
  86. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h +0 -0
  87. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h +0 -0
  88. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h +0 -0
  89. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h +0 -0
  90. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h +0 -0
  91. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h +0 -0
  92. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h +0 -0
  93. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h +0 -0
  94. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h +0 -0
  95. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h +0 -0
  96. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +0 -0
  97. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Persistent_cohomology.h +0 -0
  98. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Points_off_io.h +0 -0
  99. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simple_object_pool.h +0 -0
  100. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h +0 -0
  101. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +0 -0
  102. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h +0 -0
  103. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +0 -0
  104. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h +0 -0
  105. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h +0 -0
  106. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h +0 -0
  107. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h +0 -0
  108. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree.h +0 -0
  109. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/Simplex_tree_multi.h +0 -0
  110. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/distance_functions.h +0 -0
  111. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/graph_simplicial_complex.h +0 -0
  112. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/persistence_interval.h +0 -0
  113. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/persistence_matrix_options.h +0 -0
  114. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/gudhi/reader_utils.h +0 -0
  115. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/mma_interface_coh.h +0 -0
  116. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/mma_interface_h0.h +0 -0
  117. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/mma_interface_matrix.h +0 -0
  118. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/naive_merge_tree.h +0 -0
  119. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/scc_io.h +0 -0
  120. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/gudhi/truc.h +0 -0
  121. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/io.pyx +0 -0
  122. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/__init__.py +0 -0
  123. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/accuracies.py +0 -0
  124. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/invariants_with_persistable.py +0 -0
  125. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/kernels.py +0 -0
  126. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/mma.py +0 -0
  127. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/one.py +0 -0
  128. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/point_clouds.py +0 -0
  129. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/sliced_wasserstein.py +0 -0
  130. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/ml/tools.py +0 -0
  131. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/mma_structures.pxd +0 -0
  132. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/mma_structures.pyx +0 -0
  133. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/mma_structures.pyx.tp +0 -0
  134. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multi_parameter_rank_invariant/diff_helpers.h +0 -0
  135. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multi_parameter_rank_invariant/euler_characteristic.h +0 -0
  136. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multi_parameter_rank_invariant/function_rips.h +0 -0
  137. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multi_parameter_rank_invariant/hilbert_function.h +0 -0
  138. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multi_parameter_rank_invariant/persistence_slices.h +0 -0
  139. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multi_parameter_rank_invariant/rank_invariant.h +0 -0
  140. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_edge_collapse.py +0 -0
  141. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/approximation.h +0 -0
  142. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/combinatory.h +0 -0
  143. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/debug.h +0 -0
  144. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/euler_curves.h +0 -0
  145. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/format_python-cpp.h +0 -0
  146. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/heap_column.h +0 -0
  147. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/images.h +0 -0
  148. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/list_column.h +0 -0
  149. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/list_column_2.h +0 -0
  150. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/ru_matrix.h +0 -0
  151. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/set_column.h +0 -0
  152. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h +0 -0
  153. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/unordered_set_column.h +0 -0
  154. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/utilities.h +0 -0
  155. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/vector_column.h +0 -0
  156. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/vector_matrix.h +0 -0
  157. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/vineyards.h +0 -0
  158. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation/vineyards_trajectories.h +0 -0
  159. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/multiparameter_module_approximation.pyx +0 -0
  160. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/pickle.py +0 -0
  161. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/point_measure.pyx +0 -0
  162. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/simplex_tree_multi.pxd +0 -0
  163. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/simplex_tree_multi.pyx +0 -0
  164. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/simplex_tree_multi.pyx.tp +0 -0
  165. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/slicer.pxd +0 -0
  166. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/slicer.pxd.tp +0 -0
  167. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/slicer.pyx +18 -18
  168. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/slicer.pyx.tp +0 -0
  169. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/tensor/tensor.h +0 -0
  170. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/tensor.pxd +0 -0
  171. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/test.pyx +0 -0
  172. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/tests/__init__.py +0 -0
  173. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/torch/__init__.py +0 -0
  174. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/torch/diff_grids.py +0 -0
  175. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers/torch/rips_density.py +0 -0
  176. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers.egg-info/SOURCES.txt +0 -0
  177. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers.egg-info/dependency_links.txt +0 -0
  178. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers.egg-info/requires.txt +0 -0
  179. {multipers-2.3.3b2 → multipers-2.3.3b4}/multipers.egg-info/top_level.txt +0 -0
  180. {multipers-2.3.3b2 → multipers-2.3.3b4}/setup.cfg +0 -0
  181. {multipers-2.3.3b2 → multipers-2.3.3b4}/setup.py +0 -0
  182. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_diff_helper.py +0 -0
  183. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_filtrations.py +0 -0
  184. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_hilbert_function.py +0 -0
  185. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_mma.py +0 -0
  186. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_point_clouds.py +0 -0
  187. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_python-cpp_conversion.py +0 -0
  188. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_signed_betti.py +0 -0
  189. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_signed_measure.py +0 -0
  190. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_simplextreemulti.py +0 -0
  191. {multipers-2.3.3b2 → multipers-2.3.3b4}/tests/test_slicer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multipers
3
- Version: 2.3.3b2
3
+ Version: 2.3.3b4
4
4
  Summary: Multiparameter Topological Persistence for Machine Learning
5
5
  Author-email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
6
6
  Maintainer-email: David Loiseaux <david.lapous@proton.me>
@@ -62,6 +62,11 @@ or
62
62
  ```sh
63
63
  conda install multipers -c conda-forge
64
64
  ```
65
+ Pre-releases are available via
66
+ ```sh
67
+ pip install --pre multipers
68
+ ```
69
+ These release usually contain small bugfixes or unstable new features.
65
70
 
66
71
  Windows support is experimental, and some core dependencies are not available on Windows.
67
72
  We hence recommend Windows user to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/).
@@ -26,6 +26,11 @@ or
26
26
  ```sh
27
27
  conda install multipers -c conda-forge
28
28
  ```
29
+ Pre-releases are available via
30
+ ```sh
31
+ pip install --pre multipers
32
+ ```
33
+ These release usually contain small bugfixes or unstable new features.
29
34
 
30
35
  Windows support is experimental, and some core dependencies are not available on Windows.
31
36
  We hence recommend Windows user to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/).
@@ -758,6 +758,8 @@ class SignedMeasureFormatter(BaseEstimator, TransformerMixin):
758
758
  ) = self._get_filtration_bounds(X, axis=ax)
759
759
  self._filtrations_bounds.append(filtration_bounds)
760
760
  self._normalization_factors.append(normalization_factors)
761
+ self._filtrations_bounds = self._backend.astensor(self._filtrations_bounds)
762
+ self._normalization_factors = self._backend.astensor(self._normalization_factors)
761
763
  # else:
762
764
  # (
763
765
  # self._filtrations_bounds,
@@ -782,9 +784,9 @@ class SignedMeasureFormatter(BaseEstimator, TransformerMixin):
782
784
  ]
783
785
  # axis, filtration_values
784
786
  filtration_values = [
785
- compute_grid(
787
+ self._backend.astensor(compute_grid(
786
788
  f_ax.T, resolution=self.resolution, strategy=self.grid_strategy
787
- )
789
+ ))
788
790
  for f_ax in filtration_values
789
791
  ]
790
792
  self._infered_grids = filtration_values
@@ -848,7 +850,7 @@ class SignedMeasureFormatter(BaseEstimator, TransformerMixin):
848
850
 
849
851
  if self.flatten:
850
852
  out = np.concatenate(out).flatten()
851
- if self.axis == -1:
853
+ elif self.axis == -1:
852
854
  return np.asarray(out)
853
855
  else:
854
856
  return np.asarray(out)[0]
@@ -1,11 +1,24 @@
1
1
  from typing import Optional
2
+ from warnings import warn
2
3
 
4
+ import matplotlib.colors as mcolors
3
5
  import matplotlib.pyplot as plt
4
6
  import numpy as np
7
+ from matplotlib.colors import ListedColormap
5
8
  from numpy.typing import ArrayLike
6
- from warnings import warn
9
+
7
10
  from multipers.array_api import to_numpy
8
11
 
12
+ _custom_colors = [
13
+ "#03045e",
14
+ "#0077b6",
15
+ "#00b4d8",
16
+ "#90e0ef",
17
+ ]
18
+ _cmap = ListedColormap(_custom_colors)
19
+ _continuous_cmap = mcolors.LinearSegmentedColormap.from_list(
20
+ "continuous_cmap", _cmap.colors, N=256
21
+ )
9
22
 
10
23
 
11
24
  def _plot_rectangle(rectangle: np.ndarray, weight, **plt_kwargs):
@@ -185,7 +198,7 @@ def plot_surface(
185
198
  if discrete_surface:
186
199
  cmap = matplotlib.colormaps["gray_r"]
187
200
  else:
188
- cmap = matplotlib.colormaps["plasma"]
201
+ cmap = _cmap
189
202
  if discrete_surface:
190
203
  if has_negative_values:
191
204
  bounds = np.arange(-5, 6, 1, dtype=int)
@@ -200,15 +213,15 @@ def plot_surface(
200
213
  )
201
214
  cbar.set_ticks(ticks=bounds, labels=bounds)
202
215
  return im
203
- im = ax.pcolormesh(grid[0], grid[1], hf.T, cmap=cmap, **plt_args)
216
+ im = ax.contourf(grid[0], grid[1], hf.T, cmap=cmap, **plt_args)
204
217
  return im
205
218
 
206
219
 
207
220
  def plot_surfaces(HF, size=4, **plt_args):
208
221
  grid, hf = HF
209
- assert hf.ndim == 3, (
210
- f"Found hf.shape = {hf.shape}, expected ndim = 3 : degree, 2-parameter surface."
211
- )
222
+ assert (
223
+ hf.ndim == 3
224
+ ), f"Found hf.shape = {hf.shape}, expected ndim = 3 : degree, 2-parameter surface."
212
225
  num_degrees = hf.shape[0]
213
226
  fig, axes = plt.subplots(
214
227
  nrows=1, ncols=num_degrees, figsize=(num_degrees * size, size)
@@ -388,7 +401,19 @@ def plot_simplicial_complex(
388
401
  return out
389
402
 
390
403
 
391
- def plot_point_cloud(pts, function, x, y, mma=None, degree=None):
404
+ def plot_point_cloud(
405
+ pts,
406
+ function,
407
+ x,
408
+ y,
409
+ mma=None,
410
+ degree=None,
411
+ ball_alpha=0.3,
412
+ point_cmap="viridis",
413
+ color_bias=1,
414
+ ball_color=None,
415
+ point_size=20,
416
+ ):
392
417
  if mma is not None:
393
418
  fig, (a, b) = plt.subplots(ncols=2, figsize=(15, 5))
394
419
  plt.sca(a)
@@ -403,22 +428,23 @@ def plot_point_cloud(pts, function, x, y, mma=None, degree=None):
403
428
  plt.scatter([x], [y], c="r", zorder=10)
404
429
  plt.text(x + 0.01 * (b - a), y + 0.01 * (d - c), f"({x},{y})")
405
430
  return
406
- values = 1 - function
431
+ values = -function
407
432
  qs = np.quantile(values, np.linspace(0, 1, 100))
408
433
 
409
434
  def color_idx(d):
410
- return np.searchsorted(qs, d) / 100
435
+ return np.searchsorted(qs, d * color_bias) / 100
411
436
 
412
- from matplotlib.pyplot import get_cmap
413
437
  from matplotlib.collections import PatchCollection
438
+ from matplotlib.pyplot import get_cmap
414
439
 
415
440
  def color(d):
416
- return get_cmap("viridis")([0, color_idx(d), 1])[1]
441
+ return get_cmap(point_cmap)([0, color_idx(d), 1])[1]
417
442
 
443
+ _colors = np.array([color(v) for v in values])
418
444
  ax = plt.gca()
419
445
  idx = function <= y
420
- circles = [plt.Circle(pt, x, color=color(c)) for pt, c in zip(pts[idx], function)]
421
- pc = PatchCollection(circles, alpha=0.3)
446
+ circles = [plt.Circle(pt, x) for pt, c in zip(pts[idx], function)]
447
+ pc = PatchCollection(circles, alpha=ball_alpha, color=ball_color)
422
448
  ax.add_collection(pc)
423
- plt.scatter(*pts.T, c=-function, s=20)
449
+ plt.scatter(*pts.T, c=_colors, s=point_size)
424
450
  ax.set_aspect(1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: multipers
3
- Version: 2.3.3b2
3
+ Version: 2.3.3b4
4
4
  Summary: Multiparameter Topological Persistence for Machine Learning
5
5
  Author-email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
6
6
  Maintainer-email: David Loiseaux <david.lapous@proton.me>
@@ -62,6 +62,11 @@ or
62
62
  ```sh
63
63
  conda install multipers -c conda-forge
64
64
  ```
65
+ Pre-releases are available via
66
+ ```sh
67
+ pip install --pre multipers
68
+ ```
69
+ These release usually contain small bugfixes or unstable new features.
65
70
 
66
71
  Windows support is experimental, and some core dependencies are not available on Windows.
67
72
  We hence recommend Windows user to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/).
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
9
9
 
10
10
  [project]
11
11
  name = "multipers"
12
- version = "2.3.3b2"
12
+ version = "2.3.3b4"
13
13
  description = "Multiparameter Topological Persistence for Machine Learning"
14
14
  readme = "README.md"
15
15
  authors = [
File without changes
File without changes
@@ -19876,7 +19876,7 @@ cdef extern from "gudhi/cubical_to_boundary.h" namespace "":
19876
19876
  void _to_boundary(const vector[unsigned int]&, vector[vector[unsigned int]]&, vector[int]&) except + nogil
19877
19877
  void get_vertices(unsigned int, cset[unsigned int]&, const vector[vector[unsigned int]]&) nogil
19878
19878
 
19879
- def _from_bitmapi64(image, **slicer_kwargs):
19879
+ def _from_bitmapf32(image, **slicer_kwargs):
19880
19880
  from multipers import Slicer
19881
19881
  dtype = slicer_kwargs.get("dtype", image.dtype)
19882
19882
  slicer_kwargs["dtype"] = dtype
@@ -19894,9 +19894,9 @@ def _from_bitmapi64(image, **slicer_kwargs):
19894
19894
  cdef cset[unsigned int] vertices
19895
19895
 
19896
19896
  cdef unsigned int num_gens = gen_dims.size()
19897
- filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int64) - _Slicer._inf_value()
19898
- cdef int64_t[:,:] F = filtration_values
19899
- cdef int64_t[:,:] c_img = image.reshape(-1,num_parameters)
19897
+ filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.float32) - _Slicer._inf_value()
19898
+ cdef float[:,:] F = filtration_values
19899
+ cdef float[:,:] c_img = image.reshape(-1,num_parameters)
19900
19900
  with nogil:
19901
19901
  for i in range(num_gens):
19902
19902
  # with gil:
@@ -19914,7 +19914,7 @@ def _from_bitmapi64(image, **slicer_kwargs):
19914
19914
  # print(f"F = {np.asarray(F[i])}")
19915
19915
  slicer = _Slicer(gen_maps, gen_dims, filtration_values)
19916
19916
  return slicer
19917
- def _from_bitmapf32(image, **slicer_kwargs):
19917
+ def _from_bitmapf64(image, **slicer_kwargs):
19918
19918
  from multipers import Slicer
19919
19919
  dtype = slicer_kwargs.get("dtype", image.dtype)
19920
19920
  slicer_kwargs["dtype"] = dtype
@@ -19932,9 +19932,9 @@ def _from_bitmapf32(image, **slicer_kwargs):
19932
19932
  cdef cset[unsigned int] vertices
19933
19933
 
19934
19934
  cdef unsigned int num_gens = gen_dims.size()
19935
- filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.float32) - _Slicer._inf_value()
19936
- cdef float[:,:] F = filtration_values
19937
- cdef float[:,:] c_img = image.reshape(-1,num_parameters)
19935
+ filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.float64) - _Slicer._inf_value()
19936
+ cdef double[:,:] F = filtration_values
19937
+ cdef double[:,:] c_img = image.reshape(-1,num_parameters)
19938
19938
  with nogil:
19939
19939
  for i in range(num_gens):
19940
19940
  # with gil:
@@ -19952,7 +19952,7 @@ def _from_bitmapf32(image, **slicer_kwargs):
19952
19952
  # print(f"F = {np.asarray(F[i])}")
19953
19953
  slicer = _Slicer(gen_maps, gen_dims, filtration_values)
19954
19954
  return slicer
19955
- def _from_bitmapf64(image, **slicer_kwargs):
19955
+ def _from_bitmapi32(image, **slicer_kwargs):
19956
19956
  from multipers import Slicer
19957
19957
  dtype = slicer_kwargs.get("dtype", image.dtype)
19958
19958
  slicer_kwargs["dtype"] = dtype
@@ -19970,9 +19970,9 @@ def _from_bitmapf64(image, **slicer_kwargs):
19970
19970
  cdef cset[unsigned int] vertices
19971
19971
 
19972
19972
  cdef unsigned int num_gens = gen_dims.size()
19973
- filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.float64) - _Slicer._inf_value()
19974
- cdef double[:,:] F = filtration_values
19975
- cdef double[:,:] c_img = image.reshape(-1,num_parameters)
19973
+ filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int32) - _Slicer._inf_value()
19974
+ cdef int32_t[:,:] F = filtration_values
19975
+ cdef int32_t[:,:] c_img = image.reshape(-1,num_parameters)
19976
19976
  with nogil:
19977
19977
  for i in range(num_gens):
19978
19978
  # with gil:
@@ -19990,7 +19990,7 @@ def _from_bitmapf64(image, **slicer_kwargs):
19990
19990
  # print(f"F = {np.asarray(F[i])}")
19991
19991
  slicer = _Slicer(gen_maps, gen_dims, filtration_values)
19992
19992
  return slicer
19993
- def _from_bitmapi32(image, **slicer_kwargs):
19993
+ def _from_bitmapi64(image, **slicer_kwargs):
19994
19994
  from multipers import Slicer
19995
19995
  dtype = slicer_kwargs.get("dtype", image.dtype)
19996
19996
  slicer_kwargs["dtype"] = dtype
@@ -20008,9 +20008,9 @@ def _from_bitmapi32(image, **slicer_kwargs):
20008
20008
  cdef cset[unsigned int] vertices
20009
20009
 
20010
20010
  cdef unsigned int num_gens = gen_dims.size()
20011
- filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int32) - _Slicer._inf_value()
20012
- cdef int32_t[:,:] F = filtration_values
20013
- cdef int32_t[:,:] c_img = image.reshape(-1,num_parameters)
20011
+ filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int64) - _Slicer._inf_value()
20012
+ cdef int64_t[:,:] F = filtration_values
20013
+ cdef int64_t[:,:] c_img = image.reshape(-1,num_parameters)
20014
20014
  with nogil:
20015
20015
  for i in range(num_gens):
20016
20016
  # with gil:
@@ -20031,14 +20031,14 @@ def _from_bitmapi32(image, **slicer_kwargs):
20031
20031
 
20032
20032
  def from_bitmap(img, **kwargs):
20033
20033
  img = np.asarray(img)
20034
- if img.dtype == np.int64:
20035
- return _from_bitmapi64(img, **kwargs)
20036
20034
  if img.dtype == np.float32:
20037
20035
  return _from_bitmapf32(img, **kwargs)
20038
20036
  if img.dtype == np.float64:
20039
20037
  return _from_bitmapf64(img, **kwargs)
20040
20038
  if img.dtype == np.int32:
20041
20039
  return _from_bitmapi32(img, **kwargs)
20040
+ if img.dtype == np.int64:
20041
+ return _from_bitmapi64(img, **kwargs)
20042
20042
  raise ValueError(f"Invalid dtype. Got {img.dtype=}, was expecting {available_dtype=}.")
20043
20043
 
20044
20044
  def from_function_delaunay(
File without changes
File without changes