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.
- multipers/__init__.py +33 -31
- multipers/_signed_measure_meta.py +430 -430
- multipers/_slicer_meta.py +211 -212
- multipers/data/MOL2.py +458 -458
- multipers/data/UCR.py +18 -18
- multipers/data/graphs.py +466 -466
- multipers/data/immuno_regions.py +27 -27
- multipers/data/pytorch2simplextree.py +90 -90
- multipers/data/shape3d.py +101 -101
- multipers/data/synthetic.py +113 -111
- multipers/distances.py +198 -198
- multipers/filtration_conversions.pxd.tp +84 -84
- multipers/filtrations/__init__.py +18 -0
- multipers/{ml/convolutions.py → filtrations/density.py} +563 -520
- multipers/filtrations/filtrations.py +289 -0
- multipers/filtrations.pxd +224 -224
- multipers/function_rips.cp310-win_amd64.pyd +0 -0
- multipers/function_rips.pyx +105 -105
- multipers/grids.cp310-win_amd64.pyd +0 -0
- multipers/grids.pyx +350 -350
- multipers/gudhi/Persistence_slices_interface.h +132 -132
- multipers/gudhi/Simplex_tree_interface.h +239 -245
- multipers/gudhi/Simplex_tree_multi_interface.h +516 -561
- multipers/gudhi/cubical_to_boundary.h +59 -59
- multipers/gudhi/gudhi/Bitmap_cubical_complex.h +450 -450
- multipers/gudhi/gudhi/Bitmap_cubical_complex_base.h +1070 -1070
- multipers/gudhi/gudhi/Bitmap_cubical_complex_periodic_boundary_conditions_base.h +579 -579
- multipers/gudhi/gudhi/Debug_utils.h +45 -45
- multipers/gudhi/gudhi/Fields/Multi_field.h +484 -484
- multipers/gudhi/gudhi/Fields/Multi_field_operators.h +455 -455
- multipers/gudhi/gudhi/Fields/Multi_field_shared.h +450 -450
- multipers/gudhi/gudhi/Fields/Multi_field_small.h +531 -531
- multipers/gudhi/gudhi/Fields/Multi_field_small_operators.h +507 -507
- multipers/gudhi/gudhi/Fields/Multi_field_small_shared.h +531 -531
- multipers/gudhi/gudhi/Fields/Z2_field.h +355 -355
- multipers/gudhi/gudhi/Fields/Z2_field_operators.h +376 -376
- multipers/gudhi/gudhi/Fields/Zp_field.h +420 -420
- multipers/gudhi/gudhi/Fields/Zp_field_operators.h +400 -400
- multipers/gudhi/gudhi/Fields/Zp_field_shared.h +418 -418
- multipers/gudhi/gudhi/Flag_complex_edge_collapser.h +337 -337
- multipers/gudhi/gudhi/Matrix.h +2107 -2107
- multipers/gudhi/gudhi/Multi_critical_filtration.h +1038 -1038
- multipers/gudhi/gudhi/Multi_persistence/Box.h +171 -171
- multipers/gudhi/gudhi/Multi_persistence/Line.h +282 -282
- multipers/gudhi/gudhi/Off_reader.h +173 -173
- multipers/gudhi/gudhi/One_critical_filtration.h +1433 -1431
- multipers/gudhi/gudhi/Persistence_matrix/Base_matrix.h +769 -769
- multipers/gudhi/gudhi/Persistence_matrix/Base_matrix_with_column_compression.h +686 -686
- multipers/gudhi/gudhi/Persistence_matrix/Boundary_matrix.h +842 -842
- multipers/gudhi/gudhi/Persistence_matrix/Chain_matrix.h +1350 -1350
- multipers/gudhi/gudhi/Persistence_matrix/Id_to_index_overlay.h +1105 -1105
- multipers/gudhi/gudhi/Persistence_matrix/Position_to_index_overlay.h +859 -859
- multipers/gudhi/gudhi/Persistence_matrix/RU_matrix.h +910 -910
- multipers/gudhi/gudhi/Persistence_matrix/allocators/entry_constructors.h +139 -139
- multipers/gudhi/gudhi/Persistence_matrix/base_pairing.h +230 -230
- multipers/gudhi/gudhi/Persistence_matrix/base_swap.h +211 -211
- multipers/gudhi/gudhi/Persistence_matrix/boundary_cell_position_to_id_mapper.h +60 -60
- multipers/gudhi/gudhi/Persistence_matrix/boundary_face_position_to_id_mapper.h +60 -60
- multipers/gudhi/gudhi/Persistence_matrix/chain_pairing.h +136 -136
- multipers/gudhi/gudhi/Persistence_matrix/chain_rep_cycles.h +190 -190
- multipers/gudhi/gudhi/Persistence_matrix/chain_vine_swap.h +616 -616
- multipers/gudhi/gudhi/Persistence_matrix/columns/chain_column_extra_properties.h +150 -150
- multipers/gudhi/gudhi/Persistence_matrix/columns/column_dimension_holder.h +106 -106
- multipers/gudhi/gudhi/Persistence_matrix/columns/column_utilities.h +219 -219
- multipers/gudhi/gudhi/Persistence_matrix/columns/entry_types.h +327 -327
- multipers/gudhi/gudhi/Persistence_matrix/columns/heap_column.h +1140 -1140
- multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_list_column.h +934 -934
- multipers/gudhi/gudhi/Persistence_matrix/columns/intrusive_set_column.h +934 -934
- multipers/gudhi/gudhi/Persistence_matrix/columns/list_column.h +980 -980
- multipers/gudhi/gudhi/Persistence_matrix/columns/naive_vector_column.h +1092 -1092
- multipers/gudhi/gudhi/Persistence_matrix/columns/row_access.h +192 -192
- multipers/gudhi/gudhi/Persistence_matrix/columns/set_column.h +921 -921
- multipers/gudhi/gudhi/Persistence_matrix/columns/small_vector_column.h +1093 -1093
- multipers/gudhi/gudhi/Persistence_matrix/columns/unordered_set_column.h +1012 -1012
- multipers/gudhi/gudhi/Persistence_matrix/columns/vector_column.h +1244 -1244
- multipers/gudhi/gudhi/Persistence_matrix/matrix_dimension_holders.h +186 -186
- multipers/gudhi/gudhi/Persistence_matrix/matrix_row_access.h +164 -164
- multipers/gudhi/gudhi/Persistence_matrix/ru_pairing.h +156 -156
- multipers/gudhi/gudhi/Persistence_matrix/ru_rep_cycles.h +376 -376
- multipers/gudhi/gudhi/Persistence_matrix/ru_vine_swap.h +540 -540
- multipers/gudhi/gudhi/Persistent_cohomology/Field_Zp.h +118 -118
- multipers/gudhi/gudhi/Persistent_cohomology/Multi_field.h +173 -173
- multipers/gudhi/gudhi/Persistent_cohomology/Persistent_cohomology_column.h +128 -128
- multipers/gudhi/gudhi/Persistent_cohomology.h +745 -745
- multipers/gudhi/gudhi/Points_off_io.h +171 -171
- multipers/gudhi/gudhi/Simple_object_pool.h +69 -69
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_iterators.h +463 -463
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_node_explicit_storage.h +83 -83
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_siblings.h +106 -106
- multipers/gudhi/gudhi/Simplex_tree/Simplex_tree_star_simplex_iterators.h +277 -277
- multipers/gudhi/gudhi/Simplex_tree/hooks_simplex_base.h +62 -62
- multipers/gudhi/gudhi/Simplex_tree/indexing_tag.h +27 -27
- multipers/gudhi/gudhi/Simplex_tree/serialization_utils.h +62 -62
- multipers/gudhi/gudhi/Simplex_tree/simplex_tree_options.h +157 -157
- multipers/gudhi/gudhi/Simplex_tree.h +2794 -2794
- multipers/gudhi/gudhi/Simplex_tree_multi.h +152 -163
- multipers/gudhi/gudhi/distance_functions.h +62 -62
- multipers/gudhi/gudhi/graph_simplicial_complex.h +104 -104
- multipers/gudhi/gudhi/persistence_interval.h +253 -253
- multipers/gudhi/gudhi/persistence_matrix_options.h +170 -170
- multipers/gudhi/gudhi/reader_utils.h +367 -367
- multipers/gudhi/mma_interface_coh.h +256 -255
- multipers/gudhi/mma_interface_h0.h +223 -231
- multipers/gudhi/mma_interface_matrix.h +291 -282
- multipers/gudhi/naive_merge_tree.h +536 -575
- multipers/gudhi/scc_io.h +310 -289
- multipers/gudhi/truc.h +957 -888
- multipers/io.cp310-win_amd64.pyd +0 -0
- multipers/io.pyx +714 -711
- multipers/ml/accuracies.py +90 -90
- multipers/ml/invariants_with_persistable.py +79 -79
- multipers/ml/kernels.py +176 -176
- multipers/ml/mma.py +713 -714
- multipers/ml/one.py +472 -472
- multipers/ml/point_clouds.py +352 -346
- multipers/ml/signed_measures.py +1589 -1589
- multipers/ml/sliced_wasserstein.py +461 -461
- multipers/ml/tools.py +113 -113
- multipers/mma_structures.cp310-win_amd64.pyd +0 -0
- multipers/mma_structures.pxd +127 -127
- multipers/mma_structures.pyx +4 -8
- multipers/mma_structures.pyx.tp +1083 -1085
- multipers/multi_parameter_rank_invariant/diff_helpers.h +84 -93
- multipers/multi_parameter_rank_invariant/euler_characteristic.h +97 -97
- multipers/multi_parameter_rank_invariant/function_rips.h +322 -322
- multipers/multi_parameter_rank_invariant/hilbert_function.h +769 -769
- multipers/multi_parameter_rank_invariant/persistence_slices.h +148 -148
- multipers/multi_parameter_rank_invariant/rank_invariant.h +369 -369
- multipers/multiparameter_edge_collapse.py +41 -41
- multipers/multiparameter_module_approximation/approximation.h +2298 -2295
- multipers/multiparameter_module_approximation/combinatory.h +129 -129
- multipers/multiparameter_module_approximation/debug.h +107 -107
- multipers/multiparameter_module_approximation/format_python-cpp.h +286 -286
- multipers/multiparameter_module_approximation/heap_column.h +238 -238
- multipers/multiparameter_module_approximation/images.h +79 -79
- multipers/multiparameter_module_approximation/list_column.h +174 -174
- multipers/multiparameter_module_approximation/list_column_2.h +232 -232
- multipers/multiparameter_module_approximation/ru_matrix.h +347 -347
- multipers/multiparameter_module_approximation/set_column.h +135 -135
- multipers/multiparameter_module_approximation/structure_higher_dim_barcode.h +36 -36
- multipers/multiparameter_module_approximation/unordered_set_column.h +166 -166
- multipers/multiparameter_module_approximation/utilities.h +403 -419
- multipers/multiparameter_module_approximation/vector_column.h +223 -223
- multipers/multiparameter_module_approximation/vector_matrix.h +331 -331
- multipers/multiparameter_module_approximation/vineyards.h +464 -464
- multipers/multiparameter_module_approximation/vineyards_trajectories.h +649 -649
- multipers/multiparameter_module_approximation.cp310-win_amd64.pyd +0 -0
- multipers/multiparameter_module_approximation.pyx +218 -217
- multipers/pickle.py +90 -53
- multipers/plots.py +342 -334
- multipers/point_measure.cp310-win_amd64.pyd +0 -0
- multipers/point_measure.pyx +322 -320
- multipers/simplex_tree_multi.cp310-win_amd64.pyd +0 -0
- multipers/simplex_tree_multi.pxd +133 -133
- multipers/simplex_tree_multi.pyx +115 -48
- multipers/simplex_tree_multi.pyx.tp +1947 -1935
- multipers/slicer.cp310-win_amd64.pyd +0 -0
- multipers/slicer.pxd +301 -120
- multipers/slicer.pxd.tp +218 -214
- multipers/slicer.pyx +1570 -507
- multipers/slicer.pyx.tp +931 -914
- multipers/tensor/tensor.h +672 -672
- multipers/tensor.pxd +13 -13
- multipers/test.pyx +44 -44
- multipers/tests/__init__.py +57 -57
- multipers/torch/diff_grids.py +217 -217
- multipers/torch/rips_density.py +310 -304
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/LICENSE +21 -21
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/METADATA +21 -11
- multipers-2.3.1.dist-info/RECORD +182 -0
- {multipers-2.2.3.dist-info → multipers-2.3.1.dist-info}/WHEEL +1 -1
- multipers/tests/test_diff_helper.py +0 -73
- multipers/tests/test_hilbert_function.py +0 -82
- multipers/tests/test_mma.py +0 -83
- multipers/tests/test_point_clouds.py +0 -49
- multipers/tests/test_python-cpp_conversion.py +0 -82
- multipers/tests/test_signed_betti.py +0 -181
- multipers/tests/test_signed_measure.py +0 -89
- multipers/tests/test_simplextreemulti.py +0 -221
- multipers/tests/test_slicer.py +0 -221
- multipers-2.2.3.dist-info/RECORD +0 -189
- {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.
|
|
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
|
-
[](https://davidlapous.github.io/multipers)
|
|
60
|
-
[](https://doi.org/10.21105/joss.06773)
|
|
61
|
-
[](https://pypi.org/project/multipers)
|
|
62
|
-
[](https://github.com/DavidLapous/multipers/actions/workflows/python_PR.yml)
|
|
63
|
-
[](https://pepy.tech/project/multipers)
|
|
59
|
+
[](https://doi.org/10.21105/joss.06773) [](https://davidlapous.github.io/multipers) [](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
|
|
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
|
+
| [](https://anaconda.org/conda-forge/multipers)| [](https://anaconda.org/conda-forge/multipers) | [](https://anaconda.org/conda-forge/multipers) |[](https://anaconda.org/conda-forge/multipers) |
|
|
69
|
+
| [](https:///pypi.org/project/multipers) | [](https://pypi.org/project/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
|
|
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://
|
|
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)
|
|
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
|
|
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,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)
|
multipers/tests/test_mma.py
DELETED
|
@@ -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
|
-
|