multipers 2.3.3b2__cp312-cp312-win_amd64.whl → 2.3.3b4__cp312-cp312-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/function_rips.cp312-win_amd64.pyd +0 -0
- multipers/grids.cp312-win_amd64.pyd +0 -0
- multipers/io.cp312-win_amd64.pyd +0 -0
- multipers/ml/signed_measures.py +5 -3
- multipers/mma_structures.cp312-win_amd64.pyd +0 -0
- multipers/multiparameter_module_approximation.cp312-win_amd64.pyd +0 -0
- multipers/plots.py +40 -14
- multipers/point_measure.cp312-win_amd64.pyd +0 -0
- multipers/simplex_tree_multi.cp312-win_amd64.pyd +0 -0
- multipers/slicer.cp312-win_amd64.pyd +0 -0
- multipers/slicer.pyx +14 -14
- {multipers-2.3.3b2.dist-info → multipers-2.3.3b4.dist-info}/METADATA +6 -1
- {multipers-2.3.3b2.dist-info → multipers-2.3.3b4.dist-info}/RECORD +16 -16
- {multipers-2.3.3b2.dist-info → multipers-2.3.3b4.dist-info}/WHEEL +0 -0
- {multipers-2.3.3b2.dist-info → multipers-2.3.3b4.dist-info}/licenses/LICENSE +0 -0
- {multipers-2.3.3b2.dist-info → multipers-2.3.3b4.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
multipers/io.cp312-win_amd64.pyd
CHANGED
|
Binary file
|
multipers/ml/signed_measures.py
CHANGED
|
@@ -758,6 +758,8 @@ class SignedMeasureFormatter(BaseEstimator, TransformerMixin):
|
|
|
758
758
|
) = self._get_filtration_bounds(X, axis=ax)
|
|
759
759
|
self._filtrations_bounds.append(filtration_bounds)
|
|
760
760
|
self._normalization_factors.append(normalization_factors)
|
|
761
|
+
self._filtrations_bounds = self._backend.astensor(self._filtrations_bounds)
|
|
762
|
+
self._normalization_factors = self._backend.astensor(self._normalization_factors)
|
|
761
763
|
# else:
|
|
762
764
|
# (
|
|
763
765
|
# self._filtrations_bounds,
|
|
@@ -782,9 +784,9 @@ class SignedMeasureFormatter(BaseEstimator, TransformerMixin):
|
|
|
782
784
|
]
|
|
783
785
|
# axis, filtration_values
|
|
784
786
|
filtration_values = [
|
|
785
|
-
compute_grid(
|
|
787
|
+
self._backend.astensor(compute_grid(
|
|
786
788
|
f_ax.T, resolution=self.resolution, strategy=self.grid_strategy
|
|
787
|
-
)
|
|
789
|
+
))
|
|
788
790
|
for f_ax in filtration_values
|
|
789
791
|
]
|
|
790
792
|
self._infered_grids = filtration_values
|
|
@@ -848,7 +850,7 @@ class SignedMeasureFormatter(BaseEstimator, TransformerMixin):
|
|
|
848
850
|
|
|
849
851
|
if self.flatten:
|
|
850
852
|
out = np.concatenate(out).flatten()
|
|
851
|
-
|
|
853
|
+
elif self.axis == -1:
|
|
852
854
|
return np.asarray(out)
|
|
853
855
|
else:
|
|
854
856
|
return np.asarray(out)[0]
|
|
Binary file
|
|
Binary file
|
multipers/plots.py
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
|
+
from warnings import warn
|
|
2
3
|
|
|
4
|
+
import matplotlib.colors as mcolors
|
|
3
5
|
import matplotlib.pyplot as plt
|
|
4
6
|
import numpy as np
|
|
7
|
+
from matplotlib.colors import ListedColormap
|
|
5
8
|
from numpy.typing import ArrayLike
|
|
6
|
-
|
|
9
|
+
|
|
7
10
|
from multipers.array_api import to_numpy
|
|
8
11
|
|
|
12
|
+
_custom_colors = [
|
|
13
|
+
"#03045e",
|
|
14
|
+
"#0077b6",
|
|
15
|
+
"#00b4d8",
|
|
16
|
+
"#90e0ef",
|
|
17
|
+
]
|
|
18
|
+
_cmap = ListedColormap(_custom_colors)
|
|
19
|
+
_continuous_cmap = mcolors.LinearSegmentedColormap.from_list(
|
|
20
|
+
"continuous_cmap", _cmap.colors, N=256
|
|
21
|
+
)
|
|
9
22
|
|
|
10
23
|
|
|
11
24
|
def _plot_rectangle(rectangle: np.ndarray, weight, **plt_kwargs):
|
|
@@ -185,7 +198,7 @@ def plot_surface(
|
|
|
185
198
|
if discrete_surface:
|
|
186
199
|
cmap = matplotlib.colormaps["gray_r"]
|
|
187
200
|
else:
|
|
188
|
-
cmap =
|
|
201
|
+
cmap = _cmap
|
|
189
202
|
if discrete_surface:
|
|
190
203
|
if has_negative_values:
|
|
191
204
|
bounds = np.arange(-5, 6, 1, dtype=int)
|
|
@@ -200,15 +213,15 @@ def plot_surface(
|
|
|
200
213
|
)
|
|
201
214
|
cbar.set_ticks(ticks=bounds, labels=bounds)
|
|
202
215
|
return im
|
|
203
|
-
im = ax.
|
|
216
|
+
im = ax.contourf(grid[0], grid[1], hf.T, cmap=cmap, **plt_args)
|
|
204
217
|
return im
|
|
205
218
|
|
|
206
219
|
|
|
207
220
|
def plot_surfaces(HF, size=4, **plt_args):
|
|
208
221
|
grid, hf = HF
|
|
209
|
-
assert
|
|
210
|
-
|
|
211
|
-
)
|
|
222
|
+
assert (
|
|
223
|
+
hf.ndim == 3
|
|
224
|
+
), f"Found hf.shape = {hf.shape}, expected ndim = 3 : degree, 2-parameter surface."
|
|
212
225
|
num_degrees = hf.shape[0]
|
|
213
226
|
fig, axes = plt.subplots(
|
|
214
227
|
nrows=1, ncols=num_degrees, figsize=(num_degrees * size, size)
|
|
@@ -388,7 +401,19 @@ def plot_simplicial_complex(
|
|
|
388
401
|
return out
|
|
389
402
|
|
|
390
403
|
|
|
391
|
-
def plot_point_cloud(
|
|
404
|
+
def plot_point_cloud(
|
|
405
|
+
pts,
|
|
406
|
+
function,
|
|
407
|
+
x,
|
|
408
|
+
y,
|
|
409
|
+
mma=None,
|
|
410
|
+
degree=None,
|
|
411
|
+
ball_alpha=0.3,
|
|
412
|
+
point_cmap="viridis",
|
|
413
|
+
color_bias=1,
|
|
414
|
+
ball_color=None,
|
|
415
|
+
point_size=20,
|
|
416
|
+
):
|
|
392
417
|
if mma is not None:
|
|
393
418
|
fig, (a, b) = plt.subplots(ncols=2, figsize=(15, 5))
|
|
394
419
|
plt.sca(a)
|
|
@@ -403,22 +428,23 @@ def plot_point_cloud(pts, function, x, y, mma=None, degree=None):
|
|
|
403
428
|
plt.scatter([x], [y], c="r", zorder=10)
|
|
404
429
|
plt.text(x + 0.01 * (b - a), y + 0.01 * (d - c), f"({x},{y})")
|
|
405
430
|
return
|
|
406
|
-
values =
|
|
431
|
+
values = -function
|
|
407
432
|
qs = np.quantile(values, np.linspace(0, 1, 100))
|
|
408
433
|
|
|
409
434
|
def color_idx(d):
|
|
410
|
-
return np.searchsorted(qs, d) / 100
|
|
435
|
+
return np.searchsorted(qs, d * color_bias) / 100
|
|
411
436
|
|
|
412
|
-
from matplotlib.pyplot import get_cmap
|
|
413
437
|
from matplotlib.collections import PatchCollection
|
|
438
|
+
from matplotlib.pyplot import get_cmap
|
|
414
439
|
|
|
415
440
|
def color(d):
|
|
416
|
-
return get_cmap(
|
|
441
|
+
return get_cmap(point_cmap)([0, color_idx(d), 1])[1]
|
|
417
442
|
|
|
443
|
+
_colors = np.array([color(v) for v in values])
|
|
418
444
|
ax = plt.gca()
|
|
419
445
|
idx = function <= y
|
|
420
|
-
circles = [plt.Circle(pt, x
|
|
421
|
-
pc = PatchCollection(circles, alpha=
|
|
446
|
+
circles = [plt.Circle(pt, x) for pt, c in zip(pts[idx], function)]
|
|
447
|
+
pc = PatchCollection(circles, alpha=ball_alpha, color=ball_color)
|
|
422
448
|
ax.add_collection(pc)
|
|
423
|
-
plt.scatter(*pts.T, c
|
|
449
|
+
plt.scatter(*pts.T, c=_colors, s=point_size)
|
|
424
450
|
ax.set_aspect(1)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
multipers/slicer.pyx
CHANGED
|
@@ -19914,7 +19914,7 @@ def _from_bitmapf32(image, **slicer_kwargs):
|
|
|
19914
19914
|
# print(f"F = {np.asarray(F[i])}")
|
|
19915
19915
|
slicer = _Slicer(gen_maps, gen_dims, filtration_values)
|
|
19916
19916
|
return slicer
|
|
19917
|
-
def
|
|
19917
|
+
def _from_bitmapf64(image, **slicer_kwargs):
|
|
19918
19918
|
from multipers import Slicer
|
|
19919
19919
|
dtype = slicer_kwargs.get("dtype", image.dtype)
|
|
19920
19920
|
slicer_kwargs["dtype"] = dtype
|
|
@@ -19932,9 +19932,9 @@ def _from_bitmapi32(image, **slicer_kwargs):
|
|
|
19932
19932
|
cdef cset[unsigned int] vertices
|
|
19933
19933
|
|
|
19934
19934
|
cdef unsigned int num_gens = gen_dims.size()
|
|
19935
|
-
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.
|
|
19936
|
-
cdef
|
|
19937
|
-
cdef
|
|
19935
|
+
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.float64) - _Slicer._inf_value()
|
|
19936
|
+
cdef double[:,:] F = filtration_values
|
|
19937
|
+
cdef double[:,:] c_img = image.reshape(-1,num_parameters)
|
|
19938
19938
|
with nogil:
|
|
19939
19939
|
for i in range(num_gens):
|
|
19940
19940
|
# with gil:
|
|
@@ -19952,7 +19952,7 @@ def _from_bitmapi32(image, **slicer_kwargs):
|
|
|
19952
19952
|
# print(f"F = {np.asarray(F[i])}")
|
|
19953
19953
|
slicer = _Slicer(gen_maps, gen_dims, filtration_values)
|
|
19954
19954
|
return slicer
|
|
19955
|
-
def
|
|
19955
|
+
def _from_bitmapi32(image, **slicer_kwargs):
|
|
19956
19956
|
from multipers import Slicer
|
|
19957
19957
|
dtype = slicer_kwargs.get("dtype", image.dtype)
|
|
19958
19958
|
slicer_kwargs["dtype"] = dtype
|
|
@@ -19970,9 +19970,9 @@ def _from_bitmapi64(image, **slicer_kwargs):
|
|
|
19970
19970
|
cdef cset[unsigned int] vertices
|
|
19971
19971
|
|
|
19972
19972
|
cdef unsigned int num_gens = gen_dims.size()
|
|
19973
|
-
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.
|
|
19974
|
-
cdef
|
|
19975
|
-
cdef
|
|
19973
|
+
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int32) - _Slicer._inf_value()
|
|
19974
|
+
cdef int32_t[:,:] F = filtration_values
|
|
19975
|
+
cdef int32_t[:,:] c_img = image.reshape(-1,num_parameters)
|
|
19976
19976
|
with nogil:
|
|
19977
19977
|
for i in range(num_gens):
|
|
19978
19978
|
# with gil:
|
|
@@ -19990,7 +19990,7 @@ def _from_bitmapi64(image, **slicer_kwargs):
|
|
|
19990
19990
|
# print(f"F = {np.asarray(F[i])}")
|
|
19991
19991
|
slicer = _Slicer(gen_maps, gen_dims, filtration_values)
|
|
19992
19992
|
return slicer
|
|
19993
|
-
def
|
|
19993
|
+
def _from_bitmapi64(image, **slicer_kwargs):
|
|
19994
19994
|
from multipers import Slicer
|
|
19995
19995
|
dtype = slicer_kwargs.get("dtype", image.dtype)
|
|
19996
19996
|
slicer_kwargs["dtype"] = dtype
|
|
@@ -20008,9 +20008,9 @@ def _from_bitmapf64(image, **slicer_kwargs):
|
|
|
20008
20008
|
cdef cset[unsigned int] vertices
|
|
20009
20009
|
|
|
20010
20010
|
cdef unsigned int num_gens = gen_dims.size()
|
|
20011
|
-
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.
|
|
20012
|
-
cdef
|
|
20013
|
-
cdef
|
|
20011
|
+
filtration_values = np.zeros(shape=(num_gens, num_parameters), dtype = np.int64) - _Slicer._inf_value()
|
|
20012
|
+
cdef int64_t[:,:] F = filtration_values
|
|
20013
|
+
cdef int64_t[:,:] c_img = image.reshape(-1,num_parameters)
|
|
20014
20014
|
with nogil:
|
|
20015
20015
|
for i in range(num_gens):
|
|
20016
20016
|
# with gil:
|
|
@@ -20033,12 +20033,12 @@ def from_bitmap(img, **kwargs):
|
|
|
20033
20033
|
img = np.asarray(img)
|
|
20034
20034
|
if img.dtype == np.float32:
|
|
20035
20035
|
return _from_bitmapf32(img, **kwargs)
|
|
20036
|
+
if img.dtype == np.float64:
|
|
20037
|
+
return _from_bitmapf64(img, **kwargs)
|
|
20036
20038
|
if img.dtype == np.int32:
|
|
20037
20039
|
return _from_bitmapi32(img, **kwargs)
|
|
20038
20040
|
if img.dtype == np.int64:
|
|
20039
20041
|
return _from_bitmapi64(img, **kwargs)
|
|
20040
|
-
if img.dtype == np.float64:
|
|
20041
|
-
return _from_bitmapf64(img, **kwargs)
|
|
20042
20042
|
raise ValueError(f"Invalid dtype. Got {img.dtype=}, was expecting {available_dtype=}.")
|
|
20043
20043
|
|
|
20044
20044
|
def from_function_delaunay(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: multipers
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.3b4
|
|
4
4
|
Summary: Multiparameter Topological Persistence for Machine Learning
|
|
5
5
|
Author-email: David Loiseaux <david.lapous@proton.me>, Hannah Schreiber <hannah.schreiber@inria.fr>
|
|
6
6
|
Maintainer-email: David Loiseaux <david.lapous@proton.me>
|
|
@@ -62,6 +62,11 @@ or
|
|
|
62
62
|
```sh
|
|
63
63
|
conda install multipers -c conda-forge
|
|
64
64
|
```
|
|
65
|
+
Pre-releases are available via
|
|
66
|
+
```sh
|
|
67
|
+
pip install --pre multipers
|
|
68
|
+
```
|
|
69
|
+
These release usually contain small bugfixes or unstable new features.
|
|
65
70
|
|
|
66
71
|
Windows support is experimental, and some core dependencies are not available on Windows.
|
|
67
72
|
We hence recommend Windows user to use [WSL](https://learn.microsoft.com/en-us/windows/wsl/).
|
|
@@ -5,31 +5,31 @@ multipers/distances.py,sha256=uAZj2GtUQp50OxN2qU7sl2JqsmJ74IG9j5tZapLO2Us,6220
|
|
|
5
5
|
multipers/filtration_conversions.pxd,sha256=Je7a3F4zS1PQn6Ul1YCXgA6p39X2FouStru-XtN-aOw,10800
|
|
6
6
|
multipers/filtration_conversions.pxd.tp,sha256=_9tUvZVUA7J_RUM3q7BxY48fYgDHCUA7Xhy4nBfLLs0,3309
|
|
7
7
|
multipers/filtrations.pxd,sha256=08ONkZNCjs8Nme8lcD9myPz-K662sA-EDpSwzgC2_ts,9461
|
|
8
|
-
multipers/function_rips.cp312-win_amd64.pyd,sha256=
|
|
8
|
+
multipers/function_rips.cp312-win_amd64.pyd,sha256=vMmsB_8ArIBmqEO2PH97vQMgwcUuMiEk-l4boLFA6rw,332800
|
|
9
9
|
multipers/function_rips.pyx,sha256=j5NjbK3YrAv_2s8YHB1JB0k6m9NC7RQCSFlJe-w_kgE,5252
|
|
10
|
-
multipers/grids.cp312-win_amd64.pyd,sha256=
|
|
10
|
+
multipers/grids.cp312-win_amd64.pyd,sha256=P_CreKWsYECEaCNFKi8V-K_G2ACIHyyepW0kWgF-TGA,479232
|
|
11
11
|
multipers/grids.pyx,sha256=ONN_RKkuxqwb9IaS9gd42FUGaiBLc8QWcd3L-ubZjKE,16575
|
|
12
|
-
multipers/io.cp312-win_amd64.pyd,sha256=
|
|
12
|
+
multipers/io.cp312-win_amd64.pyd,sha256=XZViksPv0mMwnWf_pDX_apJXhRV6mLgBc8SD6PVjNt4,220160
|
|
13
13
|
multipers/io.pyx,sha256=pQBH_rSqaCZqDSxTLnhlyECP3fLbX2tR_RKJHydHm_0,22210
|
|
14
|
-
multipers/mma_structures.cp312-win_amd64.pyd,sha256=
|
|
14
|
+
multipers/mma_structures.cp312-win_amd64.pyd,sha256=SqWa_guCCNJvHuOW-laycyduJrztaYzz9oln158Bm1o,1279488
|
|
15
15
|
multipers/mma_structures.pxd,sha256=jh1QnQRidt_VK0CK7losQi6rAl_1qG5DNuR23J42pUA,6595
|
|
16
16
|
multipers/mma_structures.pyx,sha256=4zNC6ePfFKMvx0MrH-FqJVouyTMciRc49oevKDnsJhI,109530
|
|
17
17
|
multipers/mma_structures.pyx.tp,sha256=hWuuk9USDFa8CbQVRHNjWSAdGgpkWKvSCNjTtVuSzwM,42299
|
|
18
18
|
multipers/multiparameter_edge_collapse.py,sha256=MFt0eKQQSv2354omeIqOmzASYTKIMsYdxZHFZauQr8g,1229
|
|
19
|
-
multipers/multiparameter_module_approximation.cp312-win_amd64.pyd,sha256=
|
|
19
|
+
multipers/multiparameter_module_approximation.cp312-win_amd64.pyd,sha256=IzSXSjuUV4vk6Zg7JLlj_qfr605Lib6sEkj5lH8TtYU,451584
|
|
20
20
|
multipers/multiparameter_module_approximation.pyx,sha256=wp7la7Z9wBngnfw6WOVddf93mPyXf4HfNT6dKW2Z0r0,9030
|
|
21
21
|
multipers/pickle.py,sha256=YYVt4iHiD16E1x5Yn_4mX6P5P8rKi56pNGjJo5IzPhc,2579
|
|
22
|
-
multipers/plots.py,sha256=
|
|
23
|
-
multipers/point_measure.cp312-win_amd64.pyd,sha256=
|
|
22
|
+
multipers/plots.py,sha256=aQcRpAKxwvzUiFXK2vZZLKtpZWD5eqga42BhV_FO31U,14719
|
|
23
|
+
multipers/point_measure.cp312-win_amd64.pyd,sha256=Y93ME2sP1eQH-LXk5mtKr7s9i94TbfS7-2jKnEImdbY,573952
|
|
24
24
|
multipers/point_measure.pyx,sha256=DVhal6HgCCuALSJMcHHKOW16CwDQCVTc2PpK8cGCqx8,12109
|
|
25
|
-
multipers/simplex_tree_multi.cp312-win_amd64.pyd,sha256=
|
|
25
|
+
multipers/simplex_tree_multi.cp312-win_amd64.pyd,sha256=kGJ4UBtsoaO9-CexTHf44uP1UVXOkHekHxBnKUit72g,3616256
|
|
26
26
|
multipers/simplex_tree_multi.pxd,sha256=KpyDEQNPoMC2sOU9-d4LtrGXx_UVCJGxMJ1kk1AzHgU,6631
|
|
27
27
|
multipers/simplex_tree_multi.pyx,sha256=reHyva5AR1lOQyiCs2_jQ2XfwHtktcQ1nmY_BNmyxhk,498156
|
|
28
28
|
multipers/simplex_tree_multi.pyx.tp,sha256=fUTuIscfDlNjsImWU1YALVZ1Mf9OEkdl-IFKcRQqalI,89202
|
|
29
|
-
multipers/slicer.cp312-win_amd64.pyd,sha256=
|
|
29
|
+
multipers/slicer.cp312-win_amd64.pyd,sha256=4E0J7XCInx7QAdAuYxtrZ5Vij-uDItp23of1QJ6j8No,11682816
|
|
30
30
|
multipers/slicer.pxd,sha256=bHcV5COzDcjhaVcL3bWSHivUYtdkSx4bdj24fVOe_DU,185230
|
|
31
31
|
multipers/slicer.pxd.tp,sha256=fLOUPtPGqiY9o1fPDyc_whBrgKLh_6HVfvl7OtE-34Y,10243
|
|
32
|
-
multipers/slicer.pyx,sha256=
|
|
32
|
+
multipers/slicer.pyx,sha256=SeG0uXmtVFloCXLG2R4qkJ_QtKBeqky3EcEAGsiW01o,894041
|
|
33
33
|
multipers/slicer.pyx.tp,sha256=jZOdsHKMpq0nclmvlzkZUDzdjffT3_mFDVY_mnsl9Es,44523
|
|
34
34
|
multipers/tbb12.dll,sha256=6AsPR4GauU53hj2xqJNM0SfLkCKCDskjy-uKeS01tCk,338944
|
|
35
35
|
multipers/tbbbind_2_5.dll,sha256=8TtH7JJZlCEKF0UwfyJoiyrFt9utOI_x5AFOxpP-pGw,23040
|
|
@@ -146,7 +146,7 @@ multipers/ml/kernels.py,sha256=XWfvKY68-c9E-MpRzdNqGzGD6K24Aizx95TkiSeAtIY,6175
|
|
|
146
146
|
multipers/ml/mma.py,sha256=mSwYqSHWGiboEiMnxArCuhHyrOExPYdML2Mbx4dTO7s,23950
|
|
147
147
|
multipers/ml/one.py,sha256=np5jM8gywm65TsK1yeZ1BDWqP-Ym-7hz4brTXI_0imk,20119
|
|
148
148
|
multipers/ml/point_clouds.py,sha256=nTkSjSzQy6S10-sZ0uwBp_Fs2EIWleB7yHncK2b_xLg,13770
|
|
149
|
-
multipers/ml/signed_measures.py,sha256=
|
|
149
|
+
multipers/ml/signed_measures.py,sha256=LCf0gAfQ7y4q9gI7s72Y4nwgP6U8HZenwGrMDdK-azY,58339
|
|
150
150
|
multipers/ml/sliced_wasserstein.py,sha256=jgq4ND3EWwwJBopqRvfJLsoOptiMHjS3zEAENBmPJDc,18644
|
|
151
151
|
multipers/ml/tools.py,sha256=DOPcqmvZP2bA7M08GrwccdebwDq1HEwYdhNRGT7eZMI,3453
|
|
152
152
|
multipers/multi_parameter_rank_invariant/diff_helpers.h,sha256=wMCOhAewWd6-lulLND0y8M0MZoru6zn_8J3qfXDjLds,3477
|
|
@@ -178,8 +178,8 @@ multipers/tests/__init__.py,sha256=-7Fj-zFAfBJv18trg0CPglQTmYu_ehySZGqtJzPlN8U,1
|
|
|
178
178
|
multipers/torch/__init__.py,sha256=OLxIiZ389uCqehpUxBPUI_x1SYu531onc4tiTscAuIw,27
|
|
179
179
|
multipers/torch/diff_grids.py,sha256=2YK-c351tBpj8sfzjf26fbE1l0xlWse7oVVfDHD3zwM,7492
|
|
180
180
|
multipers/torch/rips_density.py,sha256=H-kmSzY8hXhmVn15Oltc71DHs1IUHg5oPRgNyWW8L4Q,11706
|
|
181
|
-
multipers-2.3.
|
|
182
|
-
multipers-2.3.
|
|
183
|
-
multipers-2.3.
|
|
184
|
-
multipers-2.3.
|
|
185
|
-
multipers-2.3.
|
|
181
|
+
multipers-2.3.3b4.dist-info/licenses/LICENSE,sha256=UsQRnvlo_9wpQS9DNt52GEraERHwK2GIRwuqr2Yv5JI,1071
|
|
182
|
+
multipers-2.3.3b4.dist-info/METADATA,sha256=n_srMz-MDQCYAL-DoZjzuj2Cy0vYUwG2D2HmycB0cjI,9817
|
|
183
|
+
multipers-2.3.3b4.dist-info/WHEEL,sha256=8UP9x9puWI0P1V_d7K2oMTBqfeLNm21CTzZ_Ptr0NXU,101
|
|
184
|
+
multipers-2.3.3b4.dist-info/top_level.txt,sha256=L9e0AGmhRzrNw9FpuUx-zlqi5NcBOmrI9wYY8kYWr8A,10
|
|
185
|
+
multipers-2.3.3b4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|