scipy 1.16.0rc1__cp313-cp313-win_amd64.whl → 1.16.0rc2__cp313-cp313-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.
- scipy/__config__.py +7 -7
- scipy/_cyutility.cp313-win_amd64.dll.a +0 -0
- scipy/_cyutility.cp313-win_amd64.pyd +0 -0
- scipy/_lib/_ccallback_c.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/_ccallback_c.cp313-win_amd64.pyd +0 -0
- scipy/_lib/_fpumode.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/_fpumode.cp313-win_amd64.pyd +0 -0
- scipy/_lib/_test_ccallback.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/_test_ccallback.cp313-win_amd64.pyd +0 -0
- scipy/_lib/_test_deprecation_call.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/_test_deprecation_call.cp313-win_amd64.pyd +0 -0
- scipy/_lib/_test_deprecation_def.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/_test_deprecation_def.cp313-win_amd64.pyd +0 -0
- scipy/_lib/_uarray/_uarray.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/_uarray/_uarray.cp313-win_amd64.pyd +0 -0
- scipy/_lib/messagestream.cp313-win_amd64.dll.a +0 -0
- scipy/_lib/messagestream.cp313-win_amd64.pyd +0 -0
- scipy/cluster/_hierarchy.cp313-win_amd64.dll.a +0 -0
- scipy/cluster/_hierarchy.cp313-win_amd64.pyd +0 -0
- scipy/cluster/_optimal_leaf_ordering.cp313-win_amd64.dll.a +0 -0
- scipy/cluster/_optimal_leaf_ordering.cp313-win_amd64.pyd +0 -0
- scipy/cluster/_vq.cp313-win_amd64.dll.a +0 -0
- scipy/cluster/_vq.cp313-win_amd64.pyd +0 -0
- scipy/fft/_pocketfft/pypocketfft.cp313-win_amd64.dll.a +0 -0
- scipy/fft/_pocketfft/pypocketfft.cp313-win_amd64.pyd +0 -0
- scipy/fftpack/convolve.cp313-win_amd64.dll.a +0 -0
- scipy/fftpack/convolve.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_dop.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_dop.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_lsoda.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_lsoda.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_odepack.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_odepack.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_quadpack.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_quadpack.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_test_multivariate.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_test_multivariate.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_test_odeint_banded.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_test_odeint_banded.cp313-win_amd64.pyd +0 -0
- scipy/integrate/_vode.cp313-win_amd64.dll.a +0 -0
- scipy/integrate/_vode.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_dfitpack.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_dfitpack.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_dierckx.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_dierckx.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_fitpack.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_fitpack.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_interpnd.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_interpnd.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_ppoly.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_ppoly.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_rbfinterp_pythran.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_rbfinterp_pythran.cp313-win_amd64.pyd +0 -0
- scipy/interpolate/_rgi_cython.cp313-win_amd64.dll.a +0 -0
- scipy/interpolate/_rgi_cython.cp313-win_amd64.pyd +0 -0
- scipy/io/_fast_matrix_market/_fmm_core.cp313-win_amd64.dll.a +0 -0
- scipy/io/_fast_matrix_market/_fmm_core.cp313-win_amd64.pyd +0 -0
- scipy/io/_test_fortran.cp313-win_amd64.dll.a +0 -0
- scipy/io/_test_fortran.cp313-win_amd64.pyd +0 -0
- scipy/io/matlab/_mio5_utils.cp313-win_amd64.dll.a +0 -0
- scipy/io/matlab/_mio5_utils.cp313-win_amd64.pyd +0 -0
- scipy/io/matlab/_mio_utils.cp313-win_amd64.dll.a +0 -0
- scipy/io/matlab/_mio_utils.cp313-win_amd64.pyd +0 -0
- scipy/io/matlab/_streams.cp313-win_amd64.dll.a +0 -0
- scipy/io/matlab/_streams.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_cythonized_array_utils.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_cythonized_array_utils.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_decomp_interpolative.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_decomp_interpolative.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_decomp_lu_cython.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_decomp_lu_cython.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_decomp_update.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_decomp_update.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_fblas.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_fblas.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_flapack.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_flapack.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_linalg_pythran.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_linalg_pythran.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_matfuncs_expm.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_matfuncs_expm.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_matfuncs_schur_sqrtm.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_matfuncs_schur_sqrtm.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_matfuncs_sqrtm_triu.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_matfuncs_sqrtm_triu.cp313-win_amd64.pyd +0 -0
- scipy/linalg/_solve_toeplitz.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/_solve_toeplitz.cp313-win_amd64.pyd +0 -0
- scipy/linalg/cython_blas.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/cython_blas.cp313-win_amd64.pyd +0 -0
- scipy/linalg/cython_lapack.cp313-win_amd64.dll.a +0 -0
- scipy/linalg/cython_lapack.cp313-win_amd64.pyd +0 -0
- scipy/ndimage/_ctest.cp313-win_amd64.dll.a +0 -0
- scipy/ndimage/_ctest.cp313-win_amd64.pyd +0 -0
- scipy/ndimage/_cytest.cp313-win_amd64.dll.a +0 -0
- scipy/ndimage/_cytest.cp313-win_amd64.pyd +0 -0
- scipy/ndimage/_filters.py +41 -21
- scipy/ndimage/_nd_image.cp313-win_amd64.dll.a +0 -0
- scipy/ndimage/_nd_image.cp313-win_amd64.pyd +0 -0
- scipy/ndimage/_ni_label.cp313-win_amd64.dll.a +0 -0
- scipy/ndimage/_ni_label.cp313-win_amd64.pyd +0 -0
- scipy/ndimage/_rank_filter_1d.cp313-win_amd64.dll.a +0 -0
- scipy/ndimage/_rank_filter_1d.cp313-win_amd64.pyd +0 -0
- scipy/ndimage/tests/test_filters.py +42 -9
- scipy/odr/__odrpack.cp313-win_amd64.dll.a +0 -0
- scipy/odr/__odrpack.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_bglu_dense.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_bglu_dense.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_direct.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_direct.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_group_columns.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_group_columns.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_highspy/_core.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_highspy/_core.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_highspy/_highs_options.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_highspy/_highs_options.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_lbfgsb.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_lbfgsb.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_lsap.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_lsap.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_lsq/givens_elimination.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_lsq/givens_elimination.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_minpack.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_minpack.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_moduleTNC.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_moduleTNC.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_pava_pybind.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_pava_pybind.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_slsqplib.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_slsqplib.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_trlib/_trlib.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_trlib/_trlib.cp313-win_amd64.pyd +0 -0
- scipy/optimize/_zeros.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/_zeros.cp313-win_amd64.pyd +0 -0
- scipy/optimize/cython_optimize/_zeros.cp313-win_amd64.dll.a +0 -0
- scipy/optimize/cython_optimize/_zeros.cp313-win_amd64.pyd +0 -0
- scipy/optimize/tests/test_lsq_linear.py +1 -1
- scipy/signal/_max_len_seq_inner.cp313-win_amd64.dll.a +0 -0
- scipy/signal/_max_len_seq_inner.cp313-win_amd64.pyd +0 -0
- scipy/signal/_peak_finding_utils.cp313-win_amd64.dll.a +0 -0
- scipy/signal/_peak_finding_utils.cp313-win_amd64.pyd +0 -0
- scipy/signal/_sigtools.cp313-win_amd64.dll.a +0 -0
- scipy/signal/_sigtools.cp313-win_amd64.pyd +0 -0
- scipy/signal/_sosfilt.cp313-win_amd64.dll.a +0 -0
- scipy/signal/_sosfilt.cp313-win_amd64.pyd +0 -0
- scipy/signal/_spectral_py.py +9 -0
- scipy/signal/_spline.cp313-win_amd64.dll.a +0 -0
- scipy/signal/_spline.cp313-win_amd64.pyd +0 -0
- scipy/signal/_upfirdn_apply.cp313-win_amd64.dll.a +0 -0
- scipy/signal/_upfirdn_apply.cp313-win_amd64.pyd +0 -0
- scipy/signal/tests/test_spectral.py +31 -0
- scipy/sparse/_base.py +1 -1
- scipy/sparse/_csparsetools.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/_csparsetools.cp313-win_amd64.pyd +0 -0
- scipy/sparse/_sparsetools.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/_sparsetools.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_flow.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_flow.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_matching.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_matching.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_min_spanning_tree.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_min_spanning_tree.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_reordering.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_reordering.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_shortest_path.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_shortest_path.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_tools.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_tools.cp313-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_traversal.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_traversal.cp313-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_dsolve/_superlu.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_dsolve/_superlu.cp313-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_eigen/arpack/_arpack.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_eigen/arpack/_arpack.cp313-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_cpropack.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_cpropack.cp313-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_dpropack.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_dpropack.cp313-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_spropack.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_spropack.cp313-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_zpropack.cp313-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_zpropack.cp313-win_amd64.pyd +0 -0
- scipy/sparse/tests/test_base.py +7 -0
- scipy/spatial/_ckdtree.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/_ckdtree.cp313-win_amd64.pyd +0 -0
- scipy/spatial/_distance_pybind.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/_distance_pybind.cp313-win_amd64.pyd +0 -0
- scipy/spatial/_distance_wrap.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/_distance_wrap.cp313-win_amd64.pyd +0 -0
- scipy/spatial/_hausdorff.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/_hausdorff.cp313-win_amd64.pyd +0 -0
- scipy/spatial/_qhull.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/_qhull.cp313-win_amd64.pyd +0 -0
- scipy/spatial/_voronoi.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/_voronoi.cp313-win_amd64.pyd +0 -0
- scipy/spatial/tests/test_distance.py +12 -0
- scipy/spatial/transform/_rigid_transform.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/transform/_rigid_transform.cp313-win_amd64.pyd +0 -0
- scipy/spatial/transform/_rotation.cp313-win_amd64.dll.a +0 -0
- scipy/spatial/transform/_rotation.cp313-win_amd64.pyd +0 -0
- scipy/special/_comb.cp313-win_amd64.dll.a +0 -0
- scipy/special/_comb.cp313-win_amd64.pyd +0 -0
- scipy/special/_ellip_harm_2.cp313-win_amd64.dll.a +0 -0
- scipy/special/_ellip_harm_2.cp313-win_amd64.pyd +0 -0
- scipy/special/_gufuncs.cp313-win_amd64.dll.a +0 -0
- scipy/special/_gufuncs.cp313-win_amd64.pyd +0 -0
- scipy/special/_specfun.cp313-win_amd64.dll.a +0 -0
- scipy/special/_specfun.cp313-win_amd64.pyd +0 -0
- scipy/special/_special_ufuncs.cp313-win_amd64.dll.a +0 -0
- scipy/special/_special_ufuncs.cp313-win_amd64.pyd +0 -0
- scipy/special/_test_internal.cp313-win_amd64.dll.a +0 -0
- scipy/special/_test_internal.cp313-win_amd64.pyd +0 -0
- scipy/special/_ufuncs.cp313-win_amd64.dll.a +0 -0
- scipy/special/_ufuncs.cp313-win_amd64.pyd +0 -0
- scipy/special/_ufuncs_cxx.cp313-win_amd64.dll.a +0 -0
- scipy/special/_ufuncs_cxx.cp313-win_amd64.pyd +0 -0
- scipy/special/cython_special.cp313-win_amd64.dll.a +0 -0
- scipy/special/cython_special.cp313-win_amd64.pyd +0 -0
- scipy/stats/_ansari_swilk_statistics.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_ansari_swilk_statistics.cp313-win_amd64.pyd +0 -0
- scipy/stats/_axis_nan_policy.py +1 -9
- scipy/stats/_biasedurn.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_biasedurn.cp313-win_amd64.pyd +0 -0
- scipy/stats/_correlation.py +1 -1
- scipy/stats/_entropy.py +2 -2
- scipy/stats/_hypotests.py +1 -1
- scipy/stats/_levy_stable/levyst.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_levy_stable/levyst.cp313-win_amd64.pyd +0 -0
- scipy/stats/_morestats.py +7 -7
- scipy/stats/_qmc_cy.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_qmc_cy.cp313-win_amd64.pyd +0 -0
- scipy/stats/_qmvnt_cy.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_qmvnt_cy.cp313-win_amd64.pyd +0 -0
- scipy/stats/_rcont/rcont.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_rcont/rcont.cp313-win_amd64.pyd +0 -0
- scipy/stats/_sobol.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_sobol.cp313-win_amd64.pyd +0 -0
- scipy/stats/_stats.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_stats.cp313-win_amd64.pyd +0 -0
- scipy/stats/_stats_mstats_common.py +4 -2
- scipy/stats/_stats_py.py +18 -18
- scipy/stats/_stats_pythran.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_stats_pythran.cp313-win_amd64.pyd +0 -0
- scipy/stats/_unuran/unuran_wrapper.cp313-win_amd64.dll.a +0 -0
- scipy/stats/_unuran/unuran_wrapper.cp313-win_amd64.pyd +0 -0
- scipy/stats/_variation.py +1 -1
- scipy/version.py +2 -2
- scipy-1.16.0rc2.dist-info/DELVEWHEEL +2 -0
- {scipy-1.16.0rc1.dist-info → scipy-1.16.0rc2.dist-info}/LICENSE.txt +3 -3
- {scipy-1.16.0rc1.dist-info → scipy-1.16.0rc2.dist-info}/METADATA +4 -4
- {scipy-1.16.0rc1.dist-info → scipy-1.16.0rc2.dist-info}/RECORD +252 -252
- scipy-1.16.0rc1.dist-info/DELVEWHEEL +0 -2
- /scipy-1.16.0rc1-cp313-cp313-win_amd64.whl → /scipy-1.16.0rc2-cp313-cp313-win_amd64.whl +0 -0
- {scipy-1.16.0rc1.dist-info → scipy-1.16.0rc2.dist-info}/WHEEL +0 -0
scipy/__config__.py
CHANGED
@@ -58,8 +58,8 @@ CONFIG = _cleanup(
|
|
58
58
|
"linker args": r"",
|
59
59
|
},
|
60
60
|
"pythran": {
|
61
|
-
"version": r"0.
|
62
|
-
"include directory": r"C:\Users\runneradmin\AppData\Local\Temp\pip-build-env-
|
61
|
+
"version": r"0.18.0",
|
62
|
+
"include directory": r"C:\Users\runneradmin\AppData\Local\Temp\pip-build-env-_euf7osm\overlay\Lib\site-packages/pythran"
|
63
63
|
},
|
64
64
|
},
|
65
65
|
"Machine Information": {
|
@@ -83,8 +83,8 @@ CONFIG = _cleanup(
|
|
83
83
|
"found": bool("True".lower().replace('false', '')),
|
84
84
|
"version": "0.3.28",
|
85
85
|
"detection method": "pkgconfig",
|
86
|
-
"include directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-
|
87
|
-
"lib directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-
|
86
|
+
"include directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-mznfgwro/cp313-win_amd64/build/venv/Lib/site-packages/scipy_openblas32/include",
|
87
|
+
"lib directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-mznfgwro/cp313-win_amd64/build/venv/Lib/site-packages/scipy_openblas32/lib",
|
88
88
|
"openblas configuration": r"OpenBLAS 0.3.28 DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=24",
|
89
89
|
"pc file directory": r"D:/a/scipy/scipy",
|
90
90
|
},
|
@@ -93,8 +93,8 @@ CONFIG = _cleanup(
|
|
93
93
|
"found": bool("True".lower().replace('false', '')),
|
94
94
|
"version": "0.3.28",
|
95
95
|
"detection method": "pkgconfig",
|
96
|
-
"include directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-
|
97
|
-
"lib directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-
|
96
|
+
"include directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-mznfgwro/cp313-win_amd64/build/venv/Lib/site-packages/scipy_openblas32/include",
|
97
|
+
"lib directory": r"C:/Users/runneradmin/AppData/Local/Temp/cibw-run-mznfgwro/cp313-win_amd64/build/venv/Lib/site-packages/scipy_openblas32/lib",
|
98
98
|
"openblas configuration": r"OpenBLAS 0.3.28 DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=24",
|
99
99
|
"pc file directory": r"D:/a/scipy/scipy",
|
100
100
|
},
|
@@ -106,7 +106,7 @@ CONFIG = _cleanup(
|
|
106
106
|
},
|
107
107
|
},
|
108
108
|
"Python Information": {
|
109
|
-
"path": r"C:\Users\runneradmin\AppData\Local\Temp\cibw-run-
|
109
|
+
"path": r"C:\Users\runneradmin\AppData\Local\Temp\cibw-run-mznfgwro\cp313-win_amd64\build\venv\Scripts\python.EXE",
|
110
110
|
"version": "3.13",
|
111
111
|
},
|
112
112
|
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
scipy/ndimage/_filters.py
CHANGED
@@ -68,12 +68,23 @@ def _vectorized_filter_iv(input, function, size, footprint, output, mode, cval,
|
|
68
68
|
if size is not None and footprint is not None:
|
69
69
|
raise ValueError("Either `size` or `footprint` may be provided, not both.")
|
70
70
|
|
71
|
-
|
72
|
-
|
71
|
+
if axes is None:
|
72
|
+
axes = tuple(range(-input.ndim, 0))
|
73
|
+
elif np.isscalar(axes):
|
74
|
+
axes = (axes,)
|
75
|
+
n_axes = len(axes)
|
76
|
+
n_batch = input.ndim - n_axes
|
77
|
+
|
78
|
+
if n_axes > input.ndim:
|
79
|
+
message = ("The length of `axes` may not exceed the dimensionality of `input`"
|
80
|
+
"(`input.ndim`).")
|
81
|
+
raise ValueError(message)
|
82
|
+
|
83
|
+
# Either footprint or size must be provided
|
73
84
|
footprinted_function = function
|
74
85
|
if size is not None:
|
75
86
|
# If provided, size must be an integer or tuple of integers.
|
76
|
-
size = (size,)*
|
87
|
+
size = (size,)*n_axes if np.isscalar(size) else tuple(size)
|
77
88
|
valid = [xp.isdtype(xp.asarray(i).dtype, 'integral') and i > 0 for i in size]
|
78
89
|
if not all(valid):
|
79
90
|
raise ValueError("All elements of `size` must be positive integers.")
|
@@ -84,13 +95,10 @@ def _vectorized_filter_iv(input, function, size, footprint, output, mode, cval,
|
|
84
95
|
def footprinted_function(input, *args, axis=-1, **kwargs):
|
85
96
|
return function(input[..., footprint], *args, axis=-1, **kwargs)
|
86
97
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
if n_axes > input.ndim:
|
92
|
-
message = ("The dimensionality of the window (`len(size)` or `footprint.ndim`) "
|
93
|
-
"may not exceed the number of axes of `input` (`input.ndim`).")
|
98
|
+
# And by now, the dimensionality of the footprint must equal the number of axes
|
99
|
+
if n_axes != len(size):
|
100
|
+
message = ("`axes` must be compatible with the dimensionality "
|
101
|
+
"of the window specified by `size` or `footprint`.")
|
94
102
|
raise ValueError(message)
|
95
103
|
|
96
104
|
# If this is not *equal* to the dimensionality of `input`, then `axes`
|
@@ -101,9 +109,10 @@ def _vectorized_filter_iv(input, function, size, footprint, output, mode, cval,
|
|
101
109
|
"(`len(size)` or `footprint.ndim`) does not equal the number "
|
102
110
|
"of axes of `input` (`input.ndim`).")
|
103
111
|
raise ValueError(message)
|
104
|
-
axes = (axes,) if np.isscalar(axes) else axes
|
105
112
|
else:
|
106
|
-
axes = tuple(range(-n_axes, 0))
|
113
|
+
axes = tuple(range(-n_axes, 0)) if axes is None else axes
|
114
|
+
|
115
|
+
axes = (axes,) if np.isscalar(axes) else axes
|
107
116
|
|
108
117
|
# If `origin` is provided, then it must be "broadcastable" to a tuple with length
|
109
118
|
# equal to the core dimensionality.
|
@@ -150,10 +159,9 @@ def _vectorized_filter_iv(input, function, size, footprint, output, mode, cval,
|
|
150
159
|
|
151
160
|
# For simplicity, work with `axes` at the end.
|
152
161
|
working_axes = tuple(range(-n_axes, 0))
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
if output is not None else output)
|
162
|
+
input = xp.moveaxis(input, axes, working_axes)
|
163
|
+
output = (xp.moveaxis(output, axes, working_axes)
|
164
|
+
if output is not None else output)
|
157
165
|
|
158
166
|
# Wrap the function to limit maximum memory usage, deal with `footprint`,
|
159
167
|
# and populate `output`. The latter requires some verbosity because we
|
@@ -190,8 +198,8 @@ def _vectorized_filter_iv(input, function, size, footprint, output, mode, cval,
|
|
190
198
|
**kwargs)
|
191
199
|
return output
|
192
200
|
|
193
|
-
return (input, wrapped_function, size, mode, cval,
|
194
|
-
|
201
|
+
return (input, wrapped_function, size, mode, cval, origin,
|
202
|
+
working_axes, axes, n_axes, n_batch, xp)
|
195
203
|
|
196
204
|
|
197
205
|
@_ni_docstrings.docfiller
|
@@ -211,7 +219,19 @@ def vectorized_filter(input, function, *, size=None, footprint=None, output=None
|
|
211
219
|
|
212
220
|
where ``axis`` specifies the axis (or axes) of ``window`` along which
|
213
221
|
the filter function is evaluated.
|
214
|
-
|
222
|
+
size : scalar or tuple, optional
|
223
|
+
See `footprint` below. Ignored if `footprint` is given.
|
224
|
+
footprint : array, optional
|
225
|
+
Either `size` or `footprint` must be defined. `size` gives
|
226
|
+
the shape that is taken from the input array, at every element
|
227
|
+
position, to define the input to the filter function.
|
228
|
+
`footprint` is a boolean array that specifies (implicitly) a
|
229
|
+
shape, but also which of the elements within this shape will get
|
230
|
+
passed to the filter function. Thus ``size=(n, m)`` is equivalent
|
231
|
+
to ``footprint=np.ones((n, m))``.
|
232
|
+
We adjust `size` to the number of dimensions indicated by `axes`.
|
233
|
+
For instance, if `axes` is ``(0, 2, 1)`` and ``n`` is passed for ``size``,
|
234
|
+
then the effective `size` is ``(n, n, n)``.
|
215
235
|
%(output)s
|
216
236
|
mode : {'reflect', 'constant', 'nearest', 'mirror', 'wrap'}, optional
|
217
237
|
The `mode` parameter determines how the input array is extended
|
@@ -409,7 +429,7 @@ def vectorized_filter(input, function, *, size=None, footprint=None, output=None
|
|
409
429
|
|
410
430
|
""" # noqa: E501
|
411
431
|
|
412
|
-
(input, function, size, mode, cval, origin, working_axes, n_axes, n_batch, xp
|
432
|
+
(input, function, size, mode, cval, origin, working_axes, axes, n_axes, n_batch, xp
|
413
433
|
) = _vectorized_filter_iv(input, function, size, footprint, output, mode, cval,
|
414
434
|
origin, axes, batch_memory)
|
415
435
|
|
@@ -455,7 +475,7 @@ def vectorized_filter(input, function, *, size=None, footprint=None, output=None
|
|
455
475
|
res = function(view)
|
456
476
|
|
457
477
|
# move working_axes back to original positions
|
458
|
-
return xp.moveaxis(res, working_axes, axes)
|
478
|
+
return xp.moveaxis(res, working_axes, axes)
|
459
479
|
|
460
480
|
|
461
481
|
def _invalid_origin(origin, lenw):
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -2571,7 +2571,7 @@ class TestThreading:
|
|
2571
2571
|
for i in range(n):
|
2572
2572
|
fun(*args, output=out[i, ...])
|
2573
2573
|
|
2574
|
-
@xfail_xp_backends("cupy",
|
2574
|
+
@xfail_xp_backends("cupy",
|
2575
2575
|
reason="XXX thread exception; cannot repro outside of pytest")
|
2576
2576
|
def test_correlate1d(self, xp):
|
2577
2577
|
d = np.random.randn(5000)
|
@@ -2585,7 +2585,7 @@ class TestThreading:
|
|
2585
2585
|
self.check_func_thread(4, ndimage.correlate1d, (d, k), ot)
|
2586
2586
|
xp_assert_equal(os, ot)
|
2587
2587
|
|
2588
|
-
@xfail_xp_backends("cupy",
|
2588
|
+
@xfail_xp_backends("cupy",
|
2589
2589
|
reason="XXX thread exception; cannot repro outside of pytest")
|
2590
2590
|
def test_correlate(self, xp):
|
2591
2591
|
d = xp.asarray(np.random.randn(500, 500))
|
@@ -2596,7 +2596,7 @@ class TestThreading:
|
|
2596
2596
|
self.check_func_thread(4, ndimage.correlate, (d, k), ot)
|
2597
2597
|
xp_assert_equal(os, ot)
|
2598
2598
|
|
2599
|
-
@xfail_xp_backends("cupy",
|
2599
|
+
@xfail_xp_backends("cupy",
|
2600
2600
|
reason="XXX thread exception; cannot repro outside of pytest")
|
2601
2601
|
def test_median_filter(self, xp):
|
2602
2602
|
d = xp.asarray(np.random.randn(500, 500))
|
@@ -2606,7 +2606,7 @@ class TestThreading:
|
|
2606
2606
|
self.check_func_thread(4, ndimage.median_filter, (d, 3), ot)
|
2607
2607
|
xp_assert_equal(os, ot)
|
2608
2608
|
|
2609
|
-
@xfail_xp_backends("cupy",
|
2609
|
+
@xfail_xp_backends("cupy",
|
2610
2610
|
reason="XXX thread exception; cannot repro outside of pytest")
|
2611
2611
|
def test_uniform_filter1d(self, xp):
|
2612
2612
|
d = np.random.randn(5000)
|
@@ -2619,7 +2619,7 @@ class TestThreading:
|
|
2619
2619
|
self.check_func_thread(4, ndimage.uniform_filter1d, (d, 5), ot)
|
2620
2620
|
xp_assert_equal(os, ot)
|
2621
2621
|
|
2622
|
-
@xfail_xp_backends("cupy",
|
2622
|
+
@xfail_xp_backends("cupy",
|
2623
2623
|
reason="XXX thread exception; cannot repro outside of pytest")
|
2624
2624
|
def test_minmax_filter(self, xp):
|
2625
2625
|
d = xp.asarray(np.random.randn(500, 500))
|
@@ -2908,15 +2908,19 @@ class TestVectorizedFilter:
|
|
2908
2908
|
with pytest.raises(ValueError, match=message):
|
2909
2909
|
ndimage.vectorized_filter(input, function, size=0)
|
2910
2910
|
|
2911
|
-
message = "The
|
2911
|
+
message = "The length of `axes` may not exceed "
|
2912
|
+
axes = (0, 1, 2)
|
2912
2913
|
with pytest.raises(ValueError, match=message):
|
2913
|
-
ndimage.vectorized_filter(input, function, size=(1, 2,
|
2914
|
+
ndimage.vectorized_filter(input, function, size=(1, 2), axes=axes)
|
2914
2915
|
with pytest.raises(ValueError, match=message):
|
2915
|
-
ndimage.vectorized_filter(input, function, footprint=xp.ones((2, 2
|
2916
|
+
ndimage.vectorized_filter(input, function, footprint=xp.ones((2, 2)),
|
2917
|
+
axes=axes)
|
2916
2918
|
|
2917
|
-
message = "`axes` must be
|
2919
|
+
message = "`axes` must be compatible with the dimensionality..."
|
2918
2920
|
with pytest.raises(ValueError, match=message):
|
2919
2921
|
ndimage.vectorized_filter(input, function, size=(1,))
|
2922
|
+
with pytest.raises(ValueError, match=message):
|
2923
|
+
ndimage.vectorized_filter(input, function, size=(2,), axes=(0,1))
|
2920
2924
|
|
2921
2925
|
message = "All elements of `origin` must be integers"
|
2922
2926
|
with pytest.raises(ValueError, match=message):
|
@@ -2986,6 +2990,35 @@ class TestVectorizedFilter:
|
|
2986
2990
|
ref = ndimage.vectorized_filter(input, function, size=21)
|
2987
2991
|
xp_assert_close(res, ref)
|
2988
2992
|
|
2993
|
+
def test_gh23046_feature(self, xp):
|
2994
|
+
# The intent of gh-23046 was to always allow `size` to be a scalar.
|
2995
|
+
rng = np.random.default_rng(45982734597824)
|
2996
|
+
img = xp.asarray(rng.random((5, 5)))
|
2997
|
+
|
2998
|
+
ref = ndimage.vectorized_filter(img, xp.mean, size=2)
|
2999
|
+
res = ndimage.vectorized_filter(img, xp.mean, size=2, axes=(0, 1))
|
3000
|
+
xp_assert_close(res, ref)
|
3001
|
+
|
3002
|
+
ref = ndimage.vectorized_filter(img, xp.mean, size=(2,), axes=(0,))
|
3003
|
+
res = ndimage.vectorized_filter(img, xp.mean, size=2, axes=0)
|
3004
|
+
xp_assert_close(res, ref)
|
3005
|
+
|
3006
|
+
def test_gh23046_fix(self, xp):
|
3007
|
+
# While investigating the feasibility of gh-23046, I noticed a bug when the
|
3008
|
+
# length of an `axes` tuple equals the dimensionality of the image.
|
3009
|
+
rng = np.random.default_rng(45982734597824)
|
3010
|
+
img = xp.asarray(rng.random((5, 5)))
|
3011
|
+
size = (2, 3)
|
3012
|
+
ref = ndimage.vectorized_filter(img.T, xp.mean, size=size).T
|
3013
|
+
res = ndimage.vectorized_filter(img, xp.mean, size=size, axes=(1, 0))
|
3014
|
+
xp_assert_close(res, ref)
|
3015
|
+
|
3016
|
+
ref = ndimage.vectorized_filter(img, xp.mean, size=size, mode='constant')
|
3017
|
+
res = ndimage.vectorized_filter(img, xp.mean, size=size[::-1], axes=(1, 0),
|
3018
|
+
mode='constant')
|
3019
|
+
xp_assert_close(res, ref)
|
3020
|
+
|
3021
|
+
|
2989
3022
|
|
2990
3023
|
@given(x=npst.arrays(dtype=np.float64,
|
2991
3024
|
shape=st.integers(min_value=1, max_value=1000)),
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|