scipy 1.15.3__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.
Files changed (759) hide show
  1. scipy/__config__.py +8 -8
  2. scipy/__init__.py +3 -6
  3. scipy/_cyutility.cp313-win_amd64.dll.a +0 -0
  4. scipy/_cyutility.cp313-win_amd64.pyd +0 -0
  5. scipy/_lib/_array_api.py +486 -161
  6. scipy/_lib/_array_api_compat_vendor.py +9 -0
  7. scipy/_lib/_bunch.py +4 -0
  8. scipy/_lib/_ccallback_c.cp313-win_amd64.dll.a +0 -0
  9. scipy/_lib/_ccallback_c.cp313-win_amd64.pyd +0 -0
  10. scipy/_lib/_docscrape.py +1 -1
  11. scipy/_lib/_elementwise_iterative_method.py +15 -26
  12. scipy/_lib/_fpumode.cp313-win_amd64.dll.a +0 -0
  13. scipy/_lib/_fpumode.cp313-win_amd64.pyd +0 -0
  14. scipy/_lib/_sparse.py +41 -0
  15. scipy/_lib/_test_ccallback.cp313-win_amd64.dll.a +0 -0
  16. scipy/_lib/_test_ccallback.cp313-win_amd64.pyd +0 -0
  17. scipy/_lib/_test_deprecation_call.cp313-win_amd64.dll.a +0 -0
  18. scipy/_lib/_test_deprecation_call.cp313-win_amd64.pyd +0 -0
  19. scipy/_lib/_test_deprecation_def.cp313-win_amd64.dll.a +0 -0
  20. scipy/_lib/_test_deprecation_def.cp313-win_amd64.pyd +0 -0
  21. scipy/_lib/_testutils.py +6 -2
  22. scipy/_lib/_uarray/_uarray.cp313-win_amd64.dll.a +0 -0
  23. scipy/_lib/_uarray/_uarray.cp313-win_amd64.pyd +0 -0
  24. scipy/_lib/_util.py +222 -125
  25. scipy/_lib/array_api_compat/__init__.py +4 -4
  26. scipy/_lib/array_api_compat/_internal.py +19 -6
  27. scipy/_lib/array_api_compat/common/__init__.py +1 -1
  28. scipy/_lib/array_api_compat/common/_aliases.py +365 -193
  29. scipy/_lib/array_api_compat/common/_fft.py +94 -64
  30. scipy/_lib/array_api_compat/common/_helpers.py +413 -180
  31. scipy/_lib/array_api_compat/common/_linalg.py +116 -40
  32. scipy/_lib/array_api_compat/common/_typing.py +179 -10
  33. scipy/_lib/array_api_compat/cupy/__init__.py +1 -4
  34. scipy/_lib/array_api_compat/cupy/_aliases.py +61 -41
  35. scipy/_lib/array_api_compat/cupy/_info.py +16 -6
  36. scipy/_lib/array_api_compat/cupy/_typing.py +24 -39
  37. scipy/_lib/array_api_compat/dask/array/__init__.py +6 -3
  38. scipy/_lib/array_api_compat/dask/array/_aliases.py +267 -108
  39. scipy/_lib/array_api_compat/dask/array/_info.py +105 -34
  40. scipy/_lib/array_api_compat/dask/array/fft.py +5 -8
  41. scipy/_lib/array_api_compat/dask/array/linalg.py +21 -22
  42. scipy/_lib/array_api_compat/numpy/__init__.py +13 -15
  43. scipy/_lib/array_api_compat/numpy/_aliases.py +98 -49
  44. scipy/_lib/array_api_compat/numpy/_info.py +36 -16
  45. scipy/_lib/array_api_compat/numpy/_typing.py +27 -43
  46. scipy/_lib/array_api_compat/numpy/fft.py +11 -5
  47. scipy/_lib/array_api_compat/numpy/linalg.py +75 -22
  48. scipy/_lib/array_api_compat/torch/__init__.py +3 -5
  49. scipy/_lib/array_api_compat/torch/_aliases.py +262 -159
  50. scipy/_lib/array_api_compat/torch/_info.py +27 -16
  51. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  52. scipy/_lib/array_api_compat/torch/fft.py +17 -18
  53. scipy/_lib/array_api_compat/torch/linalg.py +16 -16
  54. scipy/_lib/array_api_extra/__init__.py +26 -3
  55. scipy/_lib/array_api_extra/_delegation.py +171 -0
  56. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  57. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  58. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  59. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  60. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  61. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  62. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  63. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  64. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  65. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  66. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  67. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  68. scipy/_lib/array_api_extra/testing.py +359 -0
  69. scipy/_lib/decorator.py +2 -2
  70. scipy/_lib/doccer.py +1 -7
  71. scipy/_lib/messagestream.cp313-win_amd64.dll.a +0 -0
  72. scipy/_lib/messagestream.cp313-win_amd64.pyd +0 -0
  73. scipy/_lib/pyprima/__init__.py +212 -0
  74. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  75. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  76. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  77. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  78. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  79. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  80. scipy/_lib/pyprima/cobyla/update.py +289 -0
  81. scipy/_lib/pyprima/common/__init__.py +0 -0
  82. scipy/_lib/pyprima/common/_bounds.py +34 -0
  83. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  84. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  85. scipy/_lib/pyprima/common/_project.py +173 -0
  86. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  87. scipy/_lib/pyprima/common/consts.py +47 -0
  88. scipy/_lib/pyprima/common/evaluate.py +99 -0
  89. scipy/_lib/pyprima/common/history.py +38 -0
  90. scipy/_lib/pyprima/common/infos.py +30 -0
  91. scipy/_lib/pyprima/common/linalg.py +435 -0
  92. scipy/_lib/pyprima/common/message.py +290 -0
  93. scipy/_lib/pyprima/common/powalg.py +131 -0
  94. scipy/_lib/pyprima/common/preproc.py +277 -0
  95. scipy/_lib/pyprima/common/present.py +5 -0
  96. scipy/_lib/pyprima/common/ratio.py +54 -0
  97. scipy/_lib/pyprima/common/redrho.py +47 -0
  98. scipy/_lib/pyprima/common/selectx.py +296 -0
  99. scipy/_lib/tests/test__util.py +105 -121
  100. scipy/_lib/tests/test_array_api.py +166 -35
  101. scipy/_lib/tests/test_bunch.py +7 -0
  102. scipy/_lib/tests/test_ccallback.py +2 -10
  103. scipy/_lib/tests/test_public_api.py +13 -0
  104. scipy/cluster/_hierarchy.cp313-win_amd64.dll.a +0 -0
  105. scipy/cluster/_hierarchy.cp313-win_amd64.pyd +0 -0
  106. scipy/cluster/_optimal_leaf_ordering.cp313-win_amd64.dll.a +0 -0
  107. scipy/cluster/_optimal_leaf_ordering.cp313-win_amd64.pyd +0 -0
  108. scipy/cluster/_vq.cp313-win_amd64.dll.a +0 -0
  109. scipy/cluster/_vq.cp313-win_amd64.pyd +0 -0
  110. scipy/cluster/hierarchy.py +393 -223
  111. scipy/cluster/tests/test_hierarchy.py +273 -335
  112. scipy/cluster/tests/test_vq.py +45 -61
  113. scipy/cluster/vq.py +39 -35
  114. scipy/conftest.py +263 -157
  115. scipy/constants/_constants.py +4 -1
  116. scipy/constants/tests/test_codata.py +2 -2
  117. scipy/constants/tests/test_constants.py +11 -18
  118. scipy/datasets/_download_all.py +15 -1
  119. scipy/datasets/_fetchers.py +7 -1
  120. scipy/datasets/_utils.py +1 -1
  121. scipy/differentiate/_differentiate.py +25 -25
  122. scipy/differentiate/tests/test_differentiate.py +24 -25
  123. scipy/fft/_basic.py +20 -0
  124. scipy/fft/_helper.py +3 -34
  125. scipy/fft/_pocketfft/helper.py +29 -1
  126. scipy/fft/_pocketfft/pypocketfft.cp313-win_amd64.dll.a +0 -0
  127. scipy/fft/_pocketfft/pypocketfft.cp313-win_amd64.pyd +0 -0
  128. scipy/fft/_pocketfft/tests/test_basic.py +2 -4
  129. scipy/fft/_pocketfft/tests/test_real_transforms.py +4 -4
  130. scipy/fft/_realtransforms.py +13 -0
  131. scipy/fft/tests/test_basic.py +27 -25
  132. scipy/fft/tests/test_fftlog.py +16 -7
  133. scipy/fft/tests/test_helper.py +18 -34
  134. scipy/fft/tests/test_real_transforms.py +8 -10
  135. scipy/fftpack/convolve.cp313-win_amd64.dll.a +0 -0
  136. scipy/fftpack/convolve.cp313-win_amd64.pyd +0 -0
  137. scipy/fftpack/tests/test_basic.py +2 -4
  138. scipy/fftpack/tests/test_real_transforms.py +8 -9
  139. scipy/integrate/_bvp.py +9 -3
  140. scipy/integrate/_cubature.py +3 -2
  141. scipy/integrate/_dop.cp313-win_amd64.dll.a +0 -0
  142. scipy/integrate/_dop.cp313-win_amd64.pyd +0 -0
  143. scipy/integrate/_lsoda.cp313-win_amd64.dll.a +0 -0
  144. scipy/integrate/_lsoda.cp313-win_amd64.pyd +0 -0
  145. scipy/integrate/_ode.py +9 -2
  146. scipy/integrate/_odepack.cp313-win_amd64.dll.a +0 -0
  147. scipy/integrate/_odepack.cp313-win_amd64.pyd +0 -0
  148. scipy/integrate/_quad_vec.py +21 -29
  149. scipy/integrate/_quadpack.cp313-win_amd64.dll.a +0 -0
  150. scipy/integrate/_quadpack.cp313-win_amd64.pyd +0 -0
  151. scipy/integrate/_quadpack_py.py +11 -7
  152. scipy/integrate/_quadrature.py +3 -3
  153. scipy/integrate/_rules/_base.py +2 -2
  154. scipy/integrate/_tanhsinh.py +48 -47
  155. scipy/integrate/_test_multivariate.cp313-win_amd64.dll.a +0 -0
  156. scipy/integrate/_test_multivariate.cp313-win_amd64.pyd +0 -0
  157. scipy/integrate/_test_odeint_banded.cp313-win_amd64.dll.a +0 -0
  158. scipy/integrate/_test_odeint_banded.cp313-win_amd64.pyd +0 -0
  159. scipy/integrate/_vode.cp313-win_amd64.dll.a +0 -0
  160. scipy/integrate/_vode.cp313-win_amd64.pyd +0 -0
  161. scipy/integrate/tests/test__quad_vec.py +0 -6
  162. scipy/integrate/tests/test_banded_ode_solvers.py +85 -0
  163. scipy/integrate/tests/test_cubature.py +21 -35
  164. scipy/integrate/tests/test_quadrature.py +6 -8
  165. scipy/integrate/tests/test_tanhsinh.py +56 -48
  166. scipy/interpolate/__init__.py +70 -58
  167. scipy/interpolate/_bary_rational.py +22 -22
  168. scipy/interpolate/_bsplines.py +119 -66
  169. scipy/interpolate/_cubic.py +65 -50
  170. scipy/interpolate/_dfitpack.cp313-win_amd64.dll.a +0 -0
  171. scipy/interpolate/_dfitpack.cp313-win_amd64.pyd +0 -0
  172. scipy/interpolate/_dierckx.cp313-win_amd64.dll.a +0 -0
  173. scipy/interpolate/_dierckx.cp313-win_amd64.pyd +0 -0
  174. scipy/interpolate/_fitpack.cp313-win_amd64.dll.a +0 -0
  175. scipy/interpolate/_fitpack.cp313-win_amd64.pyd +0 -0
  176. scipy/interpolate/_fitpack2.py +9 -6
  177. scipy/interpolate/_fitpack_impl.py +32 -26
  178. scipy/interpolate/_fitpack_repro.py +23 -19
  179. scipy/interpolate/_interpnd.cp313-win_amd64.dll.a +0 -0
  180. scipy/interpolate/_interpnd.cp313-win_amd64.pyd +0 -0
  181. scipy/interpolate/_interpolate.py +30 -12
  182. scipy/interpolate/_ndbspline.py +13 -18
  183. scipy/interpolate/_ndgriddata.py +5 -8
  184. scipy/interpolate/_polyint.py +95 -31
  185. scipy/interpolate/_ppoly.cp313-win_amd64.dll.a +0 -0
  186. scipy/interpolate/_ppoly.cp313-win_amd64.pyd +0 -0
  187. scipy/interpolate/_rbf.py +2 -2
  188. scipy/interpolate/_rbfinterp.py +1 -1
  189. scipy/interpolate/_rbfinterp_pythran.cp313-win_amd64.dll.a +0 -0
  190. scipy/interpolate/_rbfinterp_pythran.cp313-win_amd64.pyd +0 -0
  191. scipy/interpolate/_rgi.py +31 -26
  192. scipy/interpolate/_rgi_cython.cp313-win_amd64.dll.a +0 -0
  193. scipy/interpolate/_rgi_cython.cp313-win_amd64.pyd +0 -0
  194. scipy/interpolate/dfitpack.py +0 -20
  195. scipy/interpolate/interpnd.py +1 -2
  196. scipy/interpolate/tests/test_bary_rational.py +2 -2
  197. scipy/interpolate/tests/test_bsplines.py +97 -1
  198. scipy/interpolate/tests/test_fitpack2.py +39 -1
  199. scipy/interpolate/tests/test_interpnd.py +32 -20
  200. scipy/interpolate/tests/test_interpolate.py +48 -4
  201. scipy/interpolate/tests/test_rgi.py +2 -1
  202. scipy/io/_fast_matrix_market/__init__.py +2 -0
  203. scipy/io/_fast_matrix_market/_fmm_core.cp313-win_amd64.dll.a +0 -0
  204. scipy/io/_fast_matrix_market/_fmm_core.cp313-win_amd64.pyd +0 -0
  205. scipy/io/_harwell_boeing/_fortran_format_parser.py +19 -16
  206. scipy/io/_harwell_boeing/hb.py +7 -11
  207. scipy/io/_idl.py +5 -7
  208. scipy/io/_netcdf.py +15 -5
  209. scipy/io/_test_fortran.cp313-win_amd64.dll.a +0 -0
  210. scipy/io/_test_fortran.cp313-win_amd64.pyd +0 -0
  211. scipy/io/arff/tests/test_arffread.py +3 -3
  212. scipy/io/matlab/__init__.py +5 -3
  213. scipy/io/matlab/_mio.py +4 -1
  214. scipy/io/matlab/_mio5.py +19 -13
  215. scipy/io/matlab/_mio5_utils.cp313-win_amd64.dll.a +0 -0
  216. scipy/io/matlab/_mio5_utils.cp313-win_amd64.pyd +0 -0
  217. scipy/io/matlab/_mio_utils.cp313-win_amd64.dll.a +0 -0
  218. scipy/io/matlab/_mio_utils.cp313-win_amd64.pyd +0 -0
  219. scipy/io/matlab/_miobase.py +4 -1
  220. scipy/io/matlab/_streams.cp313-win_amd64.dll.a +0 -0
  221. scipy/io/matlab/_streams.cp313-win_amd64.pyd +0 -0
  222. scipy/io/matlab/tests/test_mio.py +46 -18
  223. scipy/io/matlab/tests/test_mio_funcs.py +1 -1
  224. scipy/io/tests/test_mmio.py +7 -1
  225. scipy/io/tests/test_wavfile.py +41 -0
  226. scipy/io/wavfile.py +57 -10
  227. scipy/linalg/_basic.py +113 -86
  228. scipy/linalg/_cythonized_array_utils.cp313-win_amd64.dll.a +0 -0
  229. scipy/linalg/_cythonized_array_utils.cp313-win_amd64.pyd +0 -0
  230. scipy/linalg/_decomp.py +22 -9
  231. scipy/linalg/_decomp_cholesky.py +28 -13
  232. scipy/linalg/_decomp_cossin.py +45 -30
  233. scipy/linalg/_decomp_interpolative.cp313-win_amd64.dll.a +0 -0
  234. scipy/linalg/_decomp_interpolative.cp313-win_amd64.pyd +0 -0
  235. scipy/linalg/_decomp_ldl.py +4 -1
  236. scipy/linalg/_decomp_lu.py +18 -6
  237. scipy/linalg/_decomp_lu_cython.cp313-win_amd64.dll.a +0 -0
  238. scipy/linalg/_decomp_lu_cython.cp313-win_amd64.pyd +0 -0
  239. scipy/linalg/_decomp_polar.py +2 -0
  240. scipy/linalg/_decomp_qr.py +6 -2
  241. scipy/linalg/_decomp_qz.py +3 -0
  242. scipy/linalg/_decomp_schur.py +3 -1
  243. scipy/linalg/_decomp_svd.py +13 -2
  244. scipy/linalg/_decomp_update.cp313-win_amd64.dll.a +0 -0
  245. scipy/linalg/_decomp_update.cp313-win_amd64.pyd +0 -0
  246. scipy/linalg/_expm_frechet.py +4 -0
  247. scipy/linalg/_fblas.cp313-win_amd64.dll.a +0 -0
  248. scipy/linalg/_fblas.cp313-win_amd64.pyd +0 -0
  249. scipy/linalg/_flapack.cp313-win_amd64.dll.a +0 -0
  250. scipy/linalg/_flapack.cp313-win_amd64.pyd +0 -0
  251. scipy/linalg/_linalg_pythran.cp313-win_amd64.dll.a +0 -0
  252. scipy/linalg/_linalg_pythran.cp313-win_amd64.pyd +0 -0
  253. scipy/linalg/_matfuncs.py +187 -4
  254. scipy/linalg/_matfuncs_expm.cp313-win_amd64.dll.a +0 -0
  255. scipy/linalg/_matfuncs_expm.cp313-win_amd64.pyd +0 -0
  256. scipy/linalg/_matfuncs_schur_sqrtm.cp313-win_amd64.dll.a +0 -0
  257. scipy/linalg/_matfuncs_schur_sqrtm.cp313-win_amd64.pyd +0 -0
  258. scipy/linalg/_matfuncs_sqrtm.py +1 -99
  259. scipy/linalg/_matfuncs_sqrtm_triu.cp313-win_amd64.dll.a +0 -0
  260. scipy/linalg/_matfuncs_sqrtm_triu.cp313-win_amd64.pyd +0 -0
  261. scipy/linalg/_procrustes.py +2 -0
  262. scipy/linalg/_sketches.py +17 -6
  263. scipy/linalg/_solve_toeplitz.cp313-win_amd64.dll.a +0 -0
  264. scipy/linalg/_solve_toeplitz.cp313-win_amd64.pyd +0 -0
  265. scipy/linalg/_solvers.py +7 -2
  266. scipy/linalg/_special_matrices.py +26 -36
  267. scipy/linalg/cython_blas.cp313-win_amd64.dll.a +0 -0
  268. scipy/linalg/cython_blas.cp313-win_amd64.pyd +0 -0
  269. scipy/linalg/cython_lapack.cp313-win_amd64.dll.a +0 -0
  270. scipy/linalg/cython_lapack.cp313-win_amd64.pyd +0 -0
  271. scipy/linalg/lapack.py +22 -2
  272. scipy/linalg/tests/_cython_examples/meson.build +7 -0
  273. scipy/linalg/tests/test_basic.py +31 -16
  274. scipy/linalg/tests/test_batch.py +588 -0
  275. scipy/linalg/tests/test_cythonized_array_utils.py +0 -2
  276. scipy/linalg/tests/test_decomp.py +40 -3
  277. scipy/linalg/tests/test_decomp_cossin.py +14 -0
  278. scipy/linalg/tests/test_decomp_ldl.py +1 -1
  279. scipy/linalg/tests/test_lapack.py +115 -7
  280. scipy/linalg/tests/test_matfuncs.py +157 -102
  281. scipy/linalg/tests/test_procrustes.py +0 -7
  282. scipy/linalg/tests/test_solve_toeplitz.py +1 -1
  283. scipy/linalg/tests/test_special_matrices.py +1 -5
  284. scipy/ndimage/__init__.py +1 -0
  285. scipy/ndimage/_ctest.cp313-win_amd64.dll.a +0 -0
  286. scipy/ndimage/_ctest.cp313-win_amd64.pyd +0 -0
  287. scipy/ndimage/_cytest.cp313-win_amd64.dll.a +0 -0
  288. scipy/ndimage/_cytest.cp313-win_amd64.pyd +0 -0
  289. scipy/ndimage/_delegators.py +8 -2
  290. scipy/ndimage/_filters.py +453 -5
  291. scipy/ndimage/_interpolation.py +36 -6
  292. scipy/ndimage/_measurements.py +4 -2
  293. scipy/ndimage/_morphology.py +5 -0
  294. scipy/ndimage/_nd_image.cp313-win_amd64.dll.a +0 -0
  295. scipy/ndimage/_nd_image.cp313-win_amd64.pyd +0 -0
  296. scipy/ndimage/_ni_docstrings.py +5 -1
  297. scipy/ndimage/_ni_label.cp313-win_amd64.dll.a +0 -0
  298. scipy/ndimage/_ni_label.cp313-win_amd64.pyd +0 -0
  299. scipy/ndimage/_ni_support.py +1 -5
  300. scipy/ndimage/_rank_filter_1d.cp313-win_amd64.dll.a +0 -0
  301. scipy/ndimage/_rank_filter_1d.cp313-win_amd64.pyd +0 -0
  302. scipy/ndimage/_support_alternative_backends.py +18 -6
  303. scipy/ndimage/tests/test_filters.py +370 -259
  304. scipy/ndimage/tests/test_fourier.py +7 -9
  305. scipy/ndimage/tests/test_interpolation.py +68 -61
  306. scipy/ndimage/tests/test_measurements.py +18 -35
  307. scipy/ndimage/tests/test_morphology.py +143 -131
  308. scipy/ndimage/tests/test_splines.py +1 -3
  309. scipy/odr/__odrpack.cp313-win_amd64.dll.a +0 -0
  310. scipy/odr/__odrpack.cp313-win_amd64.pyd +0 -0
  311. scipy/optimize/_basinhopping.py +13 -7
  312. scipy/optimize/_bglu_dense.cp313-win_amd64.dll.a +0 -0
  313. scipy/optimize/_bglu_dense.cp313-win_amd64.pyd +0 -0
  314. scipy/optimize/_bracket.py +17 -24
  315. scipy/optimize/_chandrupatla.py +9 -10
  316. scipy/optimize/_cobyla_py.py +104 -123
  317. scipy/optimize/_constraints.py +14 -10
  318. scipy/optimize/_differentiable_functions.py +371 -230
  319. scipy/optimize/_differentialevolution.py +4 -3
  320. scipy/optimize/_direct.cp313-win_amd64.dll.a +0 -0
  321. scipy/optimize/_direct.cp313-win_amd64.pyd +0 -0
  322. scipy/optimize/_dual_annealing.py +1 -1
  323. scipy/optimize/_elementwise.py +1 -4
  324. scipy/optimize/_group_columns.cp313-win_amd64.dll.a +0 -0
  325. scipy/optimize/_group_columns.cp313-win_amd64.pyd +0 -0
  326. scipy/optimize/_highspy/_core.cp313-win_amd64.dll.a +0 -0
  327. scipy/optimize/_highspy/_core.cp313-win_amd64.pyd +0 -0
  328. scipy/optimize/_highspy/_highs_options.cp313-win_amd64.dll.a +0 -0
  329. scipy/optimize/_highspy/_highs_options.cp313-win_amd64.pyd +0 -0
  330. scipy/optimize/_lbfgsb.cp313-win_amd64.dll.a +0 -0
  331. scipy/optimize/_lbfgsb.cp313-win_amd64.pyd +0 -0
  332. scipy/optimize/_lbfgsb_py.py +57 -16
  333. scipy/optimize/_linprog_doc.py +2 -2
  334. scipy/optimize/_linprog_highs.py +2 -2
  335. scipy/optimize/_linprog_ip.py +25 -10
  336. scipy/optimize/_linprog_util.py +14 -16
  337. scipy/optimize/_lsap.cp313-win_amd64.dll.a +0 -0
  338. scipy/optimize/_lsap.cp313-win_amd64.pyd +0 -0
  339. scipy/optimize/_lsq/common.py +3 -3
  340. scipy/optimize/_lsq/dogbox.py +16 -2
  341. scipy/optimize/_lsq/givens_elimination.cp313-win_amd64.dll.a +0 -0
  342. scipy/optimize/_lsq/givens_elimination.cp313-win_amd64.pyd +0 -0
  343. scipy/optimize/_lsq/least_squares.py +198 -126
  344. scipy/optimize/_lsq/lsq_linear.py +6 -6
  345. scipy/optimize/_lsq/trf.py +35 -8
  346. scipy/optimize/_milp.py +3 -1
  347. scipy/optimize/_minimize.py +105 -36
  348. scipy/optimize/_minpack.cp313-win_amd64.dll.a +0 -0
  349. scipy/optimize/_minpack.cp313-win_amd64.pyd +0 -0
  350. scipy/optimize/_minpack_py.py +21 -14
  351. scipy/optimize/_moduleTNC.cp313-win_amd64.dll.a +0 -0
  352. scipy/optimize/_moduleTNC.cp313-win_amd64.pyd +0 -0
  353. scipy/optimize/_nnls.py +20 -21
  354. scipy/optimize/_nonlin.py +34 -3
  355. scipy/optimize/_numdiff.py +288 -110
  356. scipy/optimize/_optimize.py +86 -48
  357. scipy/optimize/_pava_pybind.cp313-win_amd64.dll.a +0 -0
  358. scipy/optimize/_pava_pybind.cp313-win_amd64.pyd +0 -0
  359. scipy/optimize/_remove_redundancy.py +5 -5
  360. scipy/optimize/_root_scalar.py +1 -1
  361. scipy/optimize/_shgo.py +6 -0
  362. scipy/optimize/_shgo_lib/_complex.py +1 -1
  363. scipy/optimize/_slsqp_py.py +216 -124
  364. scipy/optimize/_slsqplib.cp313-win_amd64.dll.a +0 -0
  365. scipy/optimize/_slsqplib.cp313-win_amd64.pyd +0 -0
  366. scipy/optimize/_spectral.py +1 -1
  367. scipy/optimize/_tnc.py +8 -1
  368. scipy/optimize/_trlib/_trlib.cp313-win_amd64.dll.a +0 -0
  369. scipy/optimize/_trlib/_trlib.cp313-win_amd64.pyd +0 -0
  370. scipy/optimize/_trustregion.py +20 -6
  371. scipy/optimize/_trustregion_constr/canonical_constraint.py +7 -7
  372. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +1 -1
  373. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +11 -3
  374. scipy/optimize/_trustregion_constr/projections.py +12 -8
  375. scipy/optimize/_trustregion_constr/qp_subproblem.py +9 -9
  376. scipy/optimize/_trustregion_constr/tests/test_projections.py +7 -7
  377. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +77 -77
  378. scipy/optimize/_trustregion_constr/tr_interior_point.py +5 -5
  379. scipy/optimize/_trustregion_exact.py +0 -1
  380. scipy/optimize/_zeros.cp313-win_amd64.dll.a +0 -0
  381. scipy/optimize/_zeros.cp313-win_amd64.pyd +0 -0
  382. scipy/optimize/_zeros_py.py +97 -17
  383. scipy/optimize/cython_optimize/_zeros.cp313-win_amd64.dll.a +0 -0
  384. scipy/optimize/cython_optimize/_zeros.cp313-win_amd64.pyd +0 -0
  385. scipy/optimize/slsqp.py +0 -1
  386. scipy/optimize/tests/test__basinhopping.py +1 -1
  387. scipy/optimize/tests/test__differential_evolution.py +4 -4
  388. scipy/optimize/tests/test__linprog_clean_inputs.py +5 -3
  389. scipy/optimize/tests/test__numdiff.py +66 -22
  390. scipy/optimize/tests/test__remove_redundancy.py +2 -2
  391. scipy/optimize/tests/test__shgo.py +9 -1
  392. scipy/optimize/tests/test_bracket.py +36 -46
  393. scipy/optimize/tests/test_chandrupatla.py +133 -135
  394. scipy/optimize/tests/test_cobyla.py +74 -45
  395. scipy/optimize/tests/test_constraints.py +1 -1
  396. scipy/optimize/tests/test_differentiable_functions.py +226 -6
  397. scipy/optimize/tests/test_lbfgsb_hessinv.py +22 -0
  398. scipy/optimize/tests/test_least_squares.py +125 -13
  399. scipy/optimize/tests/test_linear_assignment.py +3 -3
  400. scipy/optimize/tests/test_linprog.py +3 -3
  401. scipy/optimize/tests/test_lsq_linear.py +6 -6
  402. scipy/optimize/tests/test_minimize_constrained.py +2 -2
  403. scipy/optimize/tests/test_minpack.py +4 -4
  404. scipy/optimize/tests/test_nnls.py +43 -3
  405. scipy/optimize/tests/test_nonlin.py +36 -0
  406. scipy/optimize/tests/test_optimize.py +95 -17
  407. scipy/optimize/tests/test_slsqp.py +36 -4
  408. scipy/optimize/tests/test_zeros.py +34 -1
  409. scipy/signal/__init__.py +12 -23
  410. scipy/signal/_delegators.py +568 -0
  411. scipy/signal/_filter_design.py +459 -241
  412. scipy/signal/_fir_filter_design.py +262 -90
  413. scipy/signal/_lti_conversion.py +3 -2
  414. scipy/signal/_ltisys.py +118 -91
  415. scipy/signal/_max_len_seq_inner.cp313-win_amd64.dll.a +0 -0
  416. scipy/signal/_max_len_seq_inner.cp313-win_amd64.pyd +0 -0
  417. scipy/signal/_peak_finding_utils.cp313-win_amd64.dll.a +0 -0
  418. scipy/signal/_peak_finding_utils.cp313-win_amd64.pyd +0 -0
  419. scipy/signal/_polyutils.py +172 -0
  420. scipy/signal/_short_time_fft.py +519 -70
  421. scipy/signal/_signal_api.py +30 -0
  422. scipy/signal/_signaltools.py +719 -399
  423. scipy/signal/_sigtools.cp313-win_amd64.dll.a +0 -0
  424. scipy/signal/_sigtools.cp313-win_amd64.pyd +0 -0
  425. scipy/signal/_sosfilt.cp313-win_amd64.dll.a +0 -0
  426. scipy/signal/_sosfilt.cp313-win_amd64.pyd +0 -0
  427. scipy/signal/_spectral_py.py +230 -50
  428. scipy/signal/_spline.cp313-win_amd64.dll.a +0 -0
  429. scipy/signal/_spline.cp313-win_amd64.pyd +0 -0
  430. scipy/signal/_spline_filters.py +108 -68
  431. scipy/signal/_support_alternative_backends.py +73 -0
  432. scipy/signal/_upfirdn.py +4 -1
  433. scipy/signal/_upfirdn_apply.cp313-win_amd64.dll.a +0 -0
  434. scipy/signal/_upfirdn_apply.cp313-win_amd64.pyd +0 -0
  435. scipy/signal/_waveforms.py +2 -11
  436. scipy/signal/_wavelets.py +1 -1
  437. scipy/signal/fir_filter_design.py +1 -0
  438. scipy/signal/spline.py +4 -11
  439. scipy/signal/tests/_scipy_spectral_test_shim.py +2 -171
  440. scipy/signal/tests/test_bsplines.py +114 -79
  441. scipy/signal/tests/test_cont2discrete.py +9 -2
  442. scipy/signal/tests/test_filter_design.py +721 -481
  443. scipy/signal/tests/test_fir_filter_design.py +332 -140
  444. scipy/signal/tests/test_savitzky_golay.py +4 -3
  445. scipy/signal/tests/test_short_time_fft.py +221 -3
  446. scipy/signal/tests/test_signaltools.py +2144 -1348
  447. scipy/signal/tests/test_spectral.py +50 -6
  448. scipy/signal/tests/test_splines.py +161 -96
  449. scipy/signal/tests/test_upfirdn.py +84 -50
  450. scipy/signal/tests/test_waveforms.py +20 -0
  451. scipy/signal/tests/test_windows.py +607 -466
  452. scipy/signal/windows/_windows.py +287 -148
  453. scipy/sparse/__init__.py +23 -4
  454. scipy/sparse/_base.py +270 -108
  455. scipy/sparse/_bsr.py +7 -4
  456. scipy/sparse/_compressed.py +59 -231
  457. scipy/sparse/_construct.py +90 -38
  458. scipy/sparse/_coo.py +115 -181
  459. scipy/sparse/_csc.py +4 -4
  460. scipy/sparse/_csparsetools.cp313-win_amd64.dll.a +0 -0
  461. scipy/sparse/_csparsetools.cp313-win_amd64.pyd +0 -0
  462. scipy/sparse/_csr.py +2 -2
  463. scipy/sparse/_data.py +48 -48
  464. scipy/sparse/_dia.py +105 -18
  465. scipy/sparse/_dok.py +0 -23
  466. scipy/sparse/_index.py +4 -4
  467. scipy/sparse/_matrix.py +23 -0
  468. scipy/sparse/_sparsetools.cp313-win_amd64.dll.a +0 -0
  469. scipy/sparse/_sparsetools.cp313-win_amd64.pyd +0 -0
  470. scipy/sparse/_sputils.py +37 -22
  471. scipy/sparse/base.py +0 -9
  472. scipy/sparse/bsr.py +0 -14
  473. scipy/sparse/compressed.py +0 -23
  474. scipy/sparse/construct.py +0 -6
  475. scipy/sparse/coo.py +0 -14
  476. scipy/sparse/csc.py +0 -3
  477. scipy/sparse/csgraph/_flow.cp313-win_amd64.dll.a +0 -0
  478. scipy/sparse/csgraph/_flow.cp313-win_amd64.pyd +0 -0
  479. scipy/sparse/csgraph/_matching.cp313-win_amd64.dll.a +0 -0
  480. scipy/sparse/csgraph/_matching.cp313-win_amd64.pyd +0 -0
  481. scipy/sparse/csgraph/_min_spanning_tree.cp313-win_amd64.dll.a +0 -0
  482. scipy/sparse/csgraph/_min_spanning_tree.cp313-win_amd64.pyd +0 -0
  483. scipy/sparse/csgraph/_reordering.cp313-win_amd64.dll.a +0 -0
  484. scipy/sparse/csgraph/_reordering.cp313-win_amd64.pyd +0 -0
  485. scipy/sparse/csgraph/_shortest_path.cp313-win_amd64.dll.a +0 -0
  486. scipy/sparse/csgraph/_shortest_path.cp313-win_amd64.pyd +0 -0
  487. scipy/sparse/csgraph/_tools.cp313-win_amd64.dll.a +0 -0
  488. scipy/sparse/csgraph/_tools.cp313-win_amd64.pyd +0 -0
  489. scipy/sparse/csgraph/_traversal.cp313-win_amd64.dll.a +0 -0
  490. scipy/sparse/csgraph/_traversal.cp313-win_amd64.pyd +0 -0
  491. scipy/sparse/csgraph/tests/test_matching.py +14 -2
  492. scipy/sparse/csgraph/tests/test_pydata_sparse.py +4 -1
  493. scipy/sparse/csgraph/tests/test_shortest_path.py +83 -27
  494. scipy/sparse/csr.py +0 -5
  495. scipy/sparse/data.py +1 -6
  496. scipy/sparse/dia.py +0 -7
  497. scipy/sparse/dok.py +0 -10
  498. scipy/sparse/linalg/_dsolve/_superlu.cp313-win_amd64.dll.a +0 -0
  499. scipy/sparse/linalg/_dsolve/_superlu.cp313-win_amd64.pyd +0 -0
  500. scipy/sparse/linalg/_dsolve/linsolve.py +9 -0
  501. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +35 -28
  502. scipy/sparse/linalg/_eigen/arpack/_arpack.cp313-win_amd64.dll.a +0 -0
  503. scipy/sparse/linalg/_eigen/arpack/_arpack.cp313-win_amd64.pyd +0 -0
  504. scipy/sparse/linalg/_eigen/arpack/arpack.py +23 -17
  505. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +6 -6
  506. scipy/sparse/linalg/_interface.py +17 -18
  507. scipy/sparse/linalg/_isolve/_gcrotmk.py +4 -4
  508. scipy/sparse/linalg/_isolve/iterative.py +51 -45
  509. scipy/sparse/linalg/_isolve/lgmres.py +6 -6
  510. scipy/sparse/linalg/_isolve/minres.py +5 -5
  511. scipy/sparse/linalg/_isolve/tfqmr.py +7 -7
  512. scipy/sparse/linalg/_isolve/utils.py +2 -8
  513. scipy/sparse/linalg/_matfuncs.py +1 -1
  514. scipy/sparse/linalg/_norm.py +1 -1
  515. scipy/sparse/linalg/_propack/_cpropack.cp313-win_amd64.dll.a +0 -0
  516. scipy/sparse/linalg/_propack/_cpropack.cp313-win_amd64.pyd +0 -0
  517. scipy/sparse/linalg/_propack/_dpropack.cp313-win_amd64.dll.a +0 -0
  518. scipy/sparse/linalg/_propack/_dpropack.cp313-win_amd64.pyd +0 -0
  519. scipy/sparse/linalg/_propack/_spropack.cp313-win_amd64.dll.a +0 -0
  520. scipy/sparse/linalg/_propack/_spropack.cp313-win_amd64.pyd +0 -0
  521. scipy/sparse/linalg/_propack/_zpropack.cp313-win_amd64.dll.a +0 -0
  522. scipy/sparse/linalg/_propack/_zpropack.cp313-win_amd64.pyd +0 -0
  523. scipy/sparse/linalg/_special_sparse_arrays.py +39 -38
  524. scipy/sparse/linalg/tests/test_pydata_sparse.py +14 -0
  525. scipy/sparse/tests/test_arithmetic1d.py +5 -2
  526. scipy/sparse/tests/test_base.py +214 -42
  527. scipy/sparse/tests/test_common1d.py +7 -7
  528. scipy/sparse/tests/test_construct.py +1 -1
  529. scipy/sparse/tests/test_coo.py +272 -4
  530. scipy/sparse/tests/test_sparsetools.py +5 -0
  531. scipy/sparse/tests/test_sputils.py +36 -7
  532. scipy/spatial/_ckdtree.cp313-win_amd64.dll.a +0 -0
  533. scipy/spatial/_ckdtree.cp313-win_amd64.pyd +0 -0
  534. scipy/spatial/_distance_pybind.cp313-win_amd64.dll.a +0 -0
  535. scipy/spatial/_distance_pybind.cp313-win_amd64.pyd +0 -0
  536. scipy/spatial/_distance_wrap.cp313-win_amd64.dll.a +0 -0
  537. scipy/spatial/_distance_wrap.cp313-win_amd64.pyd +0 -0
  538. scipy/spatial/_hausdorff.cp313-win_amd64.dll.a +0 -0
  539. scipy/spatial/_hausdorff.cp313-win_amd64.pyd +0 -0
  540. scipy/spatial/_qhull.cp313-win_amd64.dll.a +0 -0
  541. scipy/spatial/_qhull.cp313-win_amd64.pyd +0 -0
  542. scipy/spatial/_voronoi.cp313-win_amd64.dll.a +0 -0
  543. scipy/spatial/_voronoi.cp313-win_amd64.pyd +0 -0
  544. scipy/spatial/distance.py +49 -42
  545. scipy/spatial/tests/test_distance.py +15 -1
  546. scipy/spatial/tests/test_kdtree.py +1 -0
  547. scipy/spatial/tests/test_qhull.py +7 -2
  548. scipy/spatial/transform/__init__.py +5 -3
  549. scipy/spatial/transform/_rigid_transform.cp313-win_amd64.dll.a +0 -0
  550. scipy/spatial/transform/_rigid_transform.cp313-win_amd64.pyd +0 -0
  551. scipy/spatial/transform/_rotation.cp313-win_amd64.dll.a +0 -0
  552. scipy/spatial/transform/_rotation.cp313-win_amd64.pyd +0 -0
  553. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  554. scipy/spatial/transform/tests/test_rotation.py +1213 -832
  555. scipy/spatial/transform/tests/test_rotation_groups.py +3 -3
  556. scipy/spatial/transform/tests/test_rotation_spline.py +29 -8
  557. scipy/special/__init__.py +1 -47
  558. scipy/special/_add_newdocs.py +34 -772
  559. scipy/special/_basic.py +22 -25
  560. scipy/special/_comb.cp313-win_amd64.dll.a +0 -0
  561. scipy/special/_comb.cp313-win_amd64.pyd +0 -0
  562. scipy/special/_ellip_harm_2.cp313-win_amd64.dll.a +0 -0
  563. scipy/special/_ellip_harm_2.cp313-win_amd64.pyd +0 -0
  564. scipy/special/_gufuncs.cp313-win_amd64.dll.a +0 -0
  565. scipy/special/_gufuncs.cp313-win_amd64.pyd +0 -0
  566. scipy/special/_logsumexp.py +67 -58
  567. scipy/special/_orthogonal.pyi +1 -1
  568. scipy/special/_specfun.cp313-win_amd64.dll.a +0 -0
  569. scipy/special/_specfun.cp313-win_amd64.pyd +0 -0
  570. scipy/special/_special_ufuncs.cp313-win_amd64.dll.a +0 -0
  571. scipy/special/_special_ufuncs.cp313-win_amd64.pyd +0 -0
  572. scipy/special/_spherical_bessel.py +4 -4
  573. scipy/special/_support_alternative_backends.py +212 -119
  574. scipy/special/_test_internal.cp313-win_amd64.dll.a +0 -0
  575. scipy/special/_test_internal.cp313-win_amd64.pyd +0 -0
  576. scipy/special/_testutils.py +4 -4
  577. scipy/special/_ufuncs.cp313-win_amd64.dll.a +0 -0
  578. scipy/special/_ufuncs.cp313-win_amd64.pyd +0 -0
  579. scipy/special/_ufuncs.pyi +1 -0
  580. scipy/special/_ufuncs.pyx +215 -1400
  581. scipy/special/_ufuncs_cxx.cp313-win_amd64.dll.a +0 -0
  582. scipy/special/_ufuncs_cxx.cp313-win_amd64.pyd +0 -0
  583. scipy/special/_ufuncs_cxx.pxd +2 -15
  584. scipy/special/_ufuncs_cxx.pyx +5 -44
  585. scipy/special/_ufuncs_cxx_defs.h +2 -16
  586. scipy/special/_ufuncs_defs.h +0 -8
  587. scipy/special/cython_special.cp313-win_amd64.dll.a +0 -0
  588. scipy/special/cython_special.cp313-win_amd64.pyd +0 -0
  589. scipy/special/cython_special.pxd +1 -1
  590. scipy/special/tests/_cython_examples/meson.build +10 -1
  591. scipy/special/tests/test_basic.py +153 -20
  592. scipy/special/tests/test_boost_ufuncs.py +3 -0
  593. scipy/special/tests/test_cdflib.py +35 -11
  594. scipy/special/tests/test_gammainc.py +16 -0
  595. scipy/special/tests/test_hyp2f1.py +2 -2
  596. scipy/special/tests/test_log1mexp.py +85 -0
  597. scipy/special/tests/test_logsumexp.py +206 -64
  598. scipy/special/tests/test_mpmath.py +1 -0
  599. scipy/special/tests/test_nan_inputs.py +1 -1
  600. scipy/special/tests/test_orthogonal.py +17 -18
  601. scipy/special/tests/test_sf_error.py +3 -2
  602. scipy/special/tests/test_sph_harm.py +6 -7
  603. scipy/special/tests/test_support_alternative_backends.py +211 -76
  604. scipy/stats/__init__.py +4 -1
  605. scipy/stats/_ansari_swilk_statistics.cp313-win_amd64.dll.a +0 -0
  606. scipy/stats/_ansari_swilk_statistics.cp313-win_amd64.pyd +0 -0
  607. scipy/stats/_axis_nan_policy.py +5 -12
  608. scipy/stats/_biasedurn.cp313-win_amd64.dll.a +0 -0
  609. scipy/stats/_biasedurn.cp313-win_amd64.pyd +0 -0
  610. scipy/stats/_continued_fraction.py +387 -0
  611. scipy/stats/_continuous_distns.py +277 -310
  612. scipy/stats/_correlation.py +1 -1
  613. scipy/stats/_covariance.py +6 -3
  614. scipy/stats/_discrete_distns.py +39 -32
  615. scipy/stats/_distn_infrastructure.py +39 -12
  616. scipy/stats/_distribution_infrastructure.py +900 -238
  617. scipy/stats/_entropy.py +9 -10
  618. scipy/{_lib → stats}/_finite_differences.py +1 -1
  619. scipy/stats/_hypotests.py +83 -50
  620. scipy/stats/_kde.py +53 -49
  621. scipy/stats/_ksstats.py +1 -1
  622. scipy/stats/_levy_stable/__init__.py +7 -15
  623. scipy/stats/_levy_stable/levyst.cp313-win_amd64.dll.a +0 -0
  624. scipy/stats/_levy_stable/levyst.cp313-win_amd64.pyd +0 -0
  625. scipy/stats/_morestats.py +118 -73
  626. scipy/stats/_mstats_basic.py +13 -17
  627. scipy/stats/_mstats_extras.py +8 -8
  628. scipy/stats/_multivariate.py +89 -113
  629. scipy/stats/_new_distributions.py +97 -20
  630. scipy/stats/_page_trend_test.py +12 -5
  631. scipy/stats/_probability_distribution.py +265 -43
  632. scipy/stats/_qmc.py +14 -9
  633. scipy/stats/_qmc_cy.cp313-win_amd64.dll.a +0 -0
  634. scipy/stats/_qmc_cy.cp313-win_amd64.pyd +0 -0
  635. scipy/stats/_qmvnt.py +16 -95
  636. scipy/stats/_qmvnt_cy.cp313-win_amd64.dll.a +0 -0
  637. scipy/stats/_qmvnt_cy.cp313-win_amd64.pyd +0 -0
  638. scipy/stats/_quantile.py +335 -0
  639. scipy/stats/_rcont/rcont.cp313-win_amd64.dll.a +0 -0
  640. scipy/stats/_rcont/rcont.cp313-win_amd64.pyd +0 -0
  641. scipy/stats/_resampling.py +4 -29
  642. scipy/stats/_sampling.py +1 -1
  643. scipy/stats/_sobol.cp313-win_amd64.dll.a +0 -0
  644. scipy/stats/_sobol.cp313-win_amd64.pyd +0 -0
  645. scipy/stats/_stats.cp313-win_amd64.dll.a +0 -0
  646. scipy/stats/_stats.cp313-win_amd64.pyd +0 -0
  647. scipy/stats/_stats_mstats_common.py +21 -2
  648. scipy/stats/_stats_py.py +550 -476
  649. scipy/stats/_stats_pythran.cp313-win_amd64.dll.a +0 -0
  650. scipy/stats/_stats_pythran.cp313-win_amd64.pyd +0 -0
  651. scipy/stats/_unuran/unuran_wrapper.cp313-win_amd64.dll.a +0 -0
  652. scipy/stats/_unuran/unuran_wrapper.cp313-win_amd64.pyd +0 -0
  653. scipy/stats/_unuran/unuran_wrapper.pyi +2 -1
  654. scipy/stats/_variation.py +6 -8
  655. scipy/stats/_wilcoxon.py +13 -7
  656. scipy/stats/tests/common_tests.py +6 -4
  657. scipy/stats/tests/test_axis_nan_policy.py +62 -24
  658. scipy/stats/tests/test_continued_fraction.py +173 -0
  659. scipy/stats/tests/test_continuous.py +379 -60
  660. scipy/stats/tests/test_continuous_basic.py +18 -12
  661. scipy/stats/tests/test_discrete_basic.py +14 -8
  662. scipy/stats/tests/test_discrete_distns.py +16 -16
  663. scipy/stats/tests/test_distributions.py +95 -75
  664. scipy/stats/tests/test_entropy.py +40 -48
  665. scipy/stats/tests/test_fit.py +4 -3
  666. scipy/stats/tests/test_hypotests.py +153 -24
  667. scipy/stats/tests/test_kdeoth.py +109 -41
  668. scipy/stats/tests/test_marray.py +289 -0
  669. scipy/stats/tests/test_morestats.py +79 -47
  670. scipy/stats/tests/test_mstats_basic.py +3 -3
  671. scipy/stats/tests/test_multivariate.py +434 -83
  672. scipy/stats/tests/test_qmc.py +13 -10
  673. scipy/stats/tests/test_quantile.py +199 -0
  674. scipy/stats/tests/test_rank.py +119 -112
  675. scipy/stats/tests/test_resampling.py +47 -56
  676. scipy/stats/tests/test_sampling.py +9 -4
  677. scipy/stats/tests/test_stats.py +799 -939
  678. scipy/stats/tests/test_variation.py +8 -6
  679. scipy/version.py +2 -2
  680. scipy-1.16.0rc2.dist-info/DELVEWHEEL +2 -0
  681. {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/LICENSE.txt +4 -4
  682. {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/METADATA +11 -11
  683. {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/RECORD +685 -693
  684. scipy/_lib/array_api_extra/_funcs.py +0 -484
  685. scipy/_lib/array_api_extra/_typing.py +0 -8
  686. scipy/interpolate/_bspl.cp313-win_amd64.dll.a +0 -0
  687. scipy/interpolate/_bspl.cp313-win_amd64.pyd +0 -0
  688. scipy/optimize/_cobyla.cp313-win_amd64.dll.a +0 -0
  689. scipy/optimize/_cobyla.cp313-win_amd64.pyd +0 -0
  690. scipy/optimize/_cython_nnls.cp313-win_amd64.dll.a +0 -0
  691. scipy/optimize/_cython_nnls.cp313-win_amd64.pyd +0 -0
  692. scipy/optimize/_slsqp.cp313-win_amd64.dll.a +0 -0
  693. scipy/optimize/_slsqp.cp313-win_amd64.pyd +0 -0
  694. scipy/spatial/qhull_src/COPYING.txt +0 -38
  695. scipy/special/libsf_error_state.dll +0 -0
  696. scipy/special/libsf_error_state.dll.a +0 -0
  697. scipy/special/tests/test_log_softmax.py +0 -109
  698. scipy/special/tests/test_xsf_cuda.py +0 -114
  699. scipy/special/xsf/binom.h +0 -89
  700. scipy/special/xsf/cdflib.h +0 -100
  701. scipy/special/xsf/cephes/airy.h +0 -307
  702. scipy/special/xsf/cephes/besselpoly.h +0 -51
  703. scipy/special/xsf/cephes/beta.h +0 -257
  704. scipy/special/xsf/cephes/cbrt.h +0 -131
  705. scipy/special/xsf/cephes/chbevl.h +0 -85
  706. scipy/special/xsf/cephes/chdtr.h +0 -193
  707. scipy/special/xsf/cephes/const.h +0 -87
  708. scipy/special/xsf/cephes/ellie.h +0 -293
  709. scipy/special/xsf/cephes/ellik.h +0 -251
  710. scipy/special/xsf/cephes/ellpe.h +0 -107
  711. scipy/special/xsf/cephes/ellpk.h +0 -117
  712. scipy/special/xsf/cephes/expn.h +0 -260
  713. scipy/special/xsf/cephes/gamma.h +0 -398
  714. scipy/special/xsf/cephes/hyp2f1.h +0 -596
  715. scipy/special/xsf/cephes/hyperg.h +0 -361
  716. scipy/special/xsf/cephes/i0.h +0 -149
  717. scipy/special/xsf/cephes/i1.h +0 -158
  718. scipy/special/xsf/cephes/igam.h +0 -421
  719. scipy/special/xsf/cephes/igam_asymp_coeff.h +0 -195
  720. scipy/special/xsf/cephes/igami.h +0 -313
  721. scipy/special/xsf/cephes/j0.h +0 -225
  722. scipy/special/xsf/cephes/j1.h +0 -198
  723. scipy/special/xsf/cephes/jv.h +0 -715
  724. scipy/special/xsf/cephes/k0.h +0 -164
  725. scipy/special/xsf/cephes/k1.h +0 -163
  726. scipy/special/xsf/cephes/kn.h +0 -243
  727. scipy/special/xsf/cephes/lanczos.h +0 -112
  728. scipy/special/xsf/cephes/ndtr.h +0 -275
  729. scipy/special/xsf/cephes/poch.h +0 -85
  730. scipy/special/xsf/cephes/polevl.h +0 -167
  731. scipy/special/xsf/cephes/psi.h +0 -194
  732. scipy/special/xsf/cephes/rgamma.h +0 -111
  733. scipy/special/xsf/cephes/scipy_iv.h +0 -811
  734. scipy/special/xsf/cephes/shichi.h +0 -248
  735. scipy/special/xsf/cephes/sici.h +0 -224
  736. scipy/special/xsf/cephes/sindg.h +0 -221
  737. scipy/special/xsf/cephes/tandg.h +0 -139
  738. scipy/special/xsf/cephes/trig.h +0 -58
  739. scipy/special/xsf/cephes/unity.h +0 -186
  740. scipy/special/xsf/cephes/zeta.h +0 -172
  741. scipy/special/xsf/config.h +0 -304
  742. scipy/special/xsf/digamma.h +0 -205
  743. scipy/special/xsf/error.h +0 -57
  744. scipy/special/xsf/evalpoly.h +0 -47
  745. scipy/special/xsf/expint.h +0 -266
  746. scipy/special/xsf/hyp2f1.h +0 -694
  747. scipy/special/xsf/iv_ratio.h +0 -173
  748. scipy/special/xsf/lambertw.h +0 -150
  749. scipy/special/xsf/loggamma.h +0 -163
  750. scipy/special/xsf/sici.h +0 -200
  751. scipy/special/xsf/tools.h +0 -427
  752. scipy/special/xsf/trig.h +0 -164
  753. scipy/special/xsf/wright_bessel.h +0 -843
  754. scipy/special/xsf/zlog1.h +0 -35
  755. scipy/stats/_mvn.cp313-win_amd64.dll.a +0 -0
  756. scipy/stats/_mvn.cp313-win_amd64.pyd +0 -0
  757. scipy-1.15.3.dist-info/DELVEWHEEL +0 -2
  758. /scipy-1.15.3-cp313-cp313-win_amd64.whl → /scipy-1.16.0rc2-cp313-cp313-win_amd64.whl +0 -0
  759. {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/WHEEL +0 -0
@@ -10,7 +10,7 @@ __all__ = ['minres']
10
10
  def minres(A, b, x0=None, *, rtol=1e-5, shift=0.0, maxiter=None,
11
11
  M=None, callback=None, show=False, check=False):
12
12
  """
13
- Use MINimum RESidual iteration to solve Ax=b
13
+ Solve ``Ax = b`` with the MINimum RESidual method, for a symmetric `A`.
14
14
 
15
15
  MINRES minimizes norm(Ax - b) for a real symmetric matrix A. Unlike
16
16
  the Conjugate Gradient method, A can be indefinite or singular.
@@ -89,7 +89,7 @@ def minres(A, b, x0=None, *, rtol=1e-5, shift=0.0, maxiter=None,
89
89
  https://web.stanford.edu/group/SOL/software/minres/minres-matlab.zip
90
90
 
91
91
  """
92
- A, M, x, b, postprocess = make_system(A, M, x0, b)
92
+ A, M, x, b = make_system(A, M, x0, b)
93
93
 
94
94
  matvec = A.matvec
95
95
  psolve = M.matvec
@@ -146,12 +146,12 @@ def minres(A, b, x0=None, *, rtol=1e-5, shift=0.0, maxiter=None,
146
146
  if beta1 < 0:
147
147
  raise ValueError('indefinite preconditioner')
148
148
  elif beta1 == 0:
149
- return (postprocess(x), 0)
149
+ return (x, 0)
150
150
 
151
151
  bnorm = norm(b)
152
152
  if bnorm == 0:
153
153
  x = b
154
- return (postprocess(x), 0)
154
+ return (x, 0)
155
155
 
156
156
  beta1 = sqrt(beta1)
157
157
 
@@ -369,4 +369,4 @@ def minres(A, b, x0=None, *, rtol=1e-5, shift=0.0, maxiter=None,
369
369
  else:
370
370
  info = 0
371
371
 
372
- return (postprocess(x),info)
372
+ return (x,info)
@@ -9,7 +9,7 @@ __all__ = ['tfqmr']
9
9
  def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
10
10
  callback=None, show=False):
11
11
  """
12
- Use Transpose-Free Quasi-Minimal Residual iteration to solve ``Ax = b``.
12
+ Solve ``Ax = b`` with the Transpose-Free Quasi-Minimal Residual method.
13
13
 
14
14
  Parameters
15
15
  ----------
@@ -97,12 +97,12 @@ def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
97
97
  if np.issubdtype(b.dtype, np.int64):
98
98
  b = b.astype(dtype)
99
99
 
100
- A, M, x, b, postprocess = make_system(A, M, x0, b)
100
+ A, M, x, b = make_system(A, M, x0, b)
101
101
 
102
102
  # Check if the R.H.S is a zero vector
103
103
  if np.linalg.norm(b) == 0.:
104
104
  x = b.copy()
105
- return (postprocess(x), 0)
105
+ return (x, 0)
106
106
 
107
107
  ndofs = A.shape[0]
108
108
  if maxiter is None:
@@ -125,7 +125,7 @@ def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
125
125
  r0norm = np.sqrt(rho)
126
126
  tau = r0norm
127
127
  if r0norm == 0:
128
- return (postprocess(x), 0)
128
+ return (x, 0)
129
129
 
130
130
  # we call this to get the right atol and raise errors as necessary
131
131
  atol, _ = _get_atol_rtol('tfqmr', r0norm, atol, rtol)
@@ -136,7 +136,7 @@ def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
136
136
  vtrstar = np.inner(rstar.conjugate(), v)
137
137
  # Check breakdown
138
138
  if vtrstar == 0.:
139
- return (postprocess(x), -1)
139
+ return (x, -1)
140
140
  alpha = rho / vtrstar
141
141
  uNext = u - alpha * v # [1]-(5.6)
142
142
  w -= alpha * uhat # [1]-(5.8)
@@ -158,7 +158,7 @@ def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
158
158
  if (show):
159
159
  print("TFQMR: Linear solve converged due to reach TOL "
160
160
  f"iterations {iter+1}")
161
- return (postprocess(x), 0)
161
+ return (x, 0)
162
162
 
163
163
  if (not even):
164
164
  # [1]-(5.7)
@@ -176,4 +176,4 @@ def tfqmr(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=None, M=None,
176
176
  if (show):
177
177
  print("TFQMR: Linear solve not converged due to reach MAXIT "
178
178
  f"iterations {iter+1}")
179
- return (postprocess(x), maxiter)
179
+ return (x, maxiter)
@@ -47,7 +47,7 @@ def make_system(A, M, x0, b):
47
47
 
48
48
  Returns
49
49
  -------
50
- (A, M, x, b, postprocess)
50
+ (A, M, x, b)
51
51
  A : LinearOperator
52
52
  matrix of the linear system
53
53
  M : LinearOperator
@@ -56,9 +56,6 @@ def make_system(A, M, x0, b):
56
56
  initial guess
57
57
  b : rank 1 ndarray
58
58
  right hand side
59
- postprocess : function
60
- converts the solution vector to the appropriate
61
- type and dimensions (e.g. (N,1) matrix)
62
59
 
63
60
  """
64
61
  A_ = A
@@ -78,9 +75,6 @@ def make_system(A, M, x0, b):
78
75
  if b.dtype.char not in 'fdFD':
79
76
  b = b.astype('d') # upcast non-FP types to double
80
77
 
81
- def postprocess(x):
82
- return x
83
-
84
78
  if hasattr(A,'dtype'):
85
79
  xtype = A.dtype.char
86
80
  else:
@@ -124,4 +118,4 @@ def make_system(A, M, x0, b):
124
118
  f'x0 {x.shape} are incompatible')
125
119
  x = x.ravel()
126
120
 
127
- return A, M, x, b, postprocess
121
+ return A, M, x, b
@@ -596,7 +596,7 @@ def _expm(A, use_exact_onenorm):
596
596
  # algorithms.
597
597
 
598
598
  # Avoid indiscriminate asarray() to allow sparse or other strange arrays.
599
- if isinstance(A, (list, tuple, np.matrix)):
599
+ if isinstance(A, list | tuple | np.matrix):
600
600
  A = np.asarray(A)
601
601
  if len(A.shape) != 2 or A.shape[0] != A.shape[1]:
602
602
  raise ValueError('expected a square matrix')
@@ -107,7 +107,7 @@ def norm(x, ord=None, axis=None):
107
107
  The matrix 2-norm or the spectral norm is the largest singular
108
108
  value, computed approximately and with limitations.
109
109
 
110
- >>> b = diags_array([-1, 1], [0, 1], shape=(9, 10))
110
+ >>> b = diags_array([-1, 1], offsets=[0, 1], shape=(9, 10))
111
111
  >>> norm(b, 2)
112
112
  1.9753...
113
113
  """
@@ -1,6 +1,6 @@
1
1
  import numpy as np
2
2
  from scipy.sparse.linalg import LinearOperator
3
- from scipy.sparse import kron, eye, dia_array
3
+ from scipy.sparse import kron, eye_array, dia_array
4
4
 
5
5
  __all__ = ['LaplacianNd']
6
6
  # Sakurai and Mikota classes are intended for tests and benchmarks
@@ -71,7 +71,7 @@ of_the_second_derivative
71
71
  --------
72
72
  >>> import numpy as np
73
73
  >>> from scipy.sparse.linalg import LaplacianNd
74
- >>> from scipy.sparse import diags, csgraph
74
+ >>> from scipy.sparse import diags_array, csgraph
75
75
  >>> from scipy.linalg import eigvalsh
76
76
 
77
77
  The one-dimensional Laplacian demonstrated below for pure Neumann boundary
@@ -81,7 +81,7 @@ of_the_second_derivative
81
81
  famous tri-diagonal matrix:
82
82
 
83
83
  >>> n = 6
84
- >>> G = diags(np.ones(n - 1), 1, format='csr')
84
+ >>> G = diags_array(np.ones(n - 1), offsets=1, format='csr')
85
85
  >>> Lf = csgraph.laplacian(G, symmetrized=True, form='function')
86
86
  >>> grid_shape = (n, )
87
87
  >>> lap = LaplacianNd(grid_shape, boundary_conditions='neumann')
@@ -107,7 +107,7 @@ of_the_second_derivative
107
107
  True
108
108
 
109
109
  Any number of extreme eigenvalues and/or eigenvectors can be computed.
110
-
110
+
111
111
  >>> lap = LaplacianNd(grid_shape, boundary_conditions='periodic')
112
112
  >>> lap.eigenvalues()
113
113
  array([-4., -3., -3., -1., -1., 0.])
@@ -292,13 +292,13 @@ of_the_second_derivative
292
292
 
293
293
  def eigenvalues(self, m=None):
294
294
  """Return the requested number of eigenvalues.
295
-
295
+
296
296
  Parameters
297
297
  ----------
298
298
  m : int, optional
299
299
  The positive number of smallest eigenvalues to return.
300
300
  If not provided, then all eigenvalues will be returned.
301
-
301
+
302
302
  Returns
303
303
  -------
304
304
  eigenvalues : float array
@@ -309,7 +309,7 @@ of_the_second_derivative
309
309
 
310
310
  def _ev1d(self, j, n):
311
311
  """Return 1 eigenvector in 1d with index `j`
312
- and number of grid points `n` where ``j < n``.
312
+ and number of grid points `n` where ``j < n``.
313
313
  """
314
314
  if self.boundary_conditions == 'dirichlet':
315
315
  i = np.pi * (np.arange(n) + 1) / (n + 1)
@@ -326,13 +326,13 @@ of_the_second_derivative
326
326
  i = 2. * np.pi * (np.arange(n) + 0.5) / n
327
327
  ev = np.sqrt(2. / n) * np.cos(i * np.floor((j + 1) / 2))
328
328
  # make small values exact zeros correcting round-off errors
329
- # due to symmetry of eigenvectors the exact 0. is correct
329
+ # due to symmetry of eigenvectors the exact 0. is correct
330
330
  ev[np.abs(ev) < np.finfo(np.float64).eps] = 0.
331
331
  return ev
332
332
 
333
333
  def _one_eve(self, k):
334
334
  """Return 1 eigenvector in Nd with multi-index `j`
335
- as a tensor product of the corresponding 1d eigenvectors.
335
+ as a tensor product of the corresponding 1d eigenvectors.
336
336
  """
337
337
  phi = [self._ev1d(j, n) for j, n in zip(k, self.grid_shape)]
338
338
  result = phi[0]
@@ -342,18 +342,18 @@ of_the_second_derivative
342
342
 
343
343
  def eigenvectors(self, m=None):
344
344
  """Return the requested number of eigenvectors for ordered eigenvalues.
345
-
345
+
346
346
  Parameters
347
347
  ----------
348
348
  m : int, optional
349
349
  The positive number of eigenvectors to return. If not provided,
350
350
  then all eigenvectors will be returned.
351
-
351
+
352
352
  Returns
353
353
  -------
354
354
  eigenvectors : float array
355
355
  An array with columns made of the requested `m` or all eigenvectors.
356
- The columns are ordered according to the `m` ordered eigenvalues.
356
+ The columns are ordered according to the `m` ordered eigenvalues.
357
357
  """
358
358
  _, ind = self._eigenvalue_ordering(m)
359
359
  if m is None:
@@ -466,9 +466,9 @@ of_the_second_derivative
466
466
  L_i += t
467
467
 
468
468
  for j in range(i):
469
- L_i = kron(eye(self.grid_shape[j], dtype=np.int8), L_i)
469
+ L_i = kron(eye_array(self.grid_shape[j], dtype=np.int8), L_i)
470
470
  for j in range(i + 1, N):
471
- L_i = kron(L_i, eye(self.grid_shape[j], dtype=np.int8))
471
+ L_i = kron(L_i, eye_array(self.grid_shape[j], dtype=np.int8))
472
472
  L += L_i
473
473
  return L.astype(self.dtype)
474
474
 
@@ -556,7 +556,7 @@ class Sakurai(LinearOperator):
556
556
  `A` and `B` where `A` is the identity so we turn it into an eigenproblem
557
557
  just for the matrix `B` that this function outputs in various formats
558
558
  together with its eigenvalues.
559
-
559
+
560
560
  .. versionadded:: 1.12.0
561
561
 
562
562
  References
@@ -602,7 +602,7 @@ class Sakurai(LinearOperator):
602
602
  The banded form can be used in scipy functions for banded matrices, e.g.,
603
603
 
604
604
  >>> e = eig_banded(sak.tobanded(), eigvals_only=True)
605
- >>> np.allclose(sak.eigenvalues, e, atol= n * n * n * np.finfo(float).eps)
605
+ >>> np.allclose(sak.eigenvalues(), e, atol= n * n * n * np.finfo(float).eps)
606
606
  True
607
607
 
608
608
  """
@@ -614,13 +614,13 @@ class Sakurai(LinearOperator):
614
614
 
615
615
  def eigenvalues(self, m=None):
616
616
  """Return the requested number of eigenvalues.
617
-
617
+
618
618
  Parameters
619
619
  ----------
620
620
  m : int, optional
621
621
  The positive number of smallest eigenvalues to return.
622
622
  If not provided, then all eigenvalues will be returned.
623
-
623
+
624
624
  Returns
625
625
  -------
626
626
  eigenvalues : `np.float64` array
@@ -642,18 +642,18 @@ class Sakurai(LinearOperator):
642
642
 
643
643
  def tosparse(self):
644
644
  """
645
- Construct the Sakurai matrix is a sparse format.
645
+ Construct the Sakurai matrix in a sparse format.
646
646
  """
647
- from scipy.sparse import spdiags
647
+ from scipy.sparse import diags_array
648
648
  d = self.tobanded()
649
649
  # the banded format has the main diagonal at the bottom
650
- # `spdiags` has no `dtype` parameter so inherits dtype from banded
651
- return spdiags([d[0], d[1], d[2], d[1], d[0]], [-2, -1, 0, 1, 2],
652
- self.n, self.n)
650
+ # `diags_array` inherits dtype from banded
651
+ return diags_array([d[0], d[1], d[2], d[1], d[0]], offsets=[-2, -1, 0, 1, 2],
652
+ shape=(self.n, self.n), dtype=d.dtype)
653
653
 
654
654
  def toarray(self):
655
655
  return self.tosparse().toarray()
656
-
656
+
657
657
  def _matvec(self, x):
658
658
  """
659
659
  Construct matrix-free callable banded-matrix-vector multiplication by
@@ -675,7 +675,7 @@ class Sakurai(LinearOperator):
675
675
  Construct matrix-free callable matrix-matrix multiplication by
676
676
  the Sakurai matrix without constructing or storing the matrix itself
677
677
  by reusing the ``_matvec(x)`` that supports both 1D and 2D arrays ``x``.
678
- """
678
+ """
679
679
  return self._matvec(x)
680
680
 
681
681
  def _adjoint(self):
@@ -723,8 +723,9 @@ class MikotaM(LinearOperator):
723
723
  return self._diag()
724
724
 
725
725
  def tosparse(self):
726
- from scipy.sparse import diags
727
- return diags([self._diag()], [0], shape=self.shape, dtype=self.dtype)
726
+ from scipy.sparse import diags_array
727
+ return diags_array([self._diag()], offsets=[0],
728
+ shape=self.shape, dtype=self.dtype)
728
729
 
729
730
  def toarray(self):
730
731
  return np.diag(self._diag()).astype(self.dtype)
@@ -743,7 +744,7 @@ class MikotaM(LinearOperator):
743
744
  Construct matrix-free callable matrix-matrix multiplication by
744
745
  the Mikota mass matrix without constructing or storing the matrix itself
745
746
  by reusing the ``_matvec(x)`` that supports both 1D and 2D arrays ``x``.
746
- """
747
+ """
747
748
  return self._matvec(x)
748
749
 
749
750
  def _adjoint(self):
@@ -758,7 +759,7 @@ class MikotaK(LinearOperator):
758
759
  Construct a stiffness matrix in various formats of Mikota pair.
759
760
 
760
761
  The stiffness matrix `K` is square real tri-diagonal symmetric
761
- positive definite with integer entries.
762
+ positive definite with integer entries.
762
763
 
763
764
  Parameters
764
765
  ----------
@@ -792,9 +793,9 @@ class MikotaK(LinearOperator):
792
793
  return np.array([np.pad(self._diag1, (1, 0), 'constant'), self._diag0])
793
794
 
794
795
  def tosparse(self):
795
- from scipy.sparse import diags
796
- return diags([self._diag1, self._diag0, self._diag1], [-1, 0, 1],
797
- shape=self.shape, dtype=self.dtype)
796
+ from scipy.sparse import diags_array
797
+ return diags_array([self._diag1, self._diag0, self._diag1], offsets=[-1, 0, 1],
798
+ shape=self.shape, dtype=self.dtype)
798
799
 
799
800
  def toarray(self):
800
801
  return self.tosparse().toarray()
@@ -822,7 +823,7 @@ class MikotaK(LinearOperator):
822
823
  Construct matrix-free callable matrix-matrix multiplication by
823
824
  the Stiffness mass matrix without constructing or storing the matrix itself
824
825
  by reusing the ``_matvec(x)`` that supports both 1D and 2D arrays ``x``.
825
- """
826
+ """
826
827
  return self._matvec(x)
827
828
 
828
829
  def _adjoint(self):
@@ -870,7 +871,7 @@ class MikotaPair:
870
871
  A `LinearOperator` custom object for the stiffness matrix.
871
872
  MikotaM()
872
873
  A `LinearOperator` custom object for the mass matrix.
873
-
874
+
874
875
  .. versionadded:: 1.12.0
875
876
 
876
877
  References
@@ -907,7 +908,7 @@ class MikotaPair:
907
908
  0.16666667])
908
909
  >>> mik_k.tosparse()
909
910
  <DIAgonal sparse array of dtype 'float64'
910
- with 20 stored elements (3 diagonals) and shape (6, 6)>
911
+ with 16 stored elements (3 diagonals) and shape (6, 6)>
911
912
  >>> mik_m.tosparse()
912
913
  <DIAgonal sparse array of dtype 'float64'
913
914
  with 6 stored elements (1 diagonals) and shape (6, 6)>
@@ -916,7 +917,7 @@ class MikotaPair:
916
917
  >>> np.array_equal(mik_m(np.eye(n)), mik_m.toarray())
917
918
  True
918
919
  >>> mik.eigenvalues()
919
- array([ 1, 4, 9, 16, 25, 36])
920
+ array([ 1, 4, 9, 16, 25, 36])
920
921
  >>> mik.eigenvalues(2)
921
922
  array([ 1, 4])
922
923
 
@@ -930,13 +931,13 @@ class MikotaPair:
930
931
 
931
932
  def eigenvalues(self, m=None):
932
933
  """Return the requested number of eigenvalues.
933
-
934
+
934
935
  Parameters
935
936
  ----------
936
937
  m : int, optional
937
938
  The positive number of smallest eigenvalues to return.
938
939
  If not provided, then all eigenvalues will be returned.
939
-
940
+
940
941
  Returns
941
942
  -------
942
943
  eigenvalues : `np.uint64` array
@@ -256,3 +256,17 @@ def test_ne(same_matrix):
256
256
  # temporary splint until pydata sparse support sparray equality
257
257
  sp_sparse = sp.coo_matrix(sp_sparse).asformat(sp_sparse.format)
258
258
  assert not (sp_sparse != pd_sparse).any()
259
+
260
+
261
+ def test_ge(same_matrix):
262
+ sp_sparse, pd_sparse = same_matrix
263
+ # temporary splint until pydata sparse support sparray equality
264
+ sp_sparse = sp.coo_matrix(sp_sparse).asformat(sp_sparse.format)
265
+ assert (sp_sparse >= pd_sparse).all()
266
+
267
+
268
+ def test_gt(same_matrix):
269
+ sp_sparse, pd_sparse = same_matrix
270
+ # temporary splint until pydata sparse support sparray equality
271
+ sp_sparse = sp.coo_matrix(sp_sparse).asformat(sp_sparse.format)
272
+ assert not (sp_sparse > pd_sparse).any()
@@ -194,7 +194,10 @@ class TestArithmetic1D:
194
194
  with pytest.raises(ValueError, match=matchme):
195
195
  i.multiply(j)
196
196
  continue
197
- sp_mult = i.multiply(j)
197
+ try:
198
+ sp_mult = i.multiply(j)
199
+ except ValueError:
200
+ continue
198
201
  assert_allclose(toarray(sp_mult), dense_mult)
199
202
 
200
203
  def test_elementwise_divide(self, spcreator, dat1d):
@@ -320,7 +323,7 @@ class TestArithmetic1D:
320
323
  assert_equal(asp.dot(asp), np.dot(a, a))
321
324
 
322
325
  # bad matrix products
323
- with pytest.raises(ValueError, match='dimension mismatch'):
326
+ with pytest.raises(ValueError, match='dimension mismatch|shapes.*not aligned'):
324
327
  asp.dot(f)
325
328
 
326
329
  # elemente-wise multiplication