scipy 1.15.2__cp312-cp312-win_amd64.whl → 1.16.0rc1__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.
Files changed (767) hide show
  1. scipy/__config__.py +7 -7
  2. scipy/__init__.py +6 -9
  3. scipy/_cyutility.cp312-win_amd64.dll.a +0 -0
  4. scipy/_cyutility.cp312-win_amd64.pyd +0 -0
  5. scipy/_lib/_array_api.py +497 -161
  6. scipy/_lib/_array_api_compat_vendor.py +9 -0
  7. scipy/_lib/_bunch.py +4 -0
  8. scipy/_lib/_ccallback_c.cp312-win_amd64.dll.a +0 -0
  9. scipy/_lib/_ccallback_c.cp312-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.cp312-win_amd64.dll.a +0 -0
  13. scipy/_lib/_fpumode.cp312-win_amd64.pyd +0 -0
  14. scipy/_lib/_sparse.py +41 -0
  15. scipy/_lib/_test_ccallback.cp312-win_amd64.dll.a +0 -0
  16. scipy/_lib/_test_ccallback.cp312-win_amd64.pyd +0 -0
  17. scipy/_lib/_test_deprecation_call.cp312-win_amd64.dll.a +0 -0
  18. scipy/_lib/_test_deprecation_call.cp312-win_amd64.pyd +0 -0
  19. scipy/_lib/_test_deprecation_def.cp312-win_amd64.dll.a +0 -0
  20. scipy/_lib/_test_deprecation_def.cp312-win_amd64.pyd +0 -0
  21. scipy/_lib/_testutils.py +6 -2
  22. scipy/_lib/_uarray/_uarray.cp312-win_amd64.dll.a +0 -0
  23. scipy/_lib/_uarray/_uarray.cp312-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.cp312-win_amd64.dll.a +0 -0
  72. scipy/_lib/messagestream.cp312-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 +169 -34
  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.cp312-win_amd64.dll.a +0 -0
  105. scipy/cluster/_hierarchy.cp312-win_amd64.pyd +0 -0
  106. scipy/cluster/_optimal_leaf_ordering.cp312-win_amd64.dll.a +0 -0
  107. scipy/cluster/_optimal_leaf_ordering.cp312-win_amd64.pyd +0 -0
  108. scipy/cluster/_vq.cp312-win_amd64.dll.a +0 -0
  109. scipy/cluster/_vq.cp312-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.cp312-win_amd64.dll.a +0 -0
  127. scipy/fft/_pocketfft/pypocketfft.cp312-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.cp312-win_amd64.dll.a +0 -0
  136. scipy/fftpack/convolve.cp312-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.cp312-win_amd64.dll.a +0 -0
  142. scipy/integrate/_dop.cp312-win_amd64.pyd +0 -0
  143. scipy/integrate/_ivp/common.py +3 -3
  144. scipy/integrate/_ivp/ivp.py +9 -2
  145. scipy/integrate/_ivp/tests/test_ivp.py +19 -0
  146. scipy/integrate/_lsoda.cp312-win_amd64.dll.a +0 -0
  147. scipy/integrate/_lsoda.cp312-win_amd64.pyd +0 -0
  148. scipy/integrate/_ode.py +9 -2
  149. scipy/integrate/_odepack.cp312-win_amd64.dll.a +0 -0
  150. scipy/integrate/_odepack.cp312-win_amd64.pyd +0 -0
  151. scipy/integrate/_quad_vec.py +21 -29
  152. scipy/integrate/_quadpack.cp312-win_amd64.dll.a +0 -0
  153. scipy/integrate/_quadpack.cp312-win_amd64.pyd +0 -0
  154. scipy/integrate/_quadpack_py.py +11 -7
  155. scipy/integrate/_quadrature.py +3 -3
  156. scipy/integrate/_rules/_base.py +2 -2
  157. scipy/integrate/_tanhsinh.py +57 -54
  158. scipy/integrate/_test_multivariate.cp312-win_amd64.dll.a +0 -0
  159. scipy/integrate/_test_multivariate.cp312-win_amd64.pyd +0 -0
  160. scipy/integrate/_test_odeint_banded.cp312-win_amd64.dll.a +0 -0
  161. scipy/integrate/_test_odeint_banded.cp312-win_amd64.pyd +0 -0
  162. scipy/integrate/_vode.cp312-win_amd64.dll.a +0 -0
  163. scipy/integrate/_vode.cp312-win_amd64.pyd +0 -0
  164. scipy/integrate/tests/test__quad_vec.py +0 -6
  165. scipy/integrate/tests/test_banded_ode_solvers.py +85 -0
  166. scipy/integrate/tests/test_cubature.py +21 -35
  167. scipy/integrate/tests/test_quadrature.py +6 -8
  168. scipy/integrate/tests/test_tanhsinh.py +61 -43
  169. scipy/interpolate/__init__.py +70 -58
  170. scipy/interpolate/_bary_rational.py +22 -22
  171. scipy/interpolate/_bsplines.py +119 -66
  172. scipy/interpolate/_cubic.py +65 -50
  173. scipy/interpolate/_dfitpack.cp312-win_amd64.dll.a +0 -0
  174. scipy/interpolate/_dfitpack.cp312-win_amd64.pyd +0 -0
  175. scipy/interpolate/_dierckx.cp312-win_amd64.dll.a +0 -0
  176. scipy/interpolate/_dierckx.cp312-win_amd64.pyd +0 -0
  177. scipy/interpolate/_fitpack.cp312-win_amd64.dll.a +0 -0
  178. scipy/interpolate/_fitpack.cp312-win_amd64.pyd +0 -0
  179. scipy/interpolate/_fitpack2.py +9 -6
  180. scipy/interpolate/_fitpack_impl.py +32 -26
  181. scipy/interpolate/_fitpack_repro.py +23 -19
  182. scipy/interpolate/_interpnd.cp312-win_amd64.dll.a +0 -0
  183. scipy/interpolate/_interpnd.cp312-win_amd64.pyd +0 -0
  184. scipy/interpolate/_interpolate.py +30 -12
  185. scipy/interpolate/_ndbspline.py +13 -18
  186. scipy/interpolate/_ndgriddata.py +5 -8
  187. scipy/interpolate/_polyint.py +95 -31
  188. scipy/interpolate/_ppoly.cp312-win_amd64.dll.a +0 -0
  189. scipy/interpolate/_ppoly.cp312-win_amd64.pyd +0 -0
  190. scipy/interpolate/_rbf.py +2 -2
  191. scipy/interpolate/_rbfinterp.py +1 -1
  192. scipy/interpolate/_rbfinterp_pythran.cp312-win_amd64.dll.a +0 -0
  193. scipy/interpolate/_rbfinterp_pythran.cp312-win_amd64.pyd +0 -0
  194. scipy/interpolate/_rgi.py +31 -26
  195. scipy/interpolate/_rgi_cython.cp312-win_amd64.dll.a +0 -0
  196. scipy/interpolate/_rgi_cython.cp312-win_amd64.pyd +0 -0
  197. scipy/interpolate/dfitpack.py +0 -20
  198. scipy/interpolate/interpnd.py +1 -2
  199. scipy/interpolate/tests/test_bary_rational.py +2 -2
  200. scipy/interpolate/tests/test_bsplines.py +97 -1
  201. scipy/interpolate/tests/test_fitpack2.py +39 -1
  202. scipy/interpolate/tests/test_interpnd.py +32 -20
  203. scipy/interpolate/tests/test_interpolate.py +48 -4
  204. scipy/interpolate/tests/test_rgi.py +2 -1
  205. scipy/io/_fast_matrix_market/__init__.py +2 -0
  206. scipy/io/_fast_matrix_market/_fmm_core.cp312-win_amd64.dll.a +0 -0
  207. scipy/io/_fast_matrix_market/_fmm_core.cp312-win_amd64.pyd +0 -0
  208. scipy/io/_harwell_boeing/_fortran_format_parser.py +19 -16
  209. scipy/io/_harwell_boeing/hb.py +7 -11
  210. scipy/io/_idl.py +5 -7
  211. scipy/io/_netcdf.py +15 -5
  212. scipy/io/_test_fortran.cp312-win_amd64.dll.a +0 -0
  213. scipy/io/_test_fortran.cp312-win_amd64.pyd +0 -0
  214. scipy/io/arff/tests/test_arffread.py +3 -3
  215. scipy/io/matlab/__init__.py +5 -3
  216. scipy/io/matlab/_mio.py +4 -1
  217. scipy/io/matlab/_mio5.py +19 -13
  218. scipy/io/matlab/_mio5_utils.cp312-win_amd64.dll.a +0 -0
  219. scipy/io/matlab/_mio5_utils.cp312-win_amd64.pyd +0 -0
  220. scipy/io/matlab/_mio_utils.cp312-win_amd64.dll.a +0 -0
  221. scipy/io/matlab/_mio_utils.cp312-win_amd64.pyd +0 -0
  222. scipy/io/matlab/_miobase.py +4 -1
  223. scipy/io/matlab/_streams.cp312-win_amd64.dll.a +0 -0
  224. scipy/io/matlab/_streams.cp312-win_amd64.pyd +0 -0
  225. scipy/io/matlab/tests/test_mio.py +46 -18
  226. scipy/io/matlab/tests/test_mio_funcs.py +1 -1
  227. scipy/io/tests/test_mmio.py +7 -1
  228. scipy/io/tests/test_wavfile.py +41 -0
  229. scipy/io/wavfile.py +57 -10
  230. scipy/linalg/_basic.py +113 -86
  231. scipy/linalg/_cythonized_array_utils.cp312-win_amd64.dll.a +0 -0
  232. scipy/linalg/_cythonized_array_utils.cp312-win_amd64.pyd +0 -0
  233. scipy/linalg/_decomp.py +22 -9
  234. scipy/linalg/_decomp_cholesky.py +28 -13
  235. scipy/linalg/_decomp_cossin.py +45 -30
  236. scipy/linalg/_decomp_interpolative.cp312-win_amd64.dll.a +0 -0
  237. scipy/linalg/_decomp_interpolative.cp312-win_amd64.pyd +0 -0
  238. scipy/linalg/_decomp_ldl.py +4 -1
  239. scipy/linalg/_decomp_lu.py +18 -6
  240. scipy/linalg/_decomp_lu_cython.cp312-win_amd64.dll.a +0 -0
  241. scipy/linalg/_decomp_lu_cython.cp312-win_amd64.pyd +0 -0
  242. scipy/linalg/_decomp_polar.py +2 -0
  243. scipy/linalg/_decomp_qr.py +6 -2
  244. scipy/linalg/_decomp_qz.py +3 -0
  245. scipy/linalg/_decomp_schur.py +3 -1
  246. scipy/linalg/_decomp_svd.py +13 -2
  247. scipy/linalg/_decomp_update.cp312-win_amd64.dll.a +0 -0
  248. scipy/linalg/_decomp_update.cp312-win_amd64.pyd +0 -0
  249. scipy/linalg/_expm_frechet.py +4 -0
  250. scipy/linalg/_fblas.cp312-win_amd64.dll.a +0 -0
  251. scipy/linalg/_fblas.cp312-win_amd64.pyd +0 -0
  252. scipy/linalg/_flapack.cp312-win_amd64.dll.a +0 -0
  253. scipy/linalg/_flapack.cp312-win_amd64.pyd +0 -0
  254. scipy/linalg/_linalg_pythran.cp312-win_amd64.dll.a +0 -0
  255. scipy/linalg/_linalg_pythran.cp312-win_amd64.pyd +0 -0
  256. scipy/linalg/_matfuncs.py +187 -4
  257. scipy/linalg/_matfuncs_expm.cp312-win_amd64.dll.a +0 -0
  258. scipy/linalg/_matfuncs_expm.cp312-win_amd64.pyd +0 -0
  259. scipy/linalg/_matfuncs_schur_sqrtm.cp312-win_amd64.dll.a +0 -0
  260. scipy/linalg/_matfuncs_schur_sqrtm.cp312-win_amd64.pyd +0 -0
  261. scipy/linalg/_matfuncs_sqrtm.py +1 -99
  262. scipy/linalg/_matfuncs_sqrtm_triu.cp312-win_amd64.dll.a +0 -0
  263. scipy/linalg/_matfuncs_sqrtm_triu.cp312-win_amd64.pyd +0 -0
  264. scipy/linalg/_procrustes.py +2 -0
  265. scipy/linalg/_sketches.py +17 -6
  266. scipy/linalg/_solve_toeplitz.cp312-win_amd64.dll.a +0 -0
  267. scipy/linalg/_solve_toeplitz.cp312-win_amd64.pyd +0 -0
  268. scipy/linalg/_solvers.py +7 -2
  269. scipy/linalg/_special_matrices.py +26 -36
  270. scipy/linalg/cython_blas.cp312-win_amd64.dll.a +0 -0
  271. scipy/linalg/cython_blas.cp312-win_amd64.pyd +0 -0
  272. scipy/linalg/cython_lapack.cp312-win_amd64.dll.a +0 -0
  273. scipy/linalg/cython_lapack.cp312-win_amd64.pyd +0 -0
  274. scipy/linalg/lapack.py +22 -2
  275. scipy/linalg/tests/_cython_examples/meson.build +7 -0
  276. scipy/linalg/tests/test_basic.py +31 -16
  277. scipy/linalg/tests/test_batch.py +588 -0
  278. scipy/linalg/tests/test_cythonized_array_utils.py +0 -2
  279. scipy/linalg/tests/test_decomp.py +40 -3
  280. scipy/linalg/tests/test_decomp_cossin.py +14 -0
  281. scipy/linalg/tests/test_decomp_ldl.py +1 -1
  282. scipy/linalg/tests/test_interpolative.py +17 -0
  283. scipy/linalg/tests/test_lapack.py +115 -7
  284. scipy/linalg/tests/test_matfuncs.py +157 -102
  285. scipy/linalg/tests/test_procrustes.py +0 -7
  286. scipy/linalg/tests/test_solve_toeplitz.py +1 -1
  287. scipy/linalg/tests/test_special_matrices.py +1 -5
  288. scipy/ndimage/__init__.py +1 -0
  289. scipy/ndimage/_ctest.cp312-win_amd64.dll.a +0 -0
  290. scipy/ndimage/_ctest.cp312-win_amd64.pyd +0 -0
  291. scipy/ndimage/_cytest.cp312-win_amd64.dll.a +0 -0
  292. scipy/ndimage/_cytest.cp312-win_amd64.pyd +0 -0
  293. scipy/ndimage/_delegators.py +8 -2
  294. scipy/ndimage/_filters.py +433 -5
  295. scipy/ndimage/_interpolation.py +36 -6
  296. scipy/ndimage/_measurements.py +4 -2
  297. scipy/ndimage/_morphology.py +5 -0
  298. scipy/ndimage/_nd_image.cp312-win_amd64.dll.a +0 -0
  299. scipy/ndimage/_nd_image.cp312-win_amd64.pyd +0 -0
  300. scipy/ndimage/_ndimage_api.py +2 -1
  301. scipy/ndimage/_ni_docstrings.py +5 -1
  302. scipy/ndimage/_ni_label.cp312-win_amd64.dll.a +0 -0
  303. scipy/ndimage/_ni_label.cp312-win_amd64.pyd +0 -0
  304. scipy/ndimage/_ni_support.py +1 -5
  305. scipy/ndimage/_rank_filter_1d.cp312-win_amd64.dll.a +0 -0
  306. scipy/ndimage/_rank_filter_1d.cp312-win_amd64.pyd +0 -0
  307. scipy/ndimage/_support_alternative_backends.py +18 -6
  308. scipy/ndimage/tests/test_filters.py +351 -259
  309. scipy/ndimage/tests/test_fourier.py +7 -9
  310. scipy/ndimage/tests/test_interpolation.py +68 -61
  311. scipy/ndimage/tests/test_measurements.py +18 -35
  312. scipy/ndimage/tests/test_morphology.py +143 -131
  313. scipy/ndimage/tests/test_splines.py +1 -3
  314. scipy/odr/__odrpack.cp312-win_amd64.dll.a +0 -0
  315. scipy/odr/__odrpack.cp312-win_amd64.pyd +0 -0
  316. scipy/optimize/_basinhopping.py +13 -7
  317. scipy/optimize/_bglu_dense.cp312-win_amd64.dll.a +0 -0
  318. scipy/optimize/_bglu_dense.cp312-win_amd64.pyd +0 -0
  319. scipy/optimize/_bracket.py +46 -26
  320. scipy/optimize/_chandrupatla.py +9 -10
  321. scipy/optimize/_cobyla_py.py +104 -123
  322. scipy/optimize/_constraints.py +14 -10
  323. scipy/optimize/_differentiable_functions.py +371 -230
  324. scipy/optimize/_differentialevolution.py +4 -3
  325. scipy/optimize/_direct.cp312-win_amd64.dll.a +0 -0
  326. scipy/optimize/_direct.cp312-win_amd64.pyd +0 -0
  327. scipy/optimize/_dual_annealing.py +1 -1
  328. scipy/optimize/_elementwise.py +1 -4
  329. scipy/optimize/_group_columns.cp312-win_amd64.dll.a +0 -0
  330. scipy/optimize/_group_columns.cp312-win_amd64.pyd +0 -0
  331. scipy/optimize/_highspy/_core.cp312-win_amd64.dll.a +0 -0
  332. scipy/optimize/_highspy/_core.cp312-win_amd64.pyd +0 -0
  333. scipy/optimize/_highspy/_highs_options.cp312-win_amd64.dll.a +0 -0
  334. scipy/optimize/_highspy/_highs_options.cp312-win_amd64.pyd +0 -0
  335. scipy/optimize/_highspy/_highs_wrapper.py +6 -4
  336. scipy/optimize/_lbfgsb.cp312-win_amd64.dll.a +0 -0
  337. scipy/optimize/_lbfgsb.cp312-win_amd64.pyd +0 -0
  338. scipy/optimize/_lbfgsb_py.py +57 -16
  339. scipy/optimize/_linprog_doc.py +2 -2
  340. scipy/optimize/_linprog_highs.py +11 -11
  341. scipy/optimize/_linprog_ip.py +25 -10
  342. scipy/optimize/_linprog_util.py +18 -19
  343. scipy/optimize/_lsap.cp312-win_amd64.dll.a +0 -0
  344. scipy/optimize/_lsap.cp312-win_amd64.pyd +0 -0
  345. scipy/optimize/_lsq/common.py +3 -3
  346. scipy/optimize/_lsq/dogbox.py +16 -2
  347. scipy/optimize/_lsq/givens_elimination.cp312-win_amd64.dll.a +0 -0
  348. scipy/optimize/_lsq/givens_elimination.cp312-win_amd64.pyd +0 -0
  349. scipy/optimize/_lsq/least_squares.py +198 -126
  350. scipy/optimize/_lsq/lsq_linear.py +6 -6
  351. scipy/optimize/_lsq/trf.py +35 -8
  352. scipy/optimize/_milp.py +3 -1
  353. scipy/optimize/_minimize.py +105 -36
  354. scipy/optimize/_minpack.cp312-win_amd64.dll.a +0 -0
  355. scipy/optimize/_minpack.cp312-win_amd64.pyd +0 -0
  356. scipy/optimize/_minpack_py.py +21 -14
  357. scipy/optimize/_moduleTNC.cp312-win_amd64.dll.a +0 -0
  358. scipy/optimize/_moduleTNC.cp312-win_amd64.pyd +0 -0
  359. scipy/optimize/_nnls.py +20 -21
  360. scipy/optimize/_nonlin.py +34 -3
  361. scipy/optimize/_numdiff.py +288 -110
  362. scipy/optimize/_optimize.py +86 -48
  363. scipy/optimize/_pava_pybind.cp312-win_amd64.dll.a +0 -0
  364. scipy/optimize/_pava_pybind.cp312-win_amd64.pyd +0 -0
  365. scipy/optimize/_remove_redundancy.py +5 -5
  366. scipy/optimize/_root_scalar.py +1 -1
  367. scipy/optimize/_shgo.py +6 -0
  368. scipy/optimize/_shgo_lib/_complex.py +1 -1
  369. scipy/optimize/_slsqp_py.py +216 -124
  370. scipy/optimize/_slsqplib.cp312-win_amd64.dll.a +0 -0
  371. scipy/optimize/_slsqplib.cp312-win_amd64.pyd +0 -0
  372. scipy/optimize/_spectral.py +1 -1
  373. scipy/optimize/_tnc.py +8 -1
  374. scipy/optimize/_trlib/_trlib.cp312-win_amd64.dll.a +0 -0
  375. scipy/optimize/_trlib/_trlib.cp312-win_amd64.pyd +0 -0
  376. scipy/optimize/_trustregion.py +20 -6
  377. scipy/optimize/_trustregion_constr/canonical_constraint.py +7 -7
  378. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +1 -1
  379. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +11 -3
  380. scipy/optimize/_trustregion_constr/projections.py +12 -8
  381. scipy/optimize/_trustregion_constr/qp_subproblem.py +9 -9
  382. scipy/optimize/_trustregion_constr/tests/test_projections.py +7 -7
  383. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +77 -77
  384. scipy/optimize/_trustregion_constr/tr_interior_point.py +5 -5
  385. scipy/optimize/_trustregion_exact.py +0 -1
  386. scipy/optimize/_zeros.cp312-win_amd64.dll.a +0 -0
  387. scipy/optimize/_zeros.cp312-win_amd64.pyd +0 -0
  388. scipy/optimize/_zeros_py.py +97 -17
  389. scipy/optimize/cython_optimize/_zeros.cp312-win_amd64.dll.a +0 -0
  390. scipy/optimize/cython_optimize/_zeros.cp312-win_amd64.pyd +0 -0
  391. scipy/optimize/slsqp.py +0 -1
  392. scipy/optimize/tests/test__basinhopping.py +1 -1
  393. scipy/optimize/tests/test__differential_evolution.py +4 -4
  394. scipy/optimize/tests/test__linprog_clean_inputs.py +5 -3
  395. scipy/optimize/tests/test__numdiff.py +66 -22
  396. scipy/optimize/tests/test__remove_redundancy.py +2 -2
  397. scipy/optimize/tests/test__shgo.py +9 -1
  398. scipy/optimize/tests/test_bracket.py +71 -46
  399. scipy/optimize/tests/test_chandrupatla.py +133 -135
  400. scipy/optimize/tests/test_cobyla.py +74 -45
  401. scipy/optimize/tests/test_constraints.py +1 -1
  402. scipy/optimize/tests/test_differentiable_functions.py +226 -6
  403. scipy/optimize/tests/test_lbfgsb_hessinv.py +22 -0
  404. scipy/optimize/tests/test_least_squares.py +125 -13
  405. scipy/optimize/tests/test_linear_assignment.py +3 -3
  406. scipy/optimize/tests/test_linprog.py +3 -3
  407. scipy/optimize/tests/test_lsq_linear.py +5 -5
  408. scipy/optimize/tests/test_minimize_constrained.py +2 -2
  409. scipy/optimize/tests/test_minpack.py +4 -4
  410. scipy/optimize/tests/test_nnls.py +43 -3
  411. scipy/optimize/tests/test_nonlin.py +36 -0
  412. scipy/optimize/tests/test_optimize.py +95 -17
  413. scipy/optimize/tests/test_slsqp.py +36 -4
  414. scipy/optimize/tests/test_zeros.py +34 -1
  415. scipy/signal/__init__.py +12 -23
  416. scipy/signal/_delegators.py +568 -0
  417. scipy/signal/_filter_design.py +459 -241
  418. scipy/signal/_fir_filter_design.py +262 -90
  419. scipy/signal/_lti_conversion.py +3 -2
  420. scipy/signal/_ltisys.py +118 -91
  421. scipy/signal/_max_len_seq_inner.cp312-win_amd64.dll.a +0 -0
  422. scipy/signal/_max_len_seq_inner.cp312-win_amd64.pyd +0 -0
  423. scipy/signal/_peak_finding_utils.cp312-win_amd64.dll.a +0 -0
  424. scipy/signal/_peak_finding_utils.cp312-win_amd64.pyd +0 -0
  425. scipy/signal/_polyutils.py +172 -0
  426. scipy/signal/_short_time_fft.py +553 -76
  427. scipy/signal/_signal_api.py +30 -0
  428. scipy/signal/_signaltools.py +719 -396
  429. scipy/signal/_sigtools.cp312-win_amd64.dll.a +0 -0
  430. scipy/signal/_sigtools.cp312-win_amd64.pyd +0 -0
  431. scipy/signal/_sosfilt.cp312-win_amd64.dll.a +0 -0
  432. scipy/signal/_sosfilt.cp312-win_amd64.pyd +0 -0
  433. scipy/signal/_spectral_py.py +221 -50
  434. scipy/signal/_spline.cp312-win_amd64.dll.a +0 -0
  435. scipy/signal/_spline.cp312-win_amd64.pyd +0 -0
  436. scipy/signal/_spline_filters.py +108 -68
  437. scipy/signal/_support_alternative_backends.py +73 -0
  438. scipy/signal/_upfirdn.py +4 -1
  439. scipy/signal/_upfirdn_apply.cp312-win_amd64.dll.a +0 -0
  440. scipy/signal/_upfirdn_apply.cp312-win_amd64.pyd +0 -0
  441. scipy/signal/_waveforms.py +2 -11
  442. scipy/signal/_wavelets.py +1 -1
  443. scipy/signal/fir_filter_design.py +1 -0
  444. scipy/signal/spline.py +4 -11
  445. scipy/signal/tests/_scipy_spectral_test_shim.py +5 -182
  446. scipy/signal/tests/test_bsplines.py +114 -79
  447. scipy/signal/tests/test_cont2discrete.py +9 -2
  448. scipy/signal/tests/test_filter_design.py +721 -481
  449. scipy/signal/tests/test_fir_filter_design.py +332 -140
  450. scipy/signal/tests/test_savitzky_golay.py +4 -3
  451. scipy/signal/tests/test_short_time_fft.py +231 -5
  452. scipy/signal/tests/test_signaltools.py +2149 -1348
  453. scipy/signal/tests/test_spectral.py +19 -6
  454. scipy/signal/tests/test_splines.py +161 -96
  455. scipy/signal/tests/test_upfirdn.py +84 -50
  456. scipy/signal/tests/test_waveforms.py +20 -0
  457. scipy/signal/tests/test_windows.py +607 -466
  458. scipy/signal/windows/_windows.py +287 -148
  459. scipy/sparse/__init__.py +23 -4
  460. scipy/sparse/_base.py +269 -120
  461. scipy/sparse/_bsr.py +7 -4
  462. scipy/sparse/_compressed.py +59 -234
  463. scipy/sparse/_construct.py +90 -38
  464. scipy/sparse/_coo.py +115 -181
  465. scipy/sparse/_csc.py +4 -4
  466. scipy/sparse/_csparsetools.cp312-win_amd64.dll.a +0 -0
  467. scipy/sparse/_csparsetools.cp312-win_amd64.pyd +0 -0
  468. scipy/sparse/_csr.py +2 -2
  469. scipy/sparse/_data.py +48 -48
  470. scipy/sparse/_dia.py +105 -21
  471. scipy/sparse/_dok.py +0 -23
  472. scipy/sparse/_index.py +4 -4
  473. scipy/sparse/_matrix.py +23 -0
  474. scipy/sparse/_sparsetools.cp312-win_amd64.dll.a +0 -0
  475. scipy/sparse/_sparsetools.cp312-win_amd64.pyd +0 -0
  476. scipy/sparse/_sputils.py +37 -22
  477. scipy/sparse/base.py +0 -9
  478. scipy/sparse/bsr.py +0 -14
  479. scipy/sparse/compressed.py +0 -23
  480. scipy/sparse/construct.py +0 -6
  481. scipy/sparse/coo.py +0 -14
  482. scipy/sparse/csc.py +0 -3
  483. scipy/sparse/csgraph/_flow.cp312-win_amd64.dll.a +0 -0
  484. scipy/sparse/csgraph/_flow.cp312-win_amd64.pyd +0 -0
  485. scipy/sparse/csgraph/_matching.cp312-win_amd64.dll.a +0 -0
  486. scipy/sparse/csgraph/_matching.cp312-win_amd64.pyd +0 -0
  487. scipy/sparse/csgraph/_min_spanning_tree.cp312-win_amd64.dll.a +0 -0
  488. scipy/sparse/csgraph/_min_spanning_tree.cp312-win_amd64.pyd +0 -0
  489. scipy/sparse/csgraph/_reordering.cp312-win_amd64.dll.a +0 -0
  490. scipy/sparse/csgraph/_reordering.cp312-win_amd64.pyd +0 -0
  491. scipy/sparse/csgraph/_shortest_path.cp312-win_amd64.dll.a +0 -0
  492. scipy/sparse/csgraph/_shortest_path.cp312-win_amd64.pyd +0 -0
  493. scipy/sparse/csgraph/_tools.cp312-win_amd64.dll.a +0 -0
  494. scipy/sparse/csgraph/_tools.cp312-win_amd64.pyd +0 -0
  495. scipy/sparse/csgraph/_traversal.cp312-win_amd64.dll.a +0 -0
  496. scipy/sparse/csgraph/_traversal.cp312-win_amd64.pyd +0 -0
  497. scipy/sparse/csgraph/tests/test_matching.py +14 -2
  498. scipy/sparse/csgraph/tests/test_pydata_sparse.py +4 -1
  499. scipy/sparse/csgraph/tests/test_shortest_path.py +83 -27
  500. scipy/sparse/csr.py +0 -5
  501. scipy/sparse/data.py +1 -6
  502. scipy/sparse/dia.py +0 -7
  503. scipy/sparse/dok.py +0 -10
  504. scipy/sparse/linalg/_dsolve/_superlu.cp312-win_amd64.dll.a +0 -0
  505. scipy/sparse/linalg/_dsolve/_superlu.cp312-win_amd64.pyd +0 -0
  506. scipy/sparse/linalg/_dsolve/linsolve.py +9 -0
  507. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +35 -28
  508. scipy/sparse/linalg/_eigen/arpack/_arpack.cp312-win_amd64.dll.a +0 -0
  509. scipy/sparse/linalg/_eigen/arpack/_arpack.cp312-win_amd64.pyd +0 -0
  510. scipy/sparse/linalg/_eigen/arpack/arpack.py +28 -20
  511. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +6 -6
  512. scipy/sparse/linalg/_expm_multiply.py +8 -3
  513. scipy/sparse/linalg/_interface.py +29 -26
  514. scipy/sparse/linalg/_isolve/_gcrotmk.py +6 -5
  515. scipy/sparse/linalg/_isolve/iterative.py +51 -45
  516. scipy/sparse/linalg/_isolve/lgmres.py +6 -6
  517. scipy/sparse/linalg/_isolve/minres.py +5 -5
  518. scipy/sparse/linalg/_isolve/tfqmr.py +7 -7
  519. scipy/sparse/linalg/_isolve/utils.py +2 -8
  520. scipy/sparse/linalg/_matfuncs.py +1 -1
  521. scipy/sparse/linalg/_norm.py +1 -1
  522. scipy/sparse/linalg/_propack/_cpropack.cp312-win_amd64.dll.a +0 -0
  523. scipy/sparse/linalg/_propack/_cpropack.cp312-win_amd64.pyd +0 -0
  524. scipy/sparse/linalg/_propack/_dpropack.cp312-win_amd64.dll.a +0 -0
  525. scipy/sparse/linalg/_propack/_dpropack.cp312-win_amd64.pyd +0 -0
  526. scipy/sparse/linalg/_propack/_spropack.cp312-win_amd64.dll.a +0 -0
  527. scipy/sparse/linalg/_propack/_spropack.cp312-win_amd64.pyd +0 -0
  528. scipy/sparse/linalg/_propack/_zpropack.cp312-win_amd64.dll.a +0 -0
  529. scipy/sparse/linalg/_propack/_zpropack.cp312-win_amd64.pyd +0 -0
  530. scipy/sparse/linalg/_special_sparse_arrays.py +39 -38
  531. scipy/sparse/linalg/tests/test_expm_multiply.py +10 -0
  532. scipy/sparse/linalg/tests/test_interface.py +35 -0
  533. scipy/sparse/linalg/tests/test_pydata_sparse.py +18 -0
  534. scipy/sparse/tests/test_arithmetic1d.py +5 -2
  535. scipy/sparse/tests/test_base.py +217 -40
  536. scipy/sparse/tests/test_common1d.py +17 -12
  537. scipy/sparse/tests/test_construct.py +1 -1
  538. scipy/sparse/tests/test_coo.py +272 -4
  539. scipy/sparse/tests/test_sparsetools.py +5 -0
  540. scipy/sparse/tests/test_sputils.py +36 -7
  541. scipy/spatial/_ckdtree.cp312-win_amd64.dll.a +0 -0
  542. scipy/spatial/_ckdtree.cp312-win_amd64.pyd +0 -0
  543. scipy/spatial/_distance_pybind.cp312-win_amd64.dll.a +0 -0
  544. scipy/spatial/_distance_pybind.cp312-win_amd64.pyd +0 -0
  545. scipy/spatial/_distance_wrap.cp312-win_amd64.dll.a +0 -0
  546. scipy/spatial/_distance_wrap.cp312-win_amd64.pyd +0 -0
  547. scipy/spatial/_hausdorff.cp312-win_amd64.dll.a +0 -0
  548. scipy/spatial/_hausdorff.cp312-win_amd64.pyd +0 -0
  549. scipy/spatial/_qhull.cp312-win_amd64.dll.a +0 -0
  550. scipy/spatial/_qhull.cp312-win_amd64.pyd +0 -0
  551. scipy/spatial/_voronoi.cp312-win_amd64.dll.a +0 -0
  552. scipy/spatial/_voronoi.cp312-win_amd64.pyd +0 -0
  553. scipy/spatial/distance.py +49 -42
  554. scipy/spatial/tests/test_distance.py +3 -1
  555. scipy/spatial/tests/test_kdtree.py +1 -0
  556. scipy/spatial/tests/test_qhull.py +106 -2
  557. scipy/spatial/transform/__init__.py +5 -3
  558. scipy/spatial/transform/_rigid_transform.cp312-win_amd64.dll.a +0 -0
  559. scipy/spatial/transform/_rigid_transform.cp312-win_amd64.pyd +0 -0
  560. scipy/spatial/transform/_rotation.cp312-win_amd64.dll.a +0 -0
  561. scipy/spatial/transform/_rotation.cp312-win_amd64.pyd +0 -0
  562. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  563. scipy/spatial/transform/tests/test_rotation.py +1342 -790
  564. scipy/spatial/transform/tests/test_rotation_groups.py +3 -3
  565. scipy/spatial/transform/tests/test_rotation_spline.py +29 -8
  566. scipy/special/__init__.py +1 -47
  567. scipy/special/_add_newdocs.py +34 -772
  568. scipy/special/_basic.py +22 -25
  569. scipy/special/_comb.cp312-win_amd64.dll.a +0 -0
  570. scipy/special/_comb.cp312-win_amd64.pyd +0 -0
  571. scipy/special/_ellip_harm_2.cp312-win_amd64.dll.a +0 -0
  572. scipy/special/_ellip_harm_2.cp312-win_amd64.pyd +0 -0
  573. scipy/special/_gufuncs.cp312-win_amd64.dll.a +0 -0
  574. scipy/special/_gufuncs.cp312-win_amd64.pyd +0 -0
  575. scipy/special/_logsumexp.py +83 -69
  576. scipy/special/_orthogonal.pyi +1 -1
  577. scipy/special/_specfun.cp312-win_amd64.dll.a +0 -0
  578. scipy/special/_specfun.cp312-win_amd64.pyd +0 -0
  579. scipy/special/_special_ufuncs.cp312-win_amd64.dll.a +0 -0
  580. scipy/special/_special_ufuncs.cp312-win_amd64.pyd +0 -0
  581. scipy/special/_spherical_bessel.py +4 -4
  582. scipy/special/_support_alternative_backends.py +212 -119
  583. scipy/special/_test_internal.cp312-win_amd64.dll.a +0 -0
  584. scipy/special/_test_internal.cp312-win_amd64.pyd +0 -0
  585. scipy/special/_testutils.py +4 -4
  586. scipy/special/_ufuncs.cp312-win_amd64.dll.a +0 -0
  587. scipy/special/_ufuncs.cp312-win_amd64.pyd +0 -0
  588. scipy/special/_ufuncs.pyi +1 -0
  589. scipy/special/_ufuncs.pyx +215 -1400
  590. scipy/special/_ufuncs_cxx.cp312-win_amd64.dll.a +0 -0
  591. scipy/special/_ufuncs_cxx.cp312-win_amd64.pyd +0 -0
  592. scipy/special/_ufuncs_cxx.pxd +2 -15
  593. scipy/special/_ufuncs_cxx.pyx +5 -44
  594. scipy/special/_ufuncs_cxx_defs.h +2 -16
  595. scipy/special/_ufuncs_defs.h +0 -8
  596. scipy/special/cython_special.cp312-win_amd64.dll.a +0 -0
  597. scipy/special/cython_special.cp312-win_amd64.pyd +0 -0
  598. scipy/special/cython_special.pxd +1 -1
  599. scipy/special/tests/_cython_examples/meson.build +10 -1
  600. scipy/special/tests/test_basic.py +153 -20
  601. scipy/special/tests/test_boost_ufuncs.py +3 -0
  602. scipy/special/tests/test_cdflib.py +35 -11
  603. scipy/special/tests/test_gammainc.py +16 -0
  604. scipy/special/tests/test_hyp2f1.py +23 -2
  605. scipy/special/tests/test_log1mexp.py +85 -0
  606. scipy/special/tests/test_logsumexp.py +220 -64
  607. scipy/special/tests/test_mpmath.py +1 -0
  608. scipy/special/tests/test_nan_inputs.py +1 -1
  609. scipy/special/tests/test_orthogonal.py +17 -18
  610. scipy/special/tests/test_sf_error.py +3 -2
  611. scipy/special/tests/test_sph_harm.py +6 -7
  612. scipy/special/tests/test_support_alternative_backends.py +211 -76
  613. scipy/stats/__init__.py +4 -1
  614. scipy/stats/_ansari_swilk_statistics.cp312-win_amd64.dll.a +0 -0
  615. scipy/stats/_ansari_swilk_statistics.cp312-win_amd64.pyd +0 -0
  616. scipy/stats/_axis_nan_policy.py +4 -3
  617. scipy/stats/_biasedurn.cp312-win_amd64.dll.a +0 -0
  618. scipy/stats/_biasedurn.cp312-win_amd64.pyd +0 -0
  619. scipy/stats/_continued_fraction.py +387 -0
  620. scipy/stats/_continuous_distns.py +296 -319
  621. scipy/stats/_covariance.py +6 -3
  622. scipy/stats/_discrete_distns.py +39 -32
  623. scipy/stats/_distn_infrastructure.py +39 -12
  624. scipy/stats/_distribution_infrastructure.py +900 -238
  625. scipy/stats/_entropy.py +7 -8
  626. scipy/{_lib → stats}/_finite_differences.py +1 -1
  627. scipy/stats/_hypotests.py +82 -49
  628. scipy/stats/_kde.py +53 -49
  629. scipy/stats/_ksstats.py +1 -1
  630. scipy/stats/_levy_stable/__init__.py +7 -15
  631. scipy/stats/_levy_stable/levyst.cp312-win_amd64.dll.a +0 -0
  632. scipy/stats/_levy_stable/levyst.cp312-win_amd64.pyd +0 -0
  633. scipy/stats/_morestats.py +112 -67
  634. scipy/stats/_mstats_basic.py +13 -17
  635. scipy/stats/_mstats_extras.py +8 -8
  636. scipy/stats/_multivariate.py +89 -113
  637. scipy/stats/_new_distributions.py +97 -20
  638. scipy/stats/_page_trend_test.py +12 -5
  639. scipy/stats/_probability_distribution.py +265 -43
  640. scipy/stats/_qmc.py +14 -9
  641. scipy/stats/_qmc_cy.cp312-win_amd64.dll.a +0 -0
  642. scipy/stats/_qmc_cy.cp312-win_amd64.pyd +0 -0
  643. scipy/stats/_qmvnt.py +16 -95
  644. scipy/stats/_qmvnt_cy.cp312-win_amd64.dll.a +0 -0
  645. scipy/stats/_qmvnt_cy.cp312-win_amd64.pyd +0 -0
  646. scipy/stats/_quantile.py +335 -0
  647. scipy/stats/_rcont/rcont.cp312-win_amd64.dll.a +0 -0
  648. scipy/stats/_rcont/rcont.cp312-win_amd64.pyd +0 -0
  649. scipy/stats/_resampling.py +4 -29
  650. scipy/stats/_sampling.py +1 -1
  651. scipy/stats/_sobol.cp312-win_amd64.dll.a +0 -0
  652. scipy/stats/_sobol.cp312-win_amd64.pyd +0 -0
  653. scipy/stats/_stats.cp312-win_amd64.dll.a +0 -0
  654. scipy/stats/_stats.cp312-win_amd64.pyd +0 -0
  655. scipy/stats/_stats_mstats_common.py +19 -2
  656. scipy/stats/_stats_py.py +534 -460
  657. scipy/stats/_stats_pythran.cp312-win_amd64.dll.a +0 -0
  658. scipy/stats/_stats_pythran.cp312-win_amd64.pyd +0 -0
  659. scipy/stats/_unuran/unuran_wrapper.cp312-win_amd64.dll.a +0 -0
  660. scipy/stats/_unuran/unuran_wrapper.cp312-win_amd64.pyd +0 -0
  661. scipy/stats/_unuran/unuran_wrapper.pyi +2 -1
  662. scipy/stats/_variation.py +5 -7
  663. scipy/stats/_wilcoxon.py +13 -7
  664. scipy/stats/tests/common_tests.py +6 -4
  665. scipy/stats/tests/test_axis_nan_policy.py +62 -24
  666. scipy/stats/tests/test_continued_fraction.py +173 -0
  667. scipy/stats/tests/test_continuous.py +379 -60
  668. scipy/stats/tests/test_continuous_basic.py +18 -12
  669. scipy/stats/tests/test_discrete_basic.py +14 -8
  670. scipy/stats/tests/test_discrete_distns.py +16 -16
  671. scipy/stats/tests/test_distributions.py +117 -75
  672. scipy/stats/tests/test_entropy.py +40 -48
  673. scipy/stats/tests/test_fit.py +4 -3
  674. scipy/stats/tests/test_hypotests.py +153 -24
  675. scipy/stats/tests/test_kdeoth.py +109 -41
  676. scipy/stats/tests/test_marray.py +289 -0
  677. scipy/stats/tests/test_morestats.py +79 -47
  678. scipy/stats/tests/test_mstats_basic.py +3 -3
  679. scipy/stats/tests/test_multivariate.py +434 -83
  680. scipy/stats/tests/test_qmc.py +13 -10
  681. scipy/stats/tests/test_quantile.py +199 -0
  682. scipy/stats/tests/test_rank.py +119 -112
  683. scipy/stats/tests/test_resampling.py +47 -56
  684. scipy/stats/tests/test_sampling.py +9 -4
  685. scipy/stats/tests/test_stats.py +799 -939
  686. scipy/stats/tests/test_variation.py +8 -6
  687. scipy/version.py +2 -2
  688. scipy-1.16.0rc1.dist-info/DELVEWHEEL +2 -0
  689. {scipy-1.15.2.dist-info → scipy-1.16.0rc1.dist-info}/LICENSE.txt +1 -1
  690. {scipy-1.15.2.dist-info → scipy-1.16.0rc1.dist-info}/METADATA +9 -9
  691. {scipy-1.15.2.dist-info → scipy-1.16.0rc1.dist-info}/RECORD +693 -701
  692. scipy/_lib/array_api_extra/_funcs.py +0 -484
  693. scipy/_lib/array_api_extra/_typing.py +0 -8
  694. scipy/interpolate/_bspl.cp312-win_amd64.dll.a +0 -0
  695. scipy/interpolate/_bspl.cp312-win_amd64.pyd +0 -0
  696. scipy/optimize/_cobyla.cp312-win_amd64.dll.a +0 -0
  697. scipy/optimize/_cobyla.cp312-win_amd64.pyd +0 -0
  698. scipy/optimize/_cython_nnls.cp312-win_amd64.dll.a +0 -0
  699. scipy/optimize/_cython_nnls.cp312-win_amd64.pyd +0 -0
  700. scipy/optimize/_slsqp.cp312-win_amd64.dll.a +0 -0
  701. scipy/optimize/_slsqp.cp312-win_amd64.pyd +0 -0
  702. scipy/spatial/qhull_src/COPYING.txt +0 -38
  703. scipy/special/libsf_error_state.dll +0 -0
  704. scipy/special/libsf_error_state.dll.a +0 -0
  705. scipy/special/tests/test_log_softmax.py +0 -109
  706. scipy/special/tests/test_xsf_cuda.py +0 -114
  707. scipy/special/xsf/binom.h +0 -89
  708. scipy/special/xsf/cdflib.h +0 -100
  709. scipy/special/xsf/cephes/airy.h +0 -307
  710. scipy/special/xsf/cephes/besselpoly.h +0 -51
  711. scipy/special/xsf/cephes/beta.h +0 -257
  712. scipy/special/xsf/cephes/cbrt.h +0 -131
  713. scipy/special/xsf/cephes/chbevl.h +0 -85
  714. scipy/special/xsf/cephes/chdtr.h +0 -193
  715. scipy/special/xsf/cephes/const.h +0 -87
  716. scipy/special/xsf/cephes/ellie.h +0 -293
  717. scipy/special/xsf/cephes/ellik.h +0 -251
  718. scipy/special/xsf/cephes/ellpe.h +0 -107
  719. scipy/special/xsf/cephes/ellpk.h +0 -117
  720. scipy/special/xsf/cephes/expn.h +0 -260
  721. scipy/special/xsf/cephes/gamma.h +0 -398
  722. scipy/special/xsf/cephes/hyp2f1.h +0 -596
  723. scipy/special/xsf/cephes/hyperg.h +0 -361
  724. scipy/special/xsf/cephes/i0.h +0 -149
  725. scipy/special/xsf/cephes/i1.h +0 -158
  726. scipy/special/xsf/cephes/igam.h +0 -421
  727. scipy/special/xsf/cephes/igam_asymp_coeff.h +0 -195
  728. scipy/special/xsf/cephes/igami.h +0 -313
  729. scipy/special/xsf/cephes/j0.h +0 -225
  730. scipy/special/xsf/cephes/j1.h +0 -198
  731. scipy/special/xsf/cephes/jv.h +0 -715
  732. scipy/special/xsf/cephes/k0.h +0 -164
  733. scipy/special/xsf/cephes/k1.h +0 -163
  734. scipy/special/xsf/cephes/kn.h +0 -243
  735. scipy/special/xsf/cephes/lanczos.h +0 -112
  736. scipy/special/xsf/cephes/ndtr.h +0 -275
  737. scipy/special/xsf/cephes/poch.h +0 -85
  738. scipy/special/xsf/cephes/polevl.h +0 -167
  739. scipy/special/xsf/cephes/psi.h +0 -194
  740. scipy/special/xsf/cephes/rgamma.h +0 -111
  741. scipy/special/xsf/cephes/scipy_iv.h +0 -811
  742. scipy/special/xsf/cephes/shichi.h +0 -248
  743. scipy/special/xsf/cephes/sici.h +0 -224
  744. scipy/special/xsf/cephes/sindg.h +0 -221
  745. scipy/special/xsf/cephes/tandg.h +0 -139
  746. scipy/special/xsf/cephes/trig.h +0 -58
  747. scipy/special/xsf/cephes/unity.h +0 -186
  748. scipy/special/xsf/cephes/zeta.h +0 -172
  749. scipy/special/xsf/config.h +0 -304
  750. scipy/special/xsf/digamma.h +0 -205
  751. scipy/special/xsf/error.h +0 -57
  752. scipy/special/xsf/evalpoly.h +0 -47
  753. scipy/special/xsf/expint.h +0 -266
  754. scipy/special/xsf/hyp2f1.h +0 -694
  755. scipy/special/xsf/iv_ratio.h +0 -173
  756. scipy/special/xsf/lambertw.h +0 -150
  757. scipy/special/xsf/loggamma.h +0 -163
  758. scipy/special/xsf/sici.h +0 -200
  759. scipy/special/xsf/tools.h +0 -427
  760. scipy/special/xsf/trig.h +0 -164
  761. scipy/special/xsf/wright_bessel.h +0 -843
  762. scipy/special/xsf/zlog1.h +0 -35
  763. scipy/stats/_mvn.cp312-win_amd64.dll.a +0 -0
  764. scipy/stats/_mvn.cp312-win_amd64.pyd +0 -0
  765. scipy-1.15.2.dist-info/DELVEWHEEL +0 -2
  766. /scipy-1.15.2-cp312-cp312-win_amd64.whl → /scipy-1.16.0rc1-cp312-cp312-win_amd64.whl +0 -0
  767. {scipy-1.15.2.dist-info → scipy-1.16.0rc1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,93 @@
1
+ '''
2
+ This module checks whether to break out of the solver loop.
3
+
4
+ Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.
5
+
6
+ Dedicated to late Professor M. J. D. Powell FRS (1936--2015).
7
+
8
+ Python translation by Nickolai Belakovski.
9
+ '''
10
+
11
+ from .infos import INFO_DEFAULT, NAN_INF_X, NAN_INF_F, FTARGET_ACHIEVED, MAXFUN_REACHED
12
+
13
+ import numpy as np
14
+
15
+ def checkbreak_unc(maxfun, nf, f, ftarget, x):
16
+ '''
17
+ This module checks whether to break out of the solver loop in the unconstrained case.
18
+ '''
19
+
20
+ # Outputs
21
+ info = INFO_DEFAULT
22
+
23
+ # Local variables
24
+ srname = "CHECKbreak_UNC"
25
+
26
+ # Preconditions
27
+ assert INFO_DEFAULT not in [NAN_INF_X, NAN_INF_F, FTARGET_ACHIEVED, MAXFUN_REACHED], f'NAN_INF_X, NAN_INF_F, FTARGET_ACHIEVED, and MAXFUN_REACHED differ from INFO_DFT {srname}'
28
+ # X does not contain NaN if the initial X does not contain NaN and the subroutines generating
29
+ # trust-region/geometry steps work properly so that they never produce a step containing NaN/Inf.
30
+ assert not any(np.isnan(x)), f'X does not contain NaN {srname}'
31
+ # With the moderated extreme barrier, F cannot be NaN/+Inf.
32
+ assert not (any(np.isnan(f)) or any(np.isposinf(f))), f'F is not NaN/+Inf {srname}'
33
+
34
+ #====================#
35
+ # Calculation starts #
36
+ #====================#
37
+
38
+ # Although X should not contain NaN unless there is a bug, we include the following for security.
39
+ # X can be Inf, as finite + finite can be Inf numerically.
40
+ if any(np.isnan(x)) or any(np.isinf(x)):
41
+ info = NAN_INF_X
42
+
43
+ # Although NAN_INF_F should not happen unless there is a bug, we include the following for security.
44
+ if any(np.isnan(f)) or any(np.isposinf(f)):
45
+ info = NAN_INF_F
46
+
47
+ if f <= ftarget:
48
+ info = FTARGET_ACHIEVED
49
+
50
+ if nf >= maxfun:
51
+ info = MAXFUN_REACHED
52
+
53
+ return info
54
+
55
+ def checkbreak_con(maxfun, nf, cstrv, ctol, f, ftarget, x):
56
+ '''
57
+ This module checks whether to break out of the solver loop in the constrained case.
58
+ '''
59
+
60
+ # Outputs
61
+ info = INFO_DEFAULT
62
+
63
+ # Local variables
64
+ srname = "CHECKbreak_CON"
65
+
66
+ # Preconditions
67
+ assert INFO_DEFAULT not in [NAN_INF_X, NAN_INF_F, FTARGET_ACHIEVED, MAXFUN_REACHED], f'NAN_INF_X, NAN_INF_F, FTARGET_ACHIEVED, and MAXFUN_REACHED differ from INFO_DFT {srname}'
68
+ # X does not contain NaN if the initial X does not contain NaN and the subroutines generating
69
+ # trust-region/geometry steps work properly so that they never produce a step containing NaN/Inf.
70
+ assert not any(np.isnan(x)), f'X does not contain NaN {srname}'
71
+ # With the moderated extreme barrier, F or CSTRV cannot be NaN/+Inf.
72
+ assert not (np.isnan(f) or np.isposinf(f) or np.isnan(cstrv) or np.isposinf(cstrv)), f'F or CSTRV is not NaN/+Inf {srname}'
73
+
74
+ #====================#
75
+ # Calculation starts #
76
+ #====================#
77
+
78
+ # Although X should not contain NaN unless there is a bug, we include the following for security.
79
+ # X can be Inf, as finite + finite can be Inf numerically.
80
+ if any(np.isnan(x)) or any(np.isinf(x)):
81
+ info = NAN_INF_X
82
+
83
+ # Although NAN_INF_F should not happen unless there is a bug, we include the following for security.
84
+ if np.isnan(f) or np.isposinf(f) or np.isnan(cstrv) or np.isposinf(cstrv):
85
+ info = NAN_INF_F
86
+
87
+ if cstrv <= ctol and f <= ftarget:
88
+ info = FTARGET_ACHIEVED
89
+
90
+ if nf >= maxfun:
91
+ info = MAXFUN_REACHED
92
+
93
+ return info
@@ -0,0 +1,47 @@
1
+ '''
2
+ This is a module defining some constants.
3
+
4
+ Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.
5
+
6
+ Dedicated to late Professor M. J. D. Powell FRS (1936--2015).
7
+
8
+ Python translation by Nickolai Belakovski.
9
+ '''
10
+
11
+ import numpy as np
12
+ import os
13
+
14
+ DEBUGGING = bool(os.getenv('PRIMA_DEBUGGING'))
15
+
16
+ REALMIN = np.finfo(float).tiny
17
+ REALMAX = np.finfo(float).max
18
+ FUNCMAX = 10.0**30
19
+ CONSTRMAX = FUNCMAX
20
+ EPS = np.finfo(float).eps
21
+
22
+ # Any bound with an absolute value at least BOUNDMAX is considered as no bound.
23
+ BOUNDMAX = REALMAX/4
24
+
25
+ # Some default values
26
+ RHOBEG_DEFAULT = 1
27
+ RHOEND_DEFAULT = 1e-6
28
+ FTARGET_DEFAULT = -REALMAX
29
+ CTOL_DEFAULT = np.sqrt(EPS)
30
+ CWEIGHT_DEFAULT = 1e8
31
+ ETA1_DEFAULT = 0.1
32
+ ETA2_DEFAULT = 0.7
33
+ GAMMA1_DEFAULT = 0.5
34
+ GAMMA2_DEFAULT = 2
35
+ IPRINT_DEFAULT = 0
36
+ MAXFUN_DIM_DEFAULT = 500
37
+
38
+ PRIMA_MAX_HIST_MEM_MB = 300 # 1MB > 10^5*REAL64. 100 can be too small.
39
+
40
+ # Maximal amount of memory (Byte) allowed for XHIST, FHIST, CONHIST, CHIST, and the filters.
41
+ MHM = PRIMA_MAX_HIST_MEM_MB * 10**6
42
+ # Make sure that MAXHISTMEM does not exceed HUGE(0) to avoid overflow and memory errors.
43
+ MAXHISTMEM = min(MHM, np.iinfo(np.int32).max)
44
+
45
+ # Maximal length of the filter used in constrained solvers.
46
+ MIN_MAXFILT = 200 # Should be positive; < 200 is not recommended.
47
+ MAXFILT_DEFAULT = 10 * MIN_MAXFILT
@@ -0,0 +1,99 @@
1
+ '''
2
+ This is a module evaluating the objective/constraint function with Nan/Inf handling.
3
+
4
+ Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.
5
+
6
+ Dedicated to late Professor M. J. D. Powell FRS (1936--2015).
7
+
8
+ Python translation by Nickolai Belakovski.
9
+ '''
10
+
11
+ import numpy as np
12
+ from .consts import FUNCMAX, CONSTRMAX, REALMAX, DEBUGGING
13
+ from .linalg import matprod, primasum
14
+
15
+ # This is a module evaluating the objective/constraint function with Nan/Inf handling.
16
+
17
+
18
+ def moderatex(x):
19
+ '''
20
+ This function moderates a decision variable. It replaces NaN by 0 and Inf/-Inf by
21
+ REALMAX/-REALMAX.
22
+ '''
23
+ x[np.isnan(x)] = 0
24
+ x = np.clip(x, -REALMAX, REALMAX)
25
+ return x
26
+
27
+ def moderatef(f):
28
+ """
29
+ This function moderates the function value of a MINIMIZATION problem. It replaces
30
+ NaN and any value above FUNCMAX by FUNCMAX.
31
+ """
32
+ f = FUNCMAX if np.isnan(f) else f
33
+ f = np.clip(f, -REALMAX, FUNCMAX)
34
+ # We may moderate huge negative function values as follows, but we decide not to.
35
+ # f = np.clip(f, -FUNCMAX, FUNCMAX)
36
+ return f
37
+
38
+
39
+ def moderatec(c):
40
+ """
41
+ This function moderates the constraint value, the constraint demanding this value
42
+ to be NONNEGATIVE. It replaces any value below -CONSTRMAX by -CONSTRMAX, and any
43
+ NaN or value above CONSTRMAX by CONSTRMAX.
44
+ """
45
+ np.nan_to_num(c, copy=False, nan=CONSTRMAX)
46
+ c = np.clip(c, -CONSTRMAX, CONSTRMAX)
47
+ return c
48
+
49
+
50
+ def evaluate(calcfc, x, m_nlcon, amat, bvec):
51
+ """
52
+ This function evaluates CALCFC at X, returning the objective function value and the
53
+ constraint value. Nan/Inf are handled by a moderated extreme barrier.
54
+ """
55
+
56
+ # Sizes
57
+ m_lcon = len(bvec) if bvec is not None else 0
58
+
59
+ # Preconditions
60
+ if DEBUGGING:
61
+ # X should not contain NaN if the initial X does not contain NaN and the
62
+ # subroutines generating # trust-region/geometry steps work properly so that
63
+ # they never produce a step containing NaN/Inf.
64
+ assert not any(np.isnan(x))
65
+
66
+ #====================#
67
+ # Calculation starts #
68
+ #====================#
69
+
70
+ constr = np.zeros(m_lcon + m_nlcon)
71
+ if amat is not None:
72
+ constr[:m_lcon] = matprod(x, amat.T) - bvec
73
+
74
+ if any(np.isnan(x)):
75
+ # Although this should not happen unless there is a bug, we include this case
76
+ # for robustness.
77
+ f = primasum(x)
78
+ constr = np.ones(m_nlcon) * f
79
+ else:
80
+ f, constr[m_lcon:] = calcfc(moderatex(x))
81
+
82
+ # Moderated extreme barrier: replace NaN/huge objective or constraint values
83
+ # with a large but finite value. This is naive, and better approaches surely
84
+ # exist.
85
+ f = moderatef(f)
86
+ constr[m_lcon:] = moderatec(constr[m_lcon:])
87
+
88
+ #==================#
89
+ # Calculation ends #
90
+ #==================#
91
+
92
+ # Postconditions
93
+ if DEBUGGING:
94
+ # With X not containing NaN, and with the moderated extreme barrier, F cannot
95
+ # be NaN/+Inf, and CONSTR cannot be NaN/-Inf.
96
+ assert not (np.isnan(f) or np.isposinf(f))
97
+ assert not any(np.isnan(constr) | np.isposinf(constr))
98
+
99
+ return f, constr
@@ -0,0 +1,38 @@
1
+ '''
2
+ This module provides subroutines that handle the X/F/C histories of the solver, taking into
3
+ account that MAXHIST may be smaller than NF.
4
+
5
+ Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.
6
+
7
+ Dedicated to late Professor M. J. D. Powell FRS (1936--2015).
8
+
9
+ Python translation by Nickolai Belakovski.
10
+ '''
11
+
12
+ def savehist(maxhist, x, xhist, f, fhist, cstrv, chist, constr, conhist):
13
+ '''
14
+ Save the data values to the history lists.
15
+
16
+ The implementation of this function is vastly different from the Fortran implementation.
17
+ This is mostly due to the ease of creating and appending to lists in Python
18
+
19
+ However just like the Fortran version we should be concerned about both performance
20
+ and memory constraints. It will probably be better to initialize an array of NaN for
21
+ each of the histories and keep track of how many indices we have stored. Not needed for
22
+ the moment.
23
+ '''
24
+ if len(xhist) < maxhist:
25
+ xhist.append(x)
26
+ fhist.append(f)
27
+ chist.append(cstrv)
28
+ conhist.append(constr)
29
+ else:
30
+ # This effectively accomplishes what rangehist does in the Fortran implementation
31
+ xhist.pop(0)
32
+ fhist.pop(0)
33
+ chist.pop(0)
34
+ conhist.pop(0)
35
+ xhist.append(x)
36
+ fhist.append(f)
37
+ chist.append(cstrv)
38
+ conhist.append(constr)
@@ -0,0 +1,30 @@
1
+ '''
2
+ This is a module defining exit flags.
3
+
4
+ Translated from Zaikun Zhang's modern-Fortran reference implementation in PRIMA.
5
+
6
+ Dedicated to late Professor M. J. D. Powell FRS (1936--2015).
7
+
8
+ Python translation by Nickolai Belakovski.
9
+ '''
10
+
11
+ INFO_DEFAULT = 0
12
+ SMALL_TR_RADIUS = 0
13
+ FTARGET_ACHIEVED = 1
14
+ TRSUBP_FAILED = 2
15
+ MAXFUN_REACHED = 3
16
+ MAXTR_REACHED = 20
17
+ NAN_INF_X = -1
18
+ NAN_INF_F = -2
19
+ NAN_INF_MODEL = -3
20
+ NO_SPACE_BETWEEN_BOUNDS = 6
21
+ DAMAGING_ROUNDING = 7
22
+ ZERO_LINEAR_CONSTRAINT = 8
23
+ CALLBACK_TERMINATE = 30
24
+
25
+ # Stop-codes.
26
+ # The following codes are used by ERROR STOP as stop-codes, which should be default integers.
27
+ INVALID_INPUT = 100
28
+ ASSERTION_FAILS = 101
29
+ VALIDATION_FAILS = 102
30
+ MEMORY_ALLOCATION_FAILS = 103