multipers 2.2.3__cp310-cp310-win_amd64.whl → 2.3.1__cp310-cp310-win_amd64.whl

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 (182) hide show
  1. multipers/__init__.py +33 -31
  2. multipers/_signed_measure_meta.py +430 -430
  3. multipers/_slicer_meta.py +211 -212
  4. multipers/data/MOL2.py +458 -458
  5. multipers/data/UCR.py +18 -18
  6. multipers/data/graphs.py +466 -466
  7. multipers/data/immuno_regions.py +27 -27
  8. multipers/data/pytorch2simplextree.py +90 -90
  9. multipers/data/shape3d.py +101 -101
  10. multipers/data/synthetic.py +113 -111
  11. multipers/distances.py +198 -198
  12. multipers/filtration_conversions.pxd.tp +84 -84
  13. multipers/filtrations/__init__.py +18 -0
  14. multipers/{ml/convolutions.py → filtrations/density.py} +563 -520
  15. multipers/filtrations/filtrations.py +289 -0
  16. multipers/filtrations.pxd +224 -224
  17. multipers/function_rips.cp310-win_amd64.pyd +0 -0
  18. multipers/function_rips.pyx +105 -105
  19. multipers/grids.cp310-win_amd64.pyd +0 -0
  20. multipers/grids.pyx +350 -350
  21. multipers/gudhi/Persistence_slices_interface.h +132 -132
  22. multipers/gudhi/Simplex_tree_interface.h +239 -245
  23. multipers/gudhi/Simplex_tree_multi_interface.h +516 -561
  24. multipers/gudhi/cubical_to_boundary.h +59 -59
  25. multipers/gudhi/gudhi/Bitmap_cubical_complex.h +450 -450
  26. multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h +1070 -1070
  27. multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +579 -579
  28. multipers/gudhi/gudhi/Debug_utils.h +45 -45
  29. multipers/gudhi/gudhi/Fields/Multi_field.h +484 -484
  30. multipers/gudhi/gudhi/Fields/Multi_field_operators.h +455 -455
  31. multipers/gudhi/gudhi/Fields/Multi_field_shared.h +450 -450
  32. multipers/gudhi/gudhi/Fields/Multi_field_small.h +531 -531
  33. multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h +507 -507
  34. multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h +531 -531
  35. multipers/gudhi/gudhi/Fields/Z2_field.h +355 -355
  36. multipers/gudhi/gudhi/Fields/Z2_field_operators.h +376 -376
  37. multipers/gudhi/gudhi/Fields/Zp_field.h +420 -420
  38. multipers/gudhi/gudhi/Fields/Zp_field_operators.h +400 -400
  39. multipers/gudhi/gudhi/Fields/Zp_field_shared.h +418 -418
  40. multipers/gudhi/gudhi/Flag_complex_edge_collapser.h +337 -337
  41. multipers/gudhi/gudhi/Matrix.h +2107 -2107
  42. multipers/gudhi/gudhi/Multi_critical_filtration.h +1038 -1038
  43. multipers/gudhi/gudhi/Multi_persistence/Box.h +171 -171
  44. multipers/gudhi/gudhi/Multi_persistence/Line.h +282 -282
  45. multipers/gudhi/gudhi/Off_reader.h +173 -173
  46. multipers/gudhi/gudhi/One_critical_filtration.h +1433 -1431
  47. multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h +769 -769
  48. multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +686 -686
  49. multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h +842 -842
  50. multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h +1350 -1350
  51. multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h +1105 -1105
  52. multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h +859 -859
  53. multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h +910 -910
  54. multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h +139 -139
  55. multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h +230 -230
  56. multipers/gudhi/gudhi/Persistence_matrix/base_swap.h +211 -211
  57. multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h +60 -60
  58. multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h +60 -60
  59. multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h +136 -136
  60. multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h +190 -190
  61. multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h +616 -616
  62. multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +150 -150
  63. multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h +106 -106
  64. multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h +219 -219
  65. multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h +327 -327
  66. multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h +1140 -1140
  67. multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h +934 -934
  68. multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h +934 -934
  69. multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h +980 -980
  70. multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h +1092 -1092
  71. multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h +192 -192
  72. multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h +921 -921
  73. multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h +1093 -1093
  74. multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h +1012 -1012
  75. multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h +1244 -1244
  76. multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h +186 -186
  77. multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h +164 -164
  78. multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h +156 -156
  79. multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h +376 -376
  80. multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h +540 -540
  81. multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h +118 -118
  82. multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h +173 -173
  83. multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +128 -128
  84. multipers/gudhi/gudhi/Persistent_cohomology.h +745 -745
  85. multipers/gudhi/gudhi/Points_off_io.h +171 -171
  86. multipers/gudhi/gudhi/Simple_object_pool.h +69 -69
  87. multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h +463 -463
  88. multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +83 -83
  89. multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h +106 -106
  90. multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +277 -277
  91. multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h +62 -62
  92. multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h +27 -27
  93. multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h +62 -62
  94. multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h +157 -157
  95. multipers/gudhi/gudhi/Simplex_tree.h +2794 -2794
  96. multipers/gudhi/gudhi/Simplex_tree_multi.h +152 -163
  97. multipers/gudhi/gudhi/distance_functions.h +62 -62
  98. multipers/gudhi/gudhi/graph_simplicial_complex.h +104 -104
  99. multipers/gudhi/gudhi/persistence_interval.h +253 -253
  100. multipers/gudhi/gudhi/persistence_matrix_options.h +170 -170
  101. multipers/gudhi/gudhi/reader_utils.h +367 -367
  102. multipers/gudhi/mma_interface_coh.h +256 -255
  103. multipers/gudhi/mma_interface_h0.h +223 -231
  104. multipers/gudhi/mma_interface_matrix.h +291 -282
  105. multipers/gudhi/naive_merge_tree.h +536 -575
  106. multipers/gudhi/scc_io.h +310 -289
  107. multipers/gudhi/truc.h +957 -888
  108. multipers/io.cp310-win_amd64.pyd +0 -0
  109. multipers/io.pyx +714 -711
  110. multipers/ml/accuracies.py +90 -90
  111. multipers/ml/invariants_with_persistable.py +79 -79
  112. multipers/ml/kernels.py +176 -176
  113. multipers/ml/mma.py +713 -714
  114. multipers/ml/one.py +472 -472
  115. multipers/ml/point_clouds.py +352 -346
  116. multipers/ml/signed_measures.py +1589 -1589
  117. multipers/ml/sliced_wasserstein.py +461 -461
  118. multipers/ml/tools.py +113 -113
  119. multipers/mma_structures.cp310-win_amd64.pyd +0 -0
  120. multipers/mma_structures.pxd +127 -127
  121. multipers/mma_structures.pyx +4 -8
  122. multipers/mma_structures.pyx.tp +1083 -1085
  123. multipers/multi_parameter_rank_invariant/diff_helpers.h +84 -93
  124. multipers/multi_parameter_rank_invariant/euler_characteristic.h +97 -97
  125. multipers/multi_parameter_rank_invariant/function_rips.h +322 -322
  126. multipers/multi_parameter_rank_invariant/hilbert_function.h +769 -769
  127. multipers/multi_parameter_rank_invariant/persistence_slices.h +148 -148
  128. multipers/multi_parameter_rank_invariant/rank_invariant.h +369 -369
  129. multipers/multiparameter_edge_collapse.py +41 -41
  130. multipers/multiparameter_module_approximation/approximation.h +2298 -2295
  131. multipers/multiparameter_module_approximation/combinatory.h +129 -129
  132. multipers/multiparameter_module_approximation/debug.h +107 -107
  133. multipers/multiparameter_module_approximation/format_python-cpp.h +286 -286
  134. multipers/multiparameter_module_approximation/heap_column.h +238 -238
  135. multipers/multiparameter_module_approximation/images.h +79 -79
  136. multipers/multiparameter_module_approximation/list_column.h +174 -174
  137. multipers/multiparameter_module_approximation/list_column_2.h +232 -232
  138. multipers/multiparameter_module_approximation/ru_matrix.h +347 -347
  139. multipers/multiparameter_module_approximation/set_column.h +135 -135
  140. multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h +36 -36
  141. multipers/multiparameter_module_approximation/unordered_set_column.h +166 -166
  142. multipers/multiparameter_module_approximation/utilities.h +403 -419
  143. multipers/multiparameter_module_approximation/vector_column.h +223 -223
  144. multipers/multiparameter_module_approximation/vector_matrix.h +331 -331
  145. multipers/multiparameter_module_approximation/vineyards.h +464 -464
  146. multipers/multiparameter_module_approximation/vineyards_trajectories.h +649 -649
  147. multipers/multiparameter_module_approximation.cp310-win_amd64.pyd +0 -0
  148. multipers/multiparameter_module_approximation.pyx +218 -217
  149. multipers/pickle.py +90 -53
  150. multipers/plots.py +342 -334
  151. multipers/point_measure.cp310-win_amd64.pyd +0 -0
  152. multipers/point_measure.pyx +322 -320
  153. multipers/simplex_tree_multi.cp310-win_amd64.pyd +0 -0
  154. multipers/simplex_tree_multi.pxd +133 -133
  155. multipers/simplex_tree_multi.pyx +115 -48
  156. multipers/simplex_tree_multi.pyx.tp +1947 -1935
  157. multipers/slicer.cp310-win_amd64.pyd +0 -0
  158. multipers/slicer.pxd +301 -120
  159. multipers/slicer.pxd.tp +218 -214
  160. multipers/slicer.pyx +1570 -507
  161. multipers/slicer.pyx.tp +931 -914
  162. multipers/tensor/tensor.h +672 -672
  163. multipers/tensor.pxd +13 -13
  164. multipers/test.pyx +44 -44
  165. multipers/tests/__init__.py +57 -57
  166. multipers/torch/diff_grids.py +217 -217
  167. multipers/torch/rips_density.py +310 -304
  168. {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/LICENSE +21 -21
  169. {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/METADATA +21 -11
  170. multipers-2.3.1.dist-info/RECORD +182 -0
  171. {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/WHEEL +1 -1
  172. multipers/tests/test_diff_helper.py +0 -73
  173. multipers/tests/test_hilbert_function.py +0 -82
  174. multipers/tests/test_mma.py +0 -83
  175. multipers/tests/test_point_clouds.py +0 -49
  176. multipers/tests/test_python-cpp_conversion.py +0 -82
  177. multipers/tests/test_signed_betti.py +0 -181
  178. multipers/tests/test_signed_measure.py +0 -89
  179. multipers/tests/test_simplextreemulti.py +0 -221
  180. multipers/tests/test_slicer.py +0 -221
  181. multipers-2.2.3.dist-info/RECORD +0 -189
  182. {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/top_level.txt +0 -0
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 David Loiseaux
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2023 David Loiseaux
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: multipers
3
- Version: 2.2.3
3
+ Version: 2.3.1
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>
@@ -56,25 +56,33 @@ Requires-Dist: pykeops
56
56
  Requires-Dist: pot
57
57
 
58
58
  # multipers : Multiparameter Persistence for Machine Learning
59
- [![Documentation](https://img.shields.io/badge/Documentation-website-blue)](https://davidlapous.github.io/multipers)
60
- [![DOI](https://joss.theoj.org/papers/10.21105/joss.06773/status.svg)](https://doi.org/10.21105/joss.06773)
61
- [![PyPI](https://img.shields.io/pypi/v/multipers?color=green)](https://pypi.org/project/multipers)
62
- [![Build, test](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml/badge.svg)](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml)
63
- [![Downloads](https://static.pepy.tech/badge/multipers)](https://pepy.tech/project/multipers)
59
+ [![DOI](https://joss.theoj.org/papers/10.21105/joss.06773/status.svg)](https://doi.org/10.21105/joss.06773) [![Documentation](https://img.shields.io/badge/Documentation-website-blue)](https://davidlapous.github.io/multipers) [![Build, test](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml/badge.svg)](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml)
64
60
  <br>
65
61
  Scikit-style PyTorch-autodiff multiparameter persistent homology python library.
66
62
  This library aims to provide easy to use and performant strategies for applied multiparameter topology.
67
- <br> Meant to be integrated in [the Gudhi library](https://gudhi.inria.fr/).
63
+ <br> Meant to be integrated in the [Gudhi](https://gudhi.inria.fr/) library.
64
+
65
+ ## Compiled packages
66
+ | Source | Version | Downloads | Platforms |
67
+ | --- | --- | --- | --- |
68
+ | [![Conda Recipe](https://img.shields.io/badge/conda-recipe-green.svg)](https://anaconda.org/conda-forge/multipers)| [![Conda Version](https://img.shields.io/conda/vn/conda-forge/multipers.svg)](https://anaconda.org/conda-forge/multipers) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/multipers.svg)](https://anaconda.org/conda-forge/multipers) |[![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/multipers.svg)](https://anaconda.org/conda-forge/multipers) |
69
+ | [![pip Recipe](https://img.shields.io/badge/pip-package-green.svg)](https:///pypi.org/project/multipers) | [![PyPI](https://img.shields.io/pypi/v/multipers?color=green)](https://pypi.org/project/multipers) | [![ pip downloads](https://static.pepy.tech/badge/multipers)](https://pepy.tech/project/multipers) | |
70
+
71
+
68
72
 
69
73
  ## Quick start
70
74
  This library allows computing several representations from "geometrical datasets", e.g., point clouds, images, graphs, that have multiple scales.
71
75
  We provide some *nice* pictures in the [documentation](https://davidlapous.github.io/multipers/index.html).
72
76
  A non-exhaustive list of features can be found in the **Features** section.
73
77
 
74
- This library is available [on PyPI](https://pypi.org/project/multipers/) for (reasonably up to date) Linux, macOS and Windows, via
78
+ This library is available on pip and conda-forge for (reasonably up to date) Linux, macOS and Windows, via
75
79
  ```sh
76
80
  pip install multipers
77
81
  ```
82
+ or
83
+ ```sh
84
+ conda install multipers -c conda-forge
85
+ ```
78
86
 
79
87
  Windows support is experimental, and some core dependencies are not available on Windows.
80
88
  We hence recommend Windows user to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/).
@@ -95,6 +103,7 @@ This library features a bunch of different functions and helpers. See below for
95
103
  - [x] [[Chunk Reduction for Multi-Parameter Persistent Homology, SOCG2019]](https://doi.org/10.4230/LIPIcs.SoCG.2019.37) Multi-filtration preprocessing algorithm for homology computations.
96
104
  - [x] [[Computing Minimal Presentations and Bigraded Betti Numbers of 2-Parameter Persistent Homology, JAAG]](https://doi.org/10.1137/20M1388425) Minimal presentation of multiparameter persistence modules, using [mpfree](https://bitbucket.org/mkerber/mpfree/src/master/). Hilbert, Rank Decomposition Signed Measures, and MMA decompositions can be computed using the mpfree backend.
97
105
  - [x] [[Delaunay Bifiltrations of Functions on Point Clouds, SODA2024]](https://epubs.siam.org/doi/10.1137/1.9781611977912.173) Provides an alternative to function rips bifiltrations, using Delaunay complexes. Very good alternative to Rips-Density like bifiltrations.
106
+ - [x] [[Delaunay Core Bifiltration]](https://arxiv.org/abs/2405.01214) Bifiltration for point clouds, taking into account the density. Similar to Rips-Density.
98
107
  - [x] [[Rivet]](https://github.com/rivetTDA/rivet) Interactive two parameter persistence
99
108
  - [x] [[Kernel Operations on the GPU, with Autodiff, without Memory Overflows, JMLR]](http://jmlr.org/papers/v22/20-275.html) Although not linked, at first glance, to persistence in any way, this library allows computing blazingly fast signed measures convolutions (and more!) with custom kernels.
100
109
  - [ ] [Backend only] [[Projected distances for multi-parameter persistence modules]](https://arxiv.org/abs/2206.08818) Provides a strategy to estimate the convolution distance between multiparameter persistence module using projected barcodes. Implementation is a WIP.
@@ -103,11 +112,12 @@ This library features a bunch of different functions and helpers. See below for
103
112
  If I missed something, or you want to add something, feel free to open an issue.
104
113
 
105
114
  ## Authors
106
- [David Loiseaux](https://www-sop.inria.fr/members/David.Loiseaux/index.html),<br>
115
+ [David Loiseaux](https://davidlapous.github.io/),<br>
107
116
  [Hannah Schreiber](https://github.com/hschreiber) (Persistence backend code),<br>
108
117
  [Luis Scoccola](https://luisscoccola.com/)
109
118
  (Möbius inversion in python, degree-rips using [persistable](https://github.com/LuisScoccola/persistable) and [RIVET](https://github.com/rivetTDA/rivet/)),<br>
110
- [Mathieu Carrière](https://www-sop.inria.fr/members/Mathieu.Carriere/) (Sliced Wasserstein)<br>
119
+ [Mathieu Carrière](https://www-sop.inria.fr/members/Mathieu.Carriere/) (Sliced Wasserstein),<br>
120
+ [Odin Hoff Gardå](https://odinhg.github.io/) (Delaunay Core bifiltration).<br>
111
121
 
112
122
  ## Citation
113
123
  Please cite this library when using it in scientific publications;
@@ -130,5 +140,5 @@ you can use the following journal bibtex entry
130
140
  ```
131
141
  ## Contributions
132
142
  Feel free to contribute, report a bug on a pipeline, or ask for documentation by opening an issue.<br>
133
- In particular, if you have a nice example or application that is not taken care in the documentation (see the ./docs/notebooks/ folder), please contact me to add it there.
143
+ In particular, if you have a nice example or application that is not taken care in the documentation (see the `./docs/notebooks/` folder), please contact me to add it there.
134
144
 
@@ -0,0 +1,182 @@
1
+ multipers/__init__.py,sha256=y4BfbXAY2M2yZYob758IegZHwIbRgmKrph6lwe6WR6Q,733
2
+ multipers/_signed_measure_meta.py,sha256=kS_AhjZrk5hMXN9me0EJy6c29LmTlufo_DnaIf0neRQ,16663
3
+ multipers/_slicer_meta.py,sha256=mjIGR-B6HnQLSiMowEQ8EWQkD_IF3bBnDVzvwrZugZ4,7203
4
+ multipers/distances.py,sha256=am3_SqSkGB9N59grxb_EZt-KYqqKln0WiR4Wia6N_LA,6067
5
+ multipers/filtration_conversions.pxd,sha256=Je7a3F4zS1PQn6Ul1YCXgA6p39X2FouStru-XtN-aOw,10800
6
+ multipers/filtration_conversions.pxd.tp,sha256=_9tUvZVUA7J_RUM3q7BxY48fYgDHCUA7Xhy4nBfLLs0,3309
7
+ multipers/filtrations.pxd,sha256=08ONkZNCjs8Nme8lcD9myPz-K662sA-EDpSwzgC2_ts,9461
8
+ multipers/function_rips.cp310-win_amd64.pyd,sha256=UnI0zfUD7t-0IN3aAmTSnpP48VCEPAMvqVyrEHLI9W8,344576
9
+ multipers/function_rips.pyx,sha256=j5NjbK3YrAv_2s8YHB1JB0k6m9NC7RQCSFlJe-w_kgE,5252
10
+ multipers/grids.cp310-win_amd64.pyd,sha256=nCvY11ThFvYlOfeyOq9RZHuLpLqJN_nWdaoqEb3NBZk,501248
11
+ multipers/grids.pyx,sha256=uYVue79CiUK1yiL3kHI9h9lx3w1atZZx1KmWE7lYGp0,13733
12
+ multipers/io.cp310-win_amd64.pyd,sha256=RfPRuYn_-VaBFxyEpX-WN2eW4WzWgx09N-PTkbskzyc,260608
13
+ multipers/io.pyx,sha256=cKCmkaurybQ_a1evQFTtONIjAUGYwhx8KhYdPkDhjvE,25482
14
+ multipers/mma_structures.cp310-win_amd64.pyd,sha256=gGpWjX5cqVcYPiiv-eM3zYoSW5em4pUrPqRZBzRtmp4,1321472
15
+ multipers/mma_structures.pxd,sha256=u-t_xEsLUYwLFt1v3TzKN8AcrP1V02pQRpYDw7PLpYw,6499
16
+ multipers/mma_structures.pyx,sha256=RZWdsKBtB2cHDH9-jwUtDMPd968eCmp921Wu6BZZgow,108578
17
+ multipers/mma_structures.pyx.tp,sha256=CW67g5yfG5UETdTfr-7PiTwDRkA-JteyJaPyeOrr970,42060
18
+ multipers/multiparameter_edge_collapse.py,sha256=MFt0eKQQSv2354omeIqOmzASYTKIMsYdxZHFZauQr8g,1229
19
+ multipers/multiparameter_module_approximation.cp310-win_amd64.pyd,sha256=At4fUXmfQ__aT4D_M7qVM27lfV6GVN8AA8kcB6lvUCI,474112
20
+ multipers/multiparameter_module_approximation.pyx,sha256=RAsN76_FNMtUUVqbTMU-Tpf5G8_OeZn_gslP7IWODiI,8611
21
+ multipers/pickle.py,sha256=YYVt4iHiD16E1x5Yn_4mX6P5P8rKi56pNGjJo5IzPhc,2579
22
+ multipers/plots.py,sha256=_h4-fVYIu5TXkjmeQypMxthkRhl2be_hQvc8Pg1hnlc,11136
23
+ multipers/point_measure.cp310-win_amd64.pyd,sha256=zxrm7bnS8TAX5zSjK5Dq37c_pLgtJEVZUPlJzif1bUE,614400
24
+ multipers/point_measure.pyx,sha256=7IjakgrAmGVv57MBb8BEHRwsSGxJgxTu_Iar6zOW2_A,11951
25
+ multipers/simplex_tree_multi.cp310-win_amd64.pyd,sha256=_EgneZ8OwxuBvN36pdYUFGjtFUgrSknUCneCVkY1mqE,3619328
26
+ multipers/simplex_tree_multi.pxd,sha256=B7beQwO_qgbxF_xK55B0ics3cW_REktm7cXY2Vl3NqY,6559
27
+ multipers/simplex_tree_multi.pyx,sha256=mQ51gpmRBWR-0VhWqA0A3yI4TXmD53w7Omn-IpNF4VM,481685
28
+ multipers/simplex_tree_multi.pyx.tp,sha256=xHFikEmTFtTRyZqiF94Ma81f7Y_NyD7NHi1PflrOu8Q,86960
29
+ multipers/slicer.cp310-win_amd64.pyd,sha256=JpA0I0a8pKRgWqTXeu9GAUNc0YUF5vw-aq4pJeGiarc,8731136
30
+ multipers/slicer.pxd,sha256=7IK4Bf4kP04UZOZj5iCzY3Z60HamMHiMJcWEXEc3_8k,160250
31
+ multipers/slicer.pxd.tp,sha256=WdNAzZaxxfwro8puyZkZMjZl4ugsYpjBdDKWgNallNA,9457
32
+ multipers/slicer.pyx,sha256=FXFZhHS2oEpMxKTPAas59i0nePHniy5oLDomaru3L7A,714555
33
+ multipers/slicer.pyx.tp,sha256=WiWOwZ5-R510ftEvCaNEQ6ekNSN_S9dRiIDbTkGXCYA,37913
34
+ multipers/tbb12.dll,sha256=jutngDNBx2TW92tVYsfuHD8Sre0oO-rh4iK2edc1SGA,337920
35
+ multipers/tbbbind_2_5.dll,sha256=-ywrB_hirPeygmtj_VhROzkQcw70G94x4JTgBdkUaUQ,23040
36
+ multipers/tbbmalloc.dll,sha256=4uOK-Y2zeptYOLEh1bu-Yz8htiG4gtF_agyanMJO-tA,112640
37
+ multipers/tbbmalloc_proxy.dll,sha256=iWWmLmm2bxDnyPQUry1kvhkgQspLyLmIjYD-k4Z9Hk0,31232
38
+ multipers/tensor.pxd,sha256=MSmaMU0sOP9CHLmg4dym7nOGaI1S4cOdM01TQ9flI54,417
39
+ multipers/test.pyx,sha256=-g7WU-jKrZK8H0c-6eAPsfrApjvTKrUoswVYFu8LoV4,1798
40
+ multipers/data/MOL2.py,sha256=nLZHy2OSFN9Z2uJKsbqWOEG2R7G-uH6dCLHG48UjvR4,15428
41
+ multipers/data/UCR.py,sha256=PuT8l3i26y0goBzIESwdgJAe6YFCyDiWSoxECcP5rhs,798
42
+ multipers/data/__init__.py,sha256=w7uUe4LOHbdbKU4R8MNs7em65wZJN0v5ukoG1otFanQ,24
43
+ multipers/data/graphs.py,sha256=wef36QXuzi2EMQJi6W_sEB3JnShfSAbfylP6-2rLSUA,16346
44
+ multipers/data/immuno_regions.py,sha256=BNN81DOwdu6sJTkaSeziAYyx0jd0kuZZB5Se0Fo95vA,903
45
+ multipers/data/minimal_presentation_to_st_bf.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ multipers/data/pytorch2simplextree.py,sha256=cvOJTUleK_qEbcpygRD77GuQl_0qDsSjjD6e6UFUDD0,3048
47
+ multipers/data/shape3d.py,sha256=AE-vvjKrhKxOwMo-lurUsFqqLjIg5obo-RTbRZF_5Mk,3893
48
+ multipers/data/synthetic.py,sha256=RvLWIBE5j99kJSt-D7cnPGI3c7skD4p8_qofJbMIXM0,3078
49
+ multipers/filtrations/__init__.py,sha256=Lg0EHe2cxT32UQAg0kr_Vpua-xPBZxGol8VIfz8UwWk,319
50
+ multipers/filtrations/density.py,sha256=p-p-qSmrwVvolXkAZrf35XIus6mN-dF1CHNuEd7JGGQ,19272
51
+ multipers/filtrations/filtrations.py,sha256=GY_JIkVfRwP71-BN79ac0Pn4tpniLtIkOcqCJCG-23w,10899
52
+ multipers/gudhi/Persistence_slices_interface.h,sha256=QnUeCCKi9K8CfqI3W5i3Ra1Jy2Z1IIivr3MIpnBsnYU,6562
53
+ multipers/gudhi/Simplex_tree_interface.h,sha256=kkq8pE3jKGLY1dK7sYpb_uERHaWGurrRXfaw_ygs-mY,10217
54
+ multipers/gudhi/Simplex_tree_multi_interface.h,sha256=kDardleivWhlkEC9HSPDM75WPbnEW3IUur_BEiWeJ4U,23529
55
+ multipers/gudhi/cubical_to_boundary.h,sha256=ELRnPe8czj9XlGNb2fLszu7EzU6itgS2vq03eVP31aU,1955
56
+ multipers/gudhi/mma_interface_coh.h,sha256=JljD7lVwxxywxjgbK3PU4FZhLK9XUuEXuWOPDQvURWI,8433
57
+ multipers/gudhi/mma_interface_h0.h,sha256=puuKUcEndfv6012bSf1r0KVIJTvcsH2FOKLYc5oLwSg,7596
58
+ multipers/gudhi/mma_interface_matrix.h,sha256=SHCN4DDS5W7FQ0v07giolsisTzBtA3R1nfE4Spo9i6A,11080
59
+ multipers/gudhi/naive_merge_tree.h,sha256=iYrizGLZgCm_Dr-eNp4avfHLnXtyzlEslpzME4XPfek,18854
60
+ multipers/gudhi/scc_io.h,sha256=KB-j1CQGbJ9VLeh5VUJN9GbhxDTwbEv0Q3pQzYLjzkY,11507
61
+ multipers/gudhi/truc.h,sha256=OZsiGGOH7iLgGz4VHiUPTkeCwvo2gHwbDyLJ0BbOxDI,37695
62
+ multipers/gudhi/gudhi/Bitmap_cubical_complex.h,sha256=EdKBo5TQM8tCvap6_Lw2w-2kDOx4p10tQRXqKYcUs28,16159
63
+ multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h,sha256=62rgpvCQhAA7hpKSxRAKDO9uLZK2txxjf953kQA56eM,44544
64
+ multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h,sha256=TJTN_RWANVEl5A4NeZYAfVzwLiP474J1vl16Pn1QqJE,25829
65
+ multipers/gudhi/gudhi/Debug_utils.h,sha256=aps-ljywN_mfNSVmx2LB1lMJ7-RrzfMr5LScXBTFZ5M,1590
66
+ multipers/gudhi/gudhi/Flag_complex_edge_collapser.h,sha256=DQ_wyOG3z09jX6sq_79oTxZM_Z5Hi_zIZ_LL1EFMLAw,13247
67
+ multipers/gudhi/gudhi/Matrix.h,sha256=bxCmhdWbxATmrw36GgKkIgZZM9xkCZPz4cJNNDG8qoI,115997
68
+ multipers/gudhi/gudhi/Multi_critical_filtration.h,sha256=RDbMBMJtccxX1EtM59bVgL7uucjUUvFZhYb23kphpV8,42589
69
+ multipers/gudhi/gudhi/Off_reader.h,sha256=Owwc7wgQzOgq4URfA3V5c9v_8IY6ODKXeZefjFk8Kok,4871
70
+ multipers/gudhi/gudhi/One_critical_filtration.h,sha256=1dnE5fzNsfFgT4HqkrDFxm-AeOgBcQImHkVDye_TqA8,53398
71
+ multipers/gudhi/gudhi/Persistent_cohomology.h,sha256=UEy1ae9YBamWICDwA120lolIYlt14ExZjr7VFJZaCzI,30725
72
+ multipers/gudhi/gudhi/Points_off_io.h,sha256=kdLw8d8c-zwLl-l5W7BE4lhTLr40FV4gkGo33sU-tbs,5226
73
+ multipers/gudhi/gudhi/Simple_object_pool.h,sha256=Dc_bn6g5rCMg_wZtKNzueJPKfFh1SI-QO-HKAI_74jM,1809
74
+ multipers/gudhi/gudhi/Simplex_tree.h,sha256=9ZKe20WVAH1bDjjVIbWm7LafPywOUtpk9l7_J9aw4r8,127544
75
+ multipers/gudhi/gudhi/Simplex_tree_multi.h,sha256=pKbSPkpwOFAhUDeUJXDhBrC9Sri7BTSoTrUg1Pbr9uY,6446
76
+ multipers/gudhi/gudhi/distance_functions.h,sha256=r9AZnpO0--xqrAT_XSNPdhy_i3J1iL5qfRISMyF9g34,1901
77
+ multipers/gudhi/gudhi/graph_simplicial_complex.h,sha256=Wuy5qOkx592qKsweovOaD2TwW4k7iu8ro3o5F-VnThI,3772
78
+ multipers/gudhi/gudhi/persistence_interval.h,sha256=tHigFcO1w0djVr5r_2iSL69bdFPz8ahZLxCu_FyWu0Q,10869
79
+ multipers/gudhi/gudhi/persistence_matrix_options.h,sha256=hYGbuSL-BCiLgw7zgvmwxEazNm-9Jdtm2ZWLFbawgls,6543
80
+ multipers/gudhi/gudhi/reader_utils.h,sha256=2JFkAZtqptxkUDwIA78GG-GYktzjrNlTIFoUNdsYIxM,11568
81
+ multipers/gudhi/gudhi/Fields/Multi_field.h,sha256=Ku3D2xNgYlZibQhjCUwM8uZNvTm8UpuGKMK1G6vt18Y,15953
82
+ multipers/gudhi/gudhi/Fields/Multi_field_operators.h,sha256=0sNrwDAUZICFtlk_1u1cAIiL27TwXgG2Dqy_QL8BfkM,15995
83
+ multipers/gudhi/gudhi/Fields/Multi_field_shared.h,sha256=D19HU02Tbg9yxri8nlLa8uhNzZbstB3V4MnVkwrbkP4,15266
84
+ multipers/gudhi/gudhi/Fields/Multi_field_small.h,sha256=I9ZvSG3Zq0zicmjU_Ai4KIbThHv4XFsbZ7eHn4MghEY,18872
85
+ multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h,sha256=-nTJTnYlM8wMcNqm7-Q_C1RiZNIujnmRXSfeUT5QgCY,18465
86
+ multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h,sha256=nv8XOHznngmzF1T8TTQln3Nz-QMrZPce47UHsjuGyOw,19418
87
+ multipers/gudhi/gudhi/Fields/Z2_field.h,sha256=qboccGW5OuIOc282JSLb4RMEPB8gCYit0W91A9vxiMI,11041
88
+ multipers/gudhi/gudhi/Fields/Z2_field_operators.h,sha256=8xfZf6_yLzM8qEexfAjoj2teAjTEpKOIIqohH5ffZTA,14211
89
+ multipers/gudhi/gudhi/Fields/Zp_field.h,sha256=gy8DafW6z8m4yjLCwonBwEpMnsWprvZU7xOyscZ_Aw0,13156
90
+ multipers/gudhi/gudhi/Fields/Zp_field_operators.h,sha256=xFVPchEYpGs5snzf5iXUUbFgXGvyrHroOd-t6fo3bgg,13506
91
+ multipers/gudhi/gudhi/Fields/Zp_field_shared.h,sha256=XfEw_DmUKpffcoQlmCphutipzQwgIaV4DPot0dWhM9s,14032
92
+ multipers/gudhi/gudhi/Multi_persistence/Box.h,sha256=Xbga3BoM51WVNJNmx57oJ-GAVtTxlIfOQI34yOuwNbA,5874
93
+ multipers/gudhi/gudhi/Multi_persistence/Line.h,sha256=SVVebEUBf0MMxTn48iNBVf3LO7bVOuaR5UQOH0OWUHA,10149
94
+ multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h,sha256=rTTtRJa9cu37oXsX9qPwWZkI4y5-NKuphBow1B3VtH8,32784
95
+ multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h,sha256=-i3IoKX-BGdU1LmseLGJW4K9_teUkdEuMgAJQQlLexk,29830
96
+ multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h,sha256=k-sZtAlKxTT9LZ_glfRJgKADV9NLItGAk0A9skrJmYc,36102
97
+ multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h,sha256=-bBMu8dvuZ0nkCsoz0Ur07Cu3Ic_SS7o-Yxp0d4v3m4,61526
98
+ multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h,sha256=JezmS6JX7h__MeNrMc06lN2bmrGoS_kn2NoPN89hwOY,55404
99
+ multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h,sha256=747kscocPiznAoegqWHfA6JfwyRyxRX4uWZiP8mez00,43537
100
+ multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h,sha256=GV8F68AoTqtKV_HeQ1tZd_L0ZFMA-4Y6W1JWb6g3b_w,39661
101
+ multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h,sha256=usE3EqYsYaRf0FizQ_j_bF73Vk5B68ldX5GeSn1bK6Y,8602
102
+ multipers/gudhi/gudhi/Persistence_matrix/base_swap.h,sha256=ebHV32i18JjOlWSDQBCkTdhlRMLmAkIsluxSzfiT5hE,7258
103
+ multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h,sha256=-XInkObR0afjZL0RVDNVVEQHvHb8YL1Dy7y-M2gQwP0,1679
104
+ multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h,sha256=eZiKEF6zxs-XwjDQSwZe_J5FVqc6IiGov8mvd432tk0,1644
105
+ multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h,sha256=dn7MayXXYHtesAaAdGWcBOzYjbSWCVWYigGk1b4hvVY,4076
106
+ multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h,sha256=suWnK1K-5V9Pl_TLI6PQq2WGGF8ab3Nj3W2h6OyEtLg,7142
107
+ multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h,sha256=2I0FPNTgfJmy48QU1C-IHqOFPkMAfMXzN_in8_-NNQk,23387
108
+ multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h,sha256=Awu_hijrr-wk6rc4bupfVZSQgI8VNZbmy4j1_da8L-o,5989
109
+ multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h,sha256=Q_s_g032cL1DqizuPnDGt05fOknZbopRSOa3TEn26HE,5492
110
+ multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h,sha256=2_0cVl7t06SzNfvPs2NYLq8Ou42MN7BOfRnfU9c2a2c,5356
111
+ multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h,sha256=Bg4Z8vZFG-3RYn3YWy6DhlH1nrXGuLgYUdaKRf5FeOk,13493
112
+ multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h,sha256=8B3T9HeCnqYZ1dGsebASMKv1ozkKqzxEPzdWoSq1afs,21006
113
+ multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h,sha256=6B8OYMx84OM4hYLo3fQajVLpJtZAtg265X0_2VUrL1w,3462
114
+ multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h,sha256=IcThu4W9enezz8SOb9cODeIFLvdScw3vXs0CHUJ2X7c,5490
115
+ multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h,sha256=sH6Rq4BnyWR8vwq3aLpnRdX_OZPMEuRinVoW8FD3Zi0,3178
116
+ multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h,sha256=FU5IbYxnNBfkZZTNwGCg043EF0VETsb69fTQptrhrI0,9098
117
+ multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h,sha256=e0nJWpg6ZsRsb-LEfji_kzOcE2k_Hp-mF86oPdCPgdw,10058
118
+ multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h,sha256=YVFgVN2dxJLfTaYrXdt03oaKPEQoq1taey048OMPPEI,40454
119
+ multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h,sha256=T8l-C9vj7e-wiIPy7hVX71GpdVBinqVtR0etZ2Ffc3U,36374
120
+ multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h,sha256=iobpvFkLA6b066RN8yV8QcwsM9RrrzFpSu2r6KxN8uo,36234
121
+ multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h,sha256=tfp06z949Nqr_qvQhL8iBJ55anPMXbagw5-k5bw5GFU,37180
122
+ multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h,sha256=U50XP5IvFGO33TfY6VZwL8SgkBzmIOoTC-yvM24ZTqU,41671
123
+ multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h,sha256=3d1ZA-c7Mb_pm_hkT85Q9cAdvhvligtpqzuPqpPrLWo,6012
124
+ multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h,sha256=qY9EBZ9Gx1Z118ULDPf4tC6QAnnReIsDkONlYHWY36U,34584
125
+ multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h,sha256=TINBMl_t9DUm5RzSiPqwK5mpt48hNSYoHtT2-7K7mow,41738
126
+ multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h,sha256=AOiewRpMc_Eyx_6zkEfqoLYNVWn2aTLyIT2WMpHTims,38260
127
+ multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h,sha256=rpUdcd2O6choZqjrTJMO_569-K1H5gf9DlKpYS2E2io,48090
128
+ multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h,sha256=ui3kgxOgWZBQbIDe5ki_TocRX_0Ao_7TDQIdBIZc1XI,3399
129
+ multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h,sha256=S-jpKT5KlZ1X--LfNGTyfmoULNpu29hZUz9_lttxEYY,5678
130
+ multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h,sha256=0JQzCsQGLc3uiQuC_2a8W9-2drqv2gLgazP4wbeJAFk,3967
131
+ multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h,sha256=jWWhKjtJ8o4W_-Qe5Zj1J5u71M3q7gr4TuhAMqjZGRg,15115
132
+ multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h,sha256=XuIAdwbEFOCrMCZBie-ev8r_Ezf_PcaRMQIaro51mvE,2710
133
+ multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h,sha256=025PQPFTqHet0IGY6U87dDlQIGItnt-mK35QWvcbv_c,3028
134
+ multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h,sha256=Lqe8CKNwfzJoR6AqEUSuLP_cpHrnExP_TQp_zf4Jark,11174
135
+ multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h,sha256=HDs4C5QU92Nmbw025_PxgI3GblcXy_C7N1V2bFsSgz0,2404
136
+ multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h,sha256=qadCFWwXgyw53icvnYktqqCGPa1TIwm2fNFNRM3NVwY,720
137
+ multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h,sha256=dzQfXvRCgObVLRU0hpieqOJ0gQmagerUmfkuSL1RCn0,2076
138
+ multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h,sha256=h0rr_PiwPeH7GyG3qLEiluA6z1d6Qrbfo64XFM0coLE,5536
139
+ multipers/ml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
+ multipers/ml/accuracies.py,sha256=4KfH7EB6-3KjXhOcleHcCP_2OOA6mC9v7DI7MSA2PnU,2940
141
+ multipers/ml/invariants_with_persistable.py,sha256=HL0_IIrcJdAmCIqcyHPg0PNLle_pa2esnGQJsK2hnHc,2261
142
+ multipers/ml/kernels.py,sha256=XWfvKY68-c9E-MpRzdNqGzGD6K24Aizx95TkiSeAtIY,6175
143
+ multipers/ml/mma.py,sha256=jW-kUQ7PuqWHrEhEwLGaYn64Rt2lgN45tFla0T4GGQc,23962
144
+ multipers/ml/one.py,sha256=np5jM8gywm65TsK1yeZ1BDWqP-Ym-7hz4brTXI_0imk,20119
145
+ multipers/ml/point_clouds.py,sha256=nTkSjSzQy6S10-sZ0uwBp_Fs2EIWleB7yHncK2b_xLg,13770
146
+ multipers/ml/signed_measures.py,sha256=5uZf00gLqaOkWZ13rXW5H32bicnHm9-BedBYY7hayA0,58206
147
+ multipers/ml/sliced_wasserstein.py,sha256=jgq4ND3EWwwJBopqRvfJLsoOptiMHjS3zEAENBmPJDc,18644
148
+ multipers/ml/tools.py,sha256=DOPcqmvZP2bA7M08GrwccdebwDq1HEwYdhNRGT7eZMI,3453
149
+ multipers/multi_parameter_rank_invariant/diff_helpers.h,sha256=wMCOhAewWd6-lulLND0y8M0MZoru6zn_8J3qfXDjLds,3477
150
+ multipers/multi_parameter_rank_invariant/euler_characteristic.h,sha256=gLzz-VCY2xPW11Fmi1kG_On33h7EHFmW1TdsVWdzovA,3295
151
+ multipers/multi_parameter_rank_invariant/function_rips.h,sha256=aUox99Y4X5kRgQ-nfpDApX2VC5iV0NJMyLBV-C7glo0,13505
152
+ multipers/multi_parameter_rank_invariant/hilbert_function.h,sha256=S_LRkNSU_bjjcPRS1pWpVHWOLMFQIAYa9dbAhwz0W8c,36412
153
+ multipers/multi_parameter_rank_invariant/persistence_slices.h,sha256=oVMsNkn_VB5lQ_2qsKw5ydPoHnMuGbtvrIN_ga7XnGQ,5986
154
+ multipers/multi_parameter_rank_invariant/rank_invariant.h,sha256=-W_ai4I_wkAIodU3Ubgvuc5cD_VLJzB4479EsVSynsM,16371
155
+ multipers/multiparameter_module_approximation/approximation.h,sha256=qjgFEjd8jjzxoOMkiYWGHvJN6-ZOqz0aSuXwIb6s3sI,95440
156
+ multipers/multiparameter_module_approximation/combinatory.h,sha256=Ck-VKQ56wsXCgQvIbpfTnBOweSBRm4rnChLfHf6JWlc,3605
157
+ multipers/multiparameter_module_approximation/debug.h,sha256=yy7miaqw-Lj8u1yMB9HmtJL02abf3K6JlqS6LbkUVfI,2692
158
+ multipers/multiparameter_module_approximation/euler_curves.h,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ multipers/multiparameter_module_approximation/format_python-cpp.h,sha256=wi0fiN6c5qtX1WJBC5M_kunRcuU3mCN7H0sUiKzQoGg,10708
160
+ multipers/multiparameter_module_approximation/heap_column.h,sha256=iiVNmCeiARGWsSmxOyvYlakBoA3CYTUrH-ZjEyt_a8g,5882
161
+ multipers/multiparameter_module_approximation/images.h,sha256=wXMYU3Bz991RC2LZ0QlQ880tNyOKdiUHsmn0c4u56kg,2215
162
+ multipers/multiparameter_module_approximation/list_column.h,sha256=kYCK_Jw6T-BJrFhFoGt8NAr1rIBqhYSZVQ8jnUS5Y8w,4153
163
+ multipers/multiparameter_module_approximation/list_column_2.h,sha256=BztipH-96RJlK73op5yb6BqqoOwfO_aATjZrPzSR_lc,5989
164
+ multipers/multiparameter_module_approximation/ru_matrix.h,sha256=7YBAEZGhEMye7_st5sG6Ll9MsC0nKQpGbSsRmrwh6FQ,10970
165
+ multipers/multiparameter_module_approximation/set_column.h,sha256=pfDKCaNkYhKuTbaEag1-GbnfR4x5wMbFox9xPIxpZJQ,3024
166
+ multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h,sha256=FkettGH77x9Nog7556Eq3uWo2eDjDOJksGBGfxR5BQ8,1187
167
+ multipers/multiparameter_module_approximation/unordered_set_column.h,sha256=Pd0q_2e2BVuzlQNx8BD-XFS6OxZ66Km4kU4XF8r1s3A,4563
168
+ multipers/multiparameter_module_approximation/utilities.h,sha256=lvbZUaOP6MrMhj1cJZpIsKqgjk09SKaYpnmdlM89Q_k,15034
169
+ multipers/multiparameter_module_approximation/vector_column.h,sha256=P4HSGc-w4kdx9LCQu9Uw4u4HT7R1_vL4y7K1aSobky0,5696
170
+ multipers/multiparameter_module_approximation/vector_matrix.h,sha256=0-iIA-Xk_Bz2kBYXM3-SgBzyM0QQ7RqV1WgTbGe-qXM,10378
171
+ multipers/multiparameter_module_approximation/vineyards.h,sha256=6wN_k4CFO1BCVoT8Cc60Wi__v4C2bvFec7rpq-GPb4w,14694
172
+ multipers/multiparameter_module_approximation/vineyards_trajectories.h,sha256=ZZ4E0gmmuHNyUD_rKioISrlWhHNLW_dhlsCWGvzHW2o,25292
173
+ multipers/tensor/tensor.h,sha256=x2WknRJ_GzqYkBYnkJdVfjNJ197moRLFMy7oBmN1ITA,25261
174
+ multipers/tests/__init__.py,sha256=19BXYlQxgBzj7OpMP6v6JYNZZi2y9afvD1Wvodwcb1E,1656
175
+ multipers/torch/__init__.py,sha256=OLxIiZ389uCqehpUxBPUI_x1SYu531onc4tiTscAuIw,27
176
+ multipers/torch/diff_grids.py,sha256=8d0UhiWeMrb471nMKkwrRgGQO_u2kCtRjYYn5I-BFkQ,6745
177
+ multipers/torch/rips_density.py,sha256=H-kmSzY8hXhmVn15Oltc71DHs1IUHg5oPRgNyWW8L4Q,11706
178
+ multipers-2.3.1.dist-info/LICENSE,sha256=UsQRnvlo_9wpQS9DNt52GEraERHwK2GIRwuqr2Yv5JI,1071
179
+ multipers-2.3.1.dist-info/METADATA,sha256=gN2bFiv-a8tAkXkhfrX95eZAbNSaZtMEhGtpNsgYrA0,10945
180
+ multipers-2.3.1.dist-info/WHEEL,sha256=gMSPBFjPynvgFG2ofmeEoM1Uf9iH_GsJd2JBy-bxpiQ,101
181
+ multipers-2.3.1.dist-info/top_level.txt,sha256=L9e0AGmhRzrNw9FpuUx-zlqi5NcBOmrI9wYY8kYWr8A,10
182
+ multipers-2.3.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.8.2)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-win_amd64
5
5
 
@@ -1,73 +0,0 @@
1
- import gudhi as gd
2
- import numpy as np
3
-
4
- import multipers as mp
5
-
6
-
7
-
8
- def test_h1_rips_density():
9
- num_pts = 100
10
- dim = 2
11
- pts = np.random.uniform(size=(num_pts, dim))
12
- weights = np.random.uniform(size=num_pts)
13
- st = gd.RipsComplex(points=pts).create_simplex_tree()
14
- st = mp.SimplexTreeMulti(st, num_parameters=2)
15
- st.fill_lowerstar(weights, parameter=1)
16
- st.collapse_edges(num=100)
17
- st.expansion(2)
18
- # F=st.get_filtration_grid()
19
- # st.grid_squeeze(F, coordinate_values=True)
20
- (sm,) = mp.signed_measure(st, degree=1, plot=True, mass_default=None)
21
- pts, weights = sm
22
- sm_indices, unmappable_points = st.pts_to_indices(pts, simplices_dimensions=[1, 0])
23
- assert len(unmappable_points) == 0, "Found unmappable points in Rips edges ?"
24
- filtration_values = np.array([f for _, f in st.get_simplices()])
25
- reconstructed_measure = np.asarray(
26
- [
27
- [filtration_values[i][parameter] for parameter, i in enumerate(indices)]
28
- for indices in sm_indices
29
- ]
30
- )
31
- assert np.array_equal(
32
- reconstructed_measure, pts
33
- ), "Reconstructed measure is not equal to original measure ?"
34
-
35
-
36
- def test_h0_rips_density():
37
- num_pts = 100
38
- dim = 2
39
- pts = np.random.uniform(size=(num_pts, dim))
40
- weights = np.random.uniform(size=num_pts)
41
- st = gd.RipsComplex(points=pts).create_simplex_tree()
42
- st = mp.SimplexTreeMulti(st, num_parameters=2)
43
- st.fill_lowerstar(weights, parameter=1)
44
- st.collapse_edges(full=True)
45
- # F=st.get_filtration_grid()
46
- # st.grid_squeeze(F, coordinate_values=True)
47
- (sm,) = mp.signed_measure(st, degree=0, plot=True, mass_default=None)
48
- pts, weights = sm
49
- _, unmappable_points = st.pts_to_indices(pts, simplices_dimensions=[1, 0])
50
- assert (
51
- pts[unmappable_points[:, 0]][:, 0] == 0
52
- ).all(), "Unmapped points of H0 have to be the nodes of the rips."
53
-
54
-
55
- # def test_h1_rips_density_rank():
56
- # num_pts = 100
57
- # dim=2
58
- # pts = np.random.uniform(size=(num_pts,dim))
59
- # weights = np.random.uniform(size=num_pts)
60
- # st = gd.RipsComplex(points=pts).create_simplex_tree()
61
- # st = mp.SimplexTreeMulti(st, num_parameters=2)
62
- # st.fill_lowerstar(weights, parameter=1)
63
- # st.collapse_edges(full=True)
64
- # st.expansion(2)
65
- # # F=st.get_filtration_grid()
66
- # # st.grid_squeeze(F, coordinate_values=True)
67
- # sm, = mp.signed_measure(st, degree=1, plot=True, mass_default=None, invariant="rank_invariant", resolution=20, grid_strategy="quantile")
68
- # pts, weights = sm
69
- # sm_indices, unmappable_points = signed_measure_indices(st,pts, simplices_dimensions = [1,0])
70
- # assert len(unmappable_points) == 0, 'Found unmappable points in Rips edges ?'
71
- # filtration_values = np.array([f for _,f in st.get_simplices()])
72
- # reconstructed_measure = np.asarray([[filtration_values[i][parameter%2] for parameter,i in enumerate(indices)] for indices in sm_indices])
73
- # assert np.array_equal(reconstructed_measure, pts), 'Reconstructed measure is not equal to original measure ?'
@@ -1,82 +0,0 @@
1
- import numpy as np
2
-
3
- import multipers as mp
4
- from multipers import signed_measure
5
-
6
-
7
-
8
-
9
- # def test_1(): # TODO: test integrate_measure instead
10
- # st = mp.SimplexTreeMulti(num_parameters=3)
11
- # st.insert([0], [1, 0, 0])
12
- # st.insert([1], [0, 1, 0])
13
- # st.insert([2], [0, 0, 1])
14
- # st.insert([0, 1, 2], [2, 2, 2])
15
- # st.make_filtration_non_decreasing()
16
- # st = st.grid_squeeze(grid_strategy="exact")
17
- # assert np.array_equal(
18
- # hilbert_surface(st, degrees=[0])[1],
19
- # np.array(
20
- # [
21
- # [
22
- # [[0, 1, 1], [1, 2, 2], [1, 2, 2]],
23
- # [[1, 2, 2], [2, 3, 3], [2, 3, 3]],
24
- # [[1, 2, 2], [2, 3, 3], [2, 3, 1]],
25
- # ]
26
- # ]
27
- # ),
28
- # )
29
- # assert np.array_equal(hilbert_surface(st, degrees=[0])[1][0], euler_surface(st)[1])
30
-
31
-
32
- # def test_2():
33
- # st = mp.SimplexTreeMulti(num_parameters=4)
34
- # st.insert([0], [1, 0, 0, 0])
35
- # st.insert([1], [0, 1, 0, 0])
36
- # st.insert([2], [0, 0, 1, 0])
37
- # st.insert([3], [0, 0, 0, 1])
38
- # st.insert([0, 1, 2, 3], [2, 2, 2, 2])
39
- # st.make_filtration_non_decreasing()
40
- # # list(st.get_simplices())
41
- # st.grid_squeeze(grid_strategy="exact")
42
- # assert np.array_equal(
43
- # hilbert_surface(st, degrees=[0])[1][0], (euler_surface(st)[1])
44
- # )
45
-
46
-
47
- def test_3():
48
- st = mp.SimplexTreeMulti(num_parameters=2)
49
- st.insert([0, 1, 2], [1] * st.num_parameters)
50
- st.remove_maximal_simplex([0, 1, 2])
51
- st = st.grid_squeeze(grid_strategy="exact")
52
- ((a, b),) = mp.signed_measure(st, degrees=[1], mass_default=None)
53
- assert np.array_equal(a, [[1, 1]]) and np.array_equal(b, [1])
54
- assert mp.signed_measure(st, degrees=[1], mass_default="inf")[0][1].sum() == 0
55
-
56
-
57
- def test_4():
58
- st = mp.SimplexTreeMulti(num_parameters=3)
59
- st.insert([0], [1, 0, 0])
60
- st.insert([1], [0, 1, 0])
61
- st.insert([2], [0, 0, 1])
62
- st.insert([0, 1, 2], [2, 2, 2])
63
- st.make_filtration_non_decreasing()
64
- # list(st.get_simplices())
65
- st.grid_squeeze(grid_strategy="exact")
66
- assert signed_measure(st, degrees=[0], mass_default="inf")[0][1].sum() == 0
67
-
68
-
69
- def test_5():
70
- num_param = 7
71
- st = mp.SimplexTreeMulti(num_parameters=num_param)
72
- for i in range(num_param):
73
- f = np.zeros(num_param)
74
- f[i] = 1
75
- st.insert([i], f)
76
- st.insert(np.arange(num_param), [2] * num_param)
77
- assert not st.make_filtration_non_decreasing()
78
- st.grid_squeeze()
79
- (a, b), (c, d) = signed_measure(st, degrees=[0, 1])
80
- assert np.all(a[-1] == 2)
81
- assert np.sum(b) == 1 and b[-1] == -(num_param - 1)
82
- assert c.shape == (0, num_param)
@@ -1,83 +0,0 @@
1
- import numpy as np
2
- import pytest
3
-
4
- import multipers as mp
5
- import multipers.ml.mma as mma
6
- from multipers.tests import random_st
7
-
8
-
9
-
10
- def test_1():
11
- st = mp.SimplexTreeMulti(num_parameters=2)
12
- st.insert([0], [0, 1])
13
- st.insert([1], [1, 0])
14
- st.insert([0, 1], [1, 1])
15
- mma_pymodule = st.persistence_approximation()
16
- assert np.array_equal(mma_pymodule[0].get_birth_list(), [[0.0, 1.0], [1.0, 0.0]])
17
- assert np.array_equal(mma_pymodule[0].get_death_list(), [[np.inf, np.inf]])
18
-
19
-
20
- def test_img():
21
- simplextree = mp.SimplexTreeMulti(num_parameters=4)
22
- simplextree.insert([0], [1, 2, 3, 4])
23
- mod = simplextree.persistence_approximation(
24
- box=[[0, 0, 0, 0], [5, 5, 5, 5]], max_error=1.0
25
- )
26
- img = mod.representation(resolution=6, kernel="linear")
27
- assert np.isclose(img[0, 2, 3, 4, 5], 0.5)
28
- assert np.isclose(img[0, 1, 1, 1, 1], 0)
29
- assert np.isclose(img[0, 3, 4, 5, 5], 1)
30
-
31
-
32
- @pytest.mark.parametrize("n_jobs", [1, 2])
33
- @pytest.mark.parametrize("prune_degrees_above", [0, 1, None])
34
- def test_pipeline1(prune_degrees_above, n_jobs):
35
- args = locals()
36
- st = random_st(npts=50, max_dim=1).collapse_edges(-2)
37
- st.expansion(2)
38
- (truc1,) = mma.FilteredComplex2MMA(**args).fit_transform([[st]])[0]
39
- (truc2,) = mma.FilteredComplex2MMA(**args).fit_transform([[mp.Slicer(st)]])[0]
40
- box = st.filtration_bounds()
41
- st_copy = st.copy()
42
- if prune_degrees_above is not None:
43
- st_copy.prune_above_dimension(prune_degrees_above)
44
- output = mp.module_approximation(st_copy, box=box).representation(
45
- bandwidth=0.1, kernel="linear"
46
- )
47
- assert np.sum(output) > 0, "Invalid mma rpz"
48
- assert np.array_equal(
49
- truc1.representation(bandwidth=0.1, kernel="linear"),
50
- truc2.representation(bandwidth=0.1, kernel="linear"),
51
- ), "Slicer == Simplextree not satisfied"
52
- assert np.array_equal(truc1.representation(bandwidth=0.1, kernel="linear"), output)
53
-
54
- st = [random_st(npts=50).collapse_edges(-2, ignore_warning=True) for _ in range(5)]
55
- some_fited_pipeline = mma.FilteredComplex2MMA(**args).fit([st])
56
- truc1 = some_fited_pipeline.transform([st])
57
- truc2 = mma.FilteredComplex2MMA(**args).fit_transform(
58
- [[mp.Slicer(truc) for truc in st]]
59
- )
60
- for a, b in zip(truc1, truc2):
61
- assert np.array_equal(
62
- a[0].representation(bandwidth=0.01, kernel="linear"),
63
- b[0].representation(bandwidth=0.01, kernel="linear"),
64
- ), "Slicer == Simplextree not satisfied"
65
-
66
-
67
- @pytest.mark.parametrize("n_jobs", [1, 2])
68
- @pytest.mark.parametrize("prune_degrees_above", [1, None])
69
- @pytest.mark.parametrize("expand_dim", [None, 2, 3])
70
- def test_pipeline2(prune_degrees_above, n_jobs, expand_dim):
71
- args = locals()
72
- st = random_st(max_dim=1)
73
- st.collapse_edges(-2)
74
- truc = mma.FilteredComplex2MMA(**args).fit_transform([[st]])[0]
75
- box = st.filtration_bounds()
76
- st_copy = st.copy()
77
- # if prune_degrees_above is not None:
78
- # st_copy.prune_above_dimension(prune_degrees_above)
79
- if expand_dim is not None:
80
- st_copy.expansion(expand_dim)
81
-
82
- output = mp.module_approximation(st_copy, box=box).representation(bandwidth=0.01)
83
- assert np.array_equal(truc[0].representation(bandwidth=-0.01), output)
@@ -1,49 +0,0 @@
1
- import numpy as np
2
-
3
- import multipers as mp
4
- import pytest
5
- import platform
6
- np.random.seed(0)
7
-
8
-
9
- @pytest.mark.skipif(
10
- platform.system() == "Windows",
11
- reason="Detected windows. Pykeops is not compatible with windows yet. Skipping this ftm.",
12
- )
13
- def test_throw_test():
14
- import multipers.ml.point_clouds as mmp
15
- pts = np.array([[1, 1], [2, 2]], dtype=np.float32)
16
- st = mmp.PointCloud2FilteredComplex(masses=[0.1]).fit_transform([pts])[0][0]
17
- assert isinstance(st, mp.simplex_tree_multi.SimplexTreeMulti_type)
18
- st = mmp.PointCloud2FilteredComplex(bandwidths=[-0.1], complex="alpha").fit_transform(
19
- [pts]
20
- )[0][0]
21
- assert isinstance(st, mp.simplex_tree_multi.SimplexTreeMulti_type)
22
-
23
- st = mmp.PointCloud2FilteredComplex(masses=[0.1], complex="alpha", output_type="slicer_novine").fit_transform(
24
- [pts]
25
- )[0][0]
26
- assert isinstance(st, mp.slicer.Slicer_type)
27
- assert st.is_vine is False
28
-
29
- st = mmp.PointCloud2FilteredComplex(masses=[0.1], complex="alpha", output_type="slicer").fit_transform(
30
- [pts]
31
- )[0][0]
32
- assert isinstance(st, mp.slicer.Slicer_type)
33
- assert st.is_vine
34
-
35
- st1, st2 = mmp.PointCloud2FilteredComplex(bandwidths=[0.1], masses=[0.1]).fit_transform(
36
- [pts]
37
- )[0]
38
- assert isinstance(st1, mp.simplex_tree_multi.SimplexTreeMulti_type)
39
- assert isinstance(st2, mp.simplex_tree_multi.SimplexTreeMulti_type)
40
- ## ensures it doesn't throw
41
- assert isinstance(
42
- mp.module_approximation(st),
43
- mp.multiparameter_module_approximation.PyModule_type,
44
- )
45
- assert mp.signed_measure(st, degree=None, invariant="euler")[0][0].ndim == 2
46
- assert mp.signed_measure(st, degree=0, invariant="hilbert")[0][0].ndim == 2
47
- assert mp.signed_measure(st, degree=0, invariant="rank")[0][0].ndim == 2
48
- assert mp.signed_measure(st, degree=0, invariant="rank")[0][0].shape[1] == 4
49
-