scipy 1.15.3__cp313-cp313t-win_amd64.whl → 1.16.0rc2__cp313-cp313t-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 +7 -7
  2. scipy/__init__.py +3 -6
  3. scipy/_cyutility.cp313t-win_amd64.dll.a +0 -0
  4. scipy/_cyutility.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  9. scipy/_lib/_ccallback_c.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  13. scipy/_lib/_fpumode.cp313t-win_amd64.pyd +0 -0
  14. scipy/_lib/_sparse.py +41 -0
  15. scipy/_lib/_test_ccallback.cp313t-win_amd64.dll.a +0 -0
  16. scipy/_lib/_test_ccallback.cp313t-win_amd64.pyd +0 -0
  17. scipy/_lib/_test_deprecation_call.cp313t-win_amd64.dll.a +0 -0
  18. scipy/_lib/_test_deprecation_call.cp313t-win_amd64.pyd +0 -0
  19. scipy/_lib/_test_deprecation_def.cp313t-win_amd64.dll.a +0 -0
  20. scipy/_lib/_test_deprecation_def.cp313t-win_amd64.pyd +0 -0
  21. scipy/_lib/_testutils.py +6 -2
  22. scipy/_lib/_uarray/_uarray.cp313t-win_amd64.dll.a +0 -0
  23. scipy/_lib/_uarray/_uarray.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  72. scipy/_lib/messagestream.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  105. scipy/cluster/_hierarchy.cp313t-win_amd64.pyd +0 -0
  106. scipy/cluster/_optimal_leaf_ordering.cp313t-win_amd64.dll.a +0 -0
  107. scipy/cluster/_optimal_leaf_ordering.cp313t-win_amd64.pyd +0 -0
  108. scipy/cluster/_vq.cp313t-win_amd64.dll.a +0 -0
  109. scipy/cluster/_vq.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  127. scipy/fft/_pocketfft/pypocketfft.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  136. scipy/fftpack/convolve.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  142. scipy/integrate/_dop.cp313t-win_amd64.pyd +0 -0
  143. scipy/integrate/_lsoda.cp313t-win_amd64.dll.a +0 -0
  144. scipy/integrate/_lsoda.cp313t-win_amd64.pyd +0 -0
  145. scipy/integrate/_ode.py +9 -2
  146. scipy/integrate/_odepack.cp313t-win_amd64.dll.a +0 -0
  147. scipy/integrate/_odepack.cp313t-win_amd64.pyd +0 -0
  148. scipy/integrate/_quad_vec.py +21 -29
  149. scipy/integrate/_quadpack.cp313t-win_amd64.dll.a +0 -0
  150. scipy/integrate/_quadpack.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  156. scipy/integrate/_test_multivariate.cp313t-win_amd64.pyd +0 -0
  157. scipy/integrate/_test_odeint_banded.cp313t-win_amd64.dll.a +0 -0
  158. scipy/integrate/_test_odeint_banded.cp313t-win_amd64.pyd +0 -0
  159. scipy/integrate/_vode.cp313t-win_amd64.dll.a +0 -0
  160. scipy/integrate/_vode.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  171. scipy/interpolate/_dfitpack.cp313t-win_amd64.pyd +0 -0
  172. scipy/interpolate/_dierckx.cp313t-win_amd64.dll.a +0 -0
  173. scipy/interpolate/_dierckx.cp313t-win_amd64.pyd +0 -0
  174. scipy/interpolate/_fitpack.cp313t-win_amd64.dll.a +0 -0
  175. scipy/interpolate/_fitpack.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  180. scipy/interpolate/_interpnd.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  186. scipy/interpolate/_ppoly.cp313t-win_amd64.pyd +0 -0
  187. scipy/interpolate/_rbf.py +2 -2
  188. scipy/interpolate/_rbfinterp.py +1 -1
  189. scipy/interpolate/_rbfinterp_pythran.cp313t-win_amd64.dll.a +0 -0
  190. scipy/interpolate/_rbfinterp_pythran.cp313t-win_amd64.pyd +0 -0
  191. scipy/interpolate/_rgi.py +31 -26
  192. scipy/interpolate/_rgi_cython.cp313t-win_amd64.dll.a +0 -0
  193. scipy/interpolate/_rgi_cython.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  204. scipy/io/_fast_matrix_market/_fmm_core.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  210. scipy/io/_test_fortran.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  216. scipy/io/matlab/_mio5_utils.cp313t-win_amd64.pyd +0 -0
  217. scipy/io/matlab/_mio_utils.cp313t-win_amd64.dll.a +0 -0
  218. scipy/io/matlab/_mio_utils.cp313t-win_amd64.pyd +0 -0
  219. scipy/io/matlab/_miobase.py +4 -1
  220. scipy/io/matlab/_streams.cp313t-win_amd64.dll.a +0 -0
  221. scipy/io/matlab/_streams.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  229. scipy/linalg/_cythonized_array_utils.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  234. scipy/linalg/_decomp_interpolative.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  238. scipy/linalg/_decomp_lu_cython.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  245. scipy/linalg/_decomp_update.cp313t-win_amd64.pyd +0 -0
  246. scipy/linalg/_expm_frechet.py +4 -0
  247. scipy/linalg/_fblas.cp313t-win_amd64.dll.a +0 -0
  248. scipy/linalg/_fblas.cp313t-win_amd64.pyd +0 -0
  249. scipy/linalg/_flapack.cp313t-win_amd64.dll.a +0 -0
  250. scipy/linalg/_flapack.cp313t-win_amd64.pyd +0 -0
  251. scipy/linalg/_linalg_pythran.cp313t-win_amd64.dll.a +0 -0
  252. scipy/linalg/_linalg_pythran.cp313t-win_amd64.pyd +0 -0
  253. scipy/linalg/_matfuncs.py +187 -4
  254. scipy/linalg/_matfuncs_expm.cp313t-win_amd64.dll.a +0 -0
  255. scipy/linalg/_matfuncs_expm.cp313t-win_amd64.pyd +0 -0
  256. scipy/linalg/_matfuncs_schur_sqrtm.cp313t-win_amd64.dll.a +0 -0
  257. scipy/linalg/_matfuncs_schur_sqrtm.cp313t-win_amd64.pyd +0 -0
  258. scipy/linalg/_matfuncs_sqrtm.py +1 -99
  259. scipy/linalg/_matfuncs_sqrtm_triu.cp313t-win_amd64.dll.a +0 -0
  260. scipy/linalg/_matfuncs_sqrtm_triu.cp313t-win_amd64.pyd +0 -0
  261. scipy/linalg/_procrustes.py +2 -0
  262. scipy/linalg/_sketches.py +17 -6
  263. scipy/linalg/_solve_toeplitz.cp313t-win_amd64.dll.a +0 -0
  264. scipy/linalg/_solve_toeplitz.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  268. scipy/linalg/cython_blas.cp313t-win_amd64.pyd +0 -0
  269. scipy/linalg/cython_lapack.cp313t-win_amd64.dll.a +0 -0
  270. scipy/linalg/cython_lapack.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  286. scipy/ndimage/_ctest.cp313t-win_amd64.pyd +0 -0
  287. scipy/ndimage/_cytest.cp313t-win_amd64.dll.a +0 -0
  288. scipy/ndimage/_cytest.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  295. scipy/ndimage/_nd_image.cp313t-win_amd64.pyd +0 -0
  296. scipy/ndimage/_ni_docstrings.py +5 -1
  297. scipy/ndimage/_ni_label.cp313t-win_amd64.dll.a +0 -0
  298. scipy/ndimage/_ni_label.cp313t-win_amd64.pyd +0 -0
  299. scipy/ndimage/_ni_support.py +1 -5
  300. scipy/ndimage/_rank_filter_1d.cp313t-win_amd64.dll.a +0 -0
  301. scipy/ndimage/_rank_filter_1d.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  310. scipy/odr/__odrpack.cp313t-win_amd64.pyd +0 -0
  311. scipy/optimize/_basinhopping.py +13 -7
  312. scipy/optimize/_bglu_dense.cp313t-win_amd64.dll.a +0 -0
  313. scipy/optimize/_bglu_dense.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  321. scipy/optimize/_direct.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  325. scipy/optimize/_group_columns.cp313t-win_amd64.pyd +0 -0
  326. scipy/optimize/_highspy/_core.cp313t-win_amd64.dll.a +0 -0
  327. scipy/optimize/_highspy/_core.cp313t-win_amd64.pyd +0 -0
  328. scipy/optimize/_highspy/_highs_options.cp313t-win_amd64.dll.a +0 -0
  329. scipy/optimize/_highspy/_highs_options.cp313t-win_amd64.pyd +0 -0
  330. scipy/optimize/_lbfgsb.cp313t-win_amd64.dll.a +0 -0
  331. scipy/optimize/_lbfgsb.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  338. scipy/optimize/_lsap.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  342. scipy/optimize/_lsq/givens_elimination.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  349. scipy/optimize/_minpack.cp313t-win_amd64.pyd +0 -0
  350. scipy/optimize/_minpack_py.py +21 -14
  351. scipy/optimize/_moduleTNC.cp313t-win_amd64.dll.a +0 -0
  352. scipy/optimize/_moduleTNC.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  358. scipy/optimize/_pava_pybind.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  365. scipy/optimize/_slsqplib.cp313t-win_amd64.pyd +0 -0
  366. scipy/optimize/_spectral.py +1 -1
  367. scipy/optimize/_tnc.py +8 -1
  368. scipy/optimize/_trlib/_trlib.cp313t-win_amd64.dll.a +0 -0
  369. scipy/optimize/_trlib/_trlib.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  381. scipy/optimize/_zeros.cp313t-win_amd64.pyd +0 -0
  382. scipy/optimize/_zeros_py.py +97 -17
  383. scipy/optimize/cython_optimize/_zeros.cp313t-win_amd64.dll.a +0 -0
  384. scipy/optimize/cython_optimize/_zeros.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  416. scipy/signal/_max_len_seq_inner.cp313t-win_amd64.pyd +0 -0
  417. scipy/signal/_peak_finding_utils.cp313t-win_amd64.dll.a +0 -0
  418. scipy/signal/_peak_finding_utils.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  424. scipy/signal/_sigtools.cp313t-win_amd64.pyd +0 -0
  425. scipy/signal/_sosfilt.cp313t-win_amd64.dll.a +0 -0
  426. scipy/signal/_sosfilt.cp313t-win_amd64.pyd +0 -0
  427. scipy/signal/_spectral_py.py +230 -50
  428. scipy/signal/_spline.cp313t-win_amd64.dll.a +0 -0
  429. scipy/signal/_spline.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  434. scipy/signal/_upfirdn_apply.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  461. scipy/sparse/_csparsetools.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  469. scipy/sparse/_sparsetools.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  478. scipy/sparse/csgraph/_flow.cp313t-win_amd64.pyd +0 -0
  479. scipy/sparse/csgraph/_matching.cp313t-win_amd64.dll.a +0 -0
  480. scipy/sparse/csgraph/_matching.cp313t-win_amd64.pyd +0 -0
  481. scipy/sparse/csgraph/_min_spanning_tree.cp313t-win_amd64.dll.a +0 -0
  482. scipy/sparse/csgraph/_min_spanning_tree.cp313t-win_amd64.pyd +0 -0
  483. scipy/sparse/csgraph/_reordering.cp313t-win_amd64.dll.a +0 -0
  484. scipy/sparse/csgraph/_reordering.cp313t-win_amd64.pyd +0 -0
  485. scipy/sparse/csgraph/_shortest_path.cp313t-win_amd64.dll.a +0 -0
  486. scipy/sparse/csgraph/_shortest_path.cp313t-win_amd64.pyd +0 -0
  487. scipy/sparse/csgraph/_tools.cp313t-win_amd64.dll.a +0 -0
  488. scipy/sparse/csgraph/_tools.cp313t-win_amd64.pyd +0 -0
  489. scipy/sparse/csgraph/_traversal.cp313t-win_amd64.dll.a +0 -0
  490. scipy/sparse/csgraph/_traversal.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  499. scipy/sparse/linalg/_dsolve/_superlu.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  503. scipy/sparse/linalg/_eigen/arpack/_arpack.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  516. scipy/sparse/linalg/_propack/_cpropack.cp313t-win_amd64.pyd +0 -0
  517. scipy/sparse/linalg/_propack/_dpropack.cp313t-win_amd64.dll.a +0 -0
  518. scipy/sparse/linalg/_propack/_dpropack.cp313t-win_amd64.pyd +0 -0
  519. scipy/sparse/linalg/_propack/_spropack.cp313t-win_amd64.dll.a +0 -0
  520. scipy/sparse/linalg/_propack/_spropack.cp313t-win_amd64.pyd +0 -0
  521. scipy/sparse/linalg/_propack/_zpropack.cp313t-win_amd64.dll.a +0 -0
  522. scipy/sparse/linalg/_propack/_zpropack.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  533. scipy/spatial/_ckdtree.cp313t-win_amd64.pyd +0 -0
  534. scipy/spatial/_distance_pybind.cp313t-win_amd64.dll.a +0 -0
  535. scipy/spatial/_distance_pybind.cp313t-win_amd64.pyd +0 -0
  536. scipy/spatial/_distance_wrap.cp313t-win_amd64.dll.a +0 -0
  537. scipy/spatial/_distance_wrap.cp313t-win_amd64.pyd +0 -0
  538. scipy/spatial/_hausdorff.cp313t-win_amd64.dll.a +0 -0
  539. scipy/spatial/_hausdorff.cp313t-win_amd64.pyd +0 -0
  540. scipy/spatial/_qhull.cp313t-win_amd64.dll.a +0 -0
  541. scipy/spatial/_qhull.cp313t-win_amd64.pyd +0 -0
  542. scipy/spatial/_voronoi.cp313t-win_amd64.dll.a +0 -0
  543. scipy/spatial/_voronoi.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  550. scipy/spatial/transform/_rigid_transform.cp313t-win_amd64.pyd +0 -0
  551. scipy/spatial/transform/_rotation.cp313t-win_amd64.dll.a +0 -0
  552. scipy/spatial/transform/_rotation.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  561. scipy/special/_comb.cp313t-win_amd64.pyd +0 -0
  562. scipy/special/_ellip_harm_2.cp313t-win_amd64.dll.a +0 -0
  563. scipy/special/_ellip_harm_2.cp313t-win_amd64.pyd +0 -0
  564. scipy/special/_gufuncs.cp313t-win_amd64.dll.a +0 -0
  565. scipy/special/_gufuncs.cp313t-win_amd64.pyd +0 -0
  566. scipy/special/_logsumexp.py +67 -58
  567. scipy/special/_orthogonal.pyi +1 -1
  568. scipy/special/_specfun.cp313t-win_amd64.dll.a +0 -0
  569. scipy/special/_specfun.cp313t-win_amd64.pyd +0 -0
  570. scipy/special/_special_ufuncs.cp313t-win_amd64.dll.a +0 -0
  571. scipy/special/_special_ufuncs.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  575. scipy/special/_test_internal.cp313t-win_amd64.pyd +0 -0
  576. scipy/special/_testutils.py +4 -4
  577. scipy/special/_ufuncs.cp313t-win_amd64.dll.a +0 -0
  578. scipy/special/_ufuncs.cp313t-win_amd64.pyd +0 -0
  579. scipy/special/_ufuncs.pyi +1 -0
  580. scipy/special/_ufuncs.pyx +215 -1400
  581. scipy/special/_ufuncs_cxx.cp313t-win_amd64.dll.a +0 -0
  582. scipy/special/_ufuncs_cxx.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  588. scipy/special/cython_special.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  606. scipy/stats/_ansari_swilk_statistics.cp313t-win_amd64.pyd +0 -0
  607. scipy/stats/_axis_nan_policy.py +5 -12
  608. scipy/stats/_biasedurn.cp313t-win_amd64.dll.a +0 -0
  609. scipy/stats/_biasedurn.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  624. scipy/stats/_levy_stable/levyst.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  634. scipy/stats/_qmc_cy.cp313t-win_amd64.pyd +0 -0
  635. scipy/stats/_qmvnt.py +16 -95
  636. scipy/stats/_qmvnt_cy.cp313t-win_amd64.dll.a +0 -0
  637. scipy/stats/_qmvnt_cy.cp313t-win_amd64.pyd +0 -0
  638. scipy/stats/_quantile.py +335 -0
  639. scipy/stats/_rcont/rcont.cp313t-win_amd64.dll.a +0 -0
  640. scipy/stats/_rcont/rcont.cp313t-win_amd64.pyd +0 -0
  641. scipy/stats/_resampling.py +4 -29
  642. scipy/stats/_sampling.py +1 -1
  643. scipy/stats/_sobol.cp313t-win_amd64.dll.a +0 -0
  644. scipy/stats/_sobol.cp313t-win_amd64.pyd +0 -0
  645. scipy/stats/_stats.cp313t-win_amd64.dll.a +0 -0
  646. scipy/stats/_stats.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  650. scipy/stats/_stats_pythran.cp313t-win_amd64.pyd +0 -0
  651. scipy/stats/_unuran/unuran_wrapper.cp313t-win_amd64.dll.a +0 -0
  652. scipy/stats/_unuran/unuran_wrapper.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  687. scipy/interpolate/_bspl.cp313t-win_amd64.pyd +0 -0
  688. scipy/optimize/_cobyla.cp313t-win_amd64.dll.a +0 -0
  689. scipy/optimize/_cobyla.cp313t-win_amd64.pyd +0 -0
  690. scipy/optimize/_cython_nnls.cp313t-win_amd64.dll.a +0 -0
  691. scipy/optimize/_cython_nnls.cp313t-win_amd64.pyd +0 -0
  692. scipy/optimize/_slsqp.cp313t-win_amd64.dll.a +0 -0
  693. scipy/optimize/_slsqp.cp313t-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.cp313t-win_amd64.dll.a +0 -0
  756. scipy/stats/_mvn.cp313t-win_amd64.pyd +0 -0
  757. scipy-1.15.3.dist-info/DELVEWHEEL +0 -2
  758. /scipy-1.15.3-cp313-cp313t-win_amd64.whl → /scipy-1.16.0rc2-cp313-cp313t-win_amd64.whl +0 -0
  759. {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/WHEEL +0 -0
@@ -82,111 +82,6 @@ add_newdoc("_ellip_norm",
82
82
  Internal function, use `ellip_norm` instead.
83
83
  """)
84
84
 
85
- add_newdoc("voigt_profile",
86
- r"""
87
- voigt_profile(x, sigma, gamma, out=None)
88
-
89
- Voigt profile.
90
-
91
- The Voigt profile is a convolution of a 1-D Normal distribution with
92
- standard deviation ``sigma`` and a 1-D Cauchy distribution with half-width at
93
- half-maximum ``gamma``.
94
-
95
- If ``sigma = 0``, PDF of Cauchy distribution is returned.
96
- Conversely, if ``gamma = 0``, PDF of Normal distribution is returned.
97
- If ``sigma = gamma = 0``, the return value is ``Inf`` for ``x = 0``,
98
- and ``0`` for all other ``x``.
99
-
100
- Parameters
101
- ----------
102
- x : array_like
103
- Real argument
104
- sigma : array_like
105
- The standard deviation of the Normal distribution part
106
- gamma : array_like
107
- The half-width at half-maximum of the Cauchy distribution part
108
- out : ndarray, optional
109
- Optional output array for the function values
110
-
111
- Returns
112
- -------
113
- scalar or ndarray
114
- The Voigt profile at the given arguments
115
-
116
- See Also
117
- --------
118
- wofz : Faddeeva function
119
-
120
- Notes
121
- -----
122
- It can be expressed in terms of Faddeeva function
123
-
124
- .. math:: V(x; \sigma, \gamma) = \frac{Re[w(z)]}{\sigma\sqrt{2\pi}},
125
- .. math:: z = \frac{x + i\gamma}{\sqrt{2}\sigma}
126
-
127
- where :math:`w(z)` is the Faddeeva function.
128
-
129
- References
130
- ----------
131
- .. [1] https://en.wikipedia.org/wiki/Voigt_profile
132
-
133
- Examples
134
- --------
135
- Calculate the function at point 2 for ``sigma=1`` and ``gamma=1``.
136
-
137
- >>> from scipy.special import voigt_profile
138
- >>> import numpy as np
139
- >>> import matplotlib.pyplot as plt
140
- >>> voigt_profile(2, 1., 1.)
141
- 0.09071519942627544
142
-
143
- Calculate the function at several points by providing a NumPy array
144
- for `x`.
145
-
146
- >>> values = np.array([-2., 0., 5])
147
- >>> voigt_profile(values, 1., 1.)
148
- array([0.0907152 , 0.20870928, 0.01388492])
149
-
150
- Plot the function for different parameter sets.
151
-
152
- >>> fig, ax = plt.subplots(figsize=(8, 8))
153
- >>> x = np.linspace(-10, 10, 500)
154
- >>> parameters_list = [(1.5, 0., "solid"), (1.3, 0.5, "dashed"),
155
- ... (0., 1.8, "dotted"), (1., 1., "dashdot")]
156
- >>> for params in parameters_list:
157
- ... sigma, gamma, linestyle = params
158
- ... voigt = voigt_profile(x, sigma, gamma)
159
- ... ax.plot(x, voigt, label=rf"$\sigma={sigma},\, \gamma={gamma}$",
160
- ... ls=linestyle)
161
- >>> ax.legend()
162
- >>> plt.show()
163
-
164
- Verify visually that the Voigt profile indeed arises as the convolution
165
- of a normal and a Cauchy distribution.
166
-
167
- >>> from scipy.signal import convolve
168
- >>> x, dx = np.linspace(-10, 10, 500, retstep=True)
169
- >>> def gaussian(x, sigma):
170
- ... return np.exp(-0.5 * x**2/sigma**2)/(sigma * np.sqrt(2*np.pi))
171
- >>> def cauchy(x, gamma):
172
- ... return gamma/(np.pi * (np.square(x)+gamma**2))
173
- >>> sigma = 2
174
- >>> gamma = 1
175
- >>> gauss_profile = gaussian(x, sigma)
176
- >>> cauchy_profile = cauchy(x, gamma)
177
- >>> convolved = dx * convolve(cauchy_profile, gauss_profile, mode="same")
178
- >>> voigt = voigt_profile(x, sigma, gamma)
179
- >>> fig, ax = plt.subplots(figsize=(8, 8))
180
- >>> ax.plot(x, gauss_profile, label="Gauss: $G$", c='b')
181
- >>> ax.plot(x, cauchy_profile, label="Cauchy: $C$", c='y', ls="dashed")
182
- >>> xx = 0.5*(x[1:] + x[:-1]) # midpoints
183
- >>> ax.plot(xx, convolved[1:], label="Convolution: $G * C$", ls='dashdot',
184
- ... c='k')
185
- >>> ax.plot(x, voigt, label="Voigt", ls='dotted', c='r')
186
- >>> ax.legend()
187
- >>> plt.show()
188
- """)
189
-
190
85
  add_newdoc("wrightomega",
191
86
  r"""
192
87
  wrightomega(z, out=None)
@@ -897,6 +792,21 @@ add_newdoc(
897
792
  function by multiplying the result of ``betainc(a, b, x)`` by
898
793
  ``beta(a, b)``.
899
794
 
795
+ ``betainc(a, b, x)`` is treated as a two parameter family of functions
796
+ of a single variable `x`, rather than as a function of three variables.
797
+ This impacts only the limiting cases ``a = 0``, ``b = 0``, ``a = inf``,
798
+ ``b = inf``.
799
+
800
+ In general
801
+
802
+ .. math::
803
+
804
+ \lim_{(a, b) \rightarrow (a_0, b_0)} \mathrm{betainc}(a, b, x)
805
+
806
+ is treated as a pointwise limit in ``x``. Thus for example,
807
+ ``betainc(0, b, 0)`` equals ``0`` for ``b > 0``, although it would be
808
+ indeterminate when considering the simultaneous limit ``(a, x) -> (0+, 0+)``.
809
+
900
810
  This function wraps the ``ibeta`` routine from the
901
811
  Boost Math C++ library [2]_.
902
812
 
@@ -988,6 +898,11 @@ add_newdoc(
988
898
  -----
989
899
  .. versionadded:: 1.11.0
990
900
 
901
+ Like `betainc`, ``betaincc(a, b, x)`` is treated as a two parameter
902
+ family of functions of a single variable `x`, rather than as a function of
903
+ three variables. See the `betainc` docstring for more info on how this
904
+ impacts limiting cases.
905
+
991
906
  This function wraps the ``ibetac`` routine from the
992
907
  Boost Math C++ library [2]_.
993
908
 
@@ -1654,50 +1569,6 @@ add_newdoc("chndtrinc",
1654
1569
 
1655
1570
  """)
1656
1571
 
1657
- add_newdoc("dawsn",
1658
- """
1659
- dawsn(x, out=None)
1660
-
1661
- Dawson's integral.
1662
-
1663
- Computes::
1664
-
1665
- exp(-x**2) * integral(exp(t**2), t=0..x).
1666
-
1667
- Parameters
1668
- ----------
1669
- x : array_like
1670
- Function parameter.
1671
- out : ndarray, optional
1672
- Optional output array for the function values
1673
-
1674
- Returns
1675
- -------
1676
- y : scalar or ndarray
1677
- Value of the integral.
1678
-
1679
- See Also
1680
- --------
1681
- wofz, erf, erfc, erfcx, erfi
1682
-
1683
- References
1684
- ----------
1685
- .. [1] Steven G. Johnson, Faddeeva W function implementation.
1686
- http://ab-initio.mit.edu/Faddeeva
1687
-
1688
- Examples
1689
- --------
1690
- >>> import numpy as np
1691
- >>> from scipy import special
1692
- >>> import matplotlib.pyplot as plt
1693
- >>> x = np.linspace(-15, 15, num=1000)
1694
- >>> plt.plot(x, special.dawsn(x))
1695
- >>> plt.xlabel('$x$')
1696
- >>> plt.ylabel('$dawsn(x)$')
1697
- >>> plt.show()
1698
-
1699
- """)
1700
-
1701
1572
  add_newdoc(
1702
1573
  "elliprc",
1703
1574
  r"""
@@ -2293,189 +2164,6 @@ add_newdoc("entr",
2293
2164
 
2294
2165
  """)
2295
2166
 
2296
- add_newdoc("erf",
2297
- """
2298
- erf(z, out=None)
2299
-
2300
- Returns the error function of complex argument.
2301
-
2302
- It is defined as ``2/sqrt(pi)*integral(exp(-t**2), t=0..z)``.
2303
-
2304
- Parameters
2305
- ----------
2306
- x : ndarray
2307
- Input array.
2308
- out : ndarray, optional
2309
- Optional output array for the function values
2310
-
2311
- Returns
2312
- -------
2313
- res : scalar or ndarray
2314
- The values of the error function at the given points `x`.
2315
-
2316
- See Also
2317
- --------
2318
- erfc, erfinv, erfcinv, wofz, erfcx, erfi
2319
-
2320
- Notes
2321
- -----
2322
- The cumulative of the unit normal distribution is given by
2323
- ``Phi(z) = 1/2[1 + erf(z/sqrt(2))]``.
2324
-
2325
- References
2326
- ----------
2327
- .. [1] https://en.wikipedia.org/wiki/Error_function
2328
- .. [2] Milton Abramowitz and Irene A. Stegun, eds.
2329
- Handbook of Mathematical Functions with Formulas,
2330
- Graphs, and Mathematical Tables. New York: Dover,
2331
- 1972. http://www.math.sfu.ca/~cbm/aands/page_297.htm
2332
- .. [3] Steven G. Johnson, Faddeeva W function implementation.
2333
- http://ab-initio.mit.edu/Faddeeva
2334
-
2335
- Examples
2336
- --------
2337
- >>> import numpy as np
2338
- >>> from scipy import special
2339
- >>> import matplotlib.pyplot as plt
2340
- >>> x = np.linspace(-3, 3)
2341
- >>> plt.plot(x, special.erf(x))
2342
- >>> plt.xlabel('$x$')
2343
- >>> plt.ylabel('$erf(x)$')
2344
- >>> plt.show()
2345
-
2346
- """)
2347
-
2348
- add_newdoc("erfc",
2349
- """
2350
- erfc(x, out=None)
2351
-
2352
- Complementary error function, ``1 - erf(x)``.
2353
-
2354
- Parameters
2355
- ----------
2356
- x : array_like
2357
- Real or complex valued argument
2358
- out : ndarray, optional
2359
- Optional output array for the function results
2360
-
2361
- Returns
2362
- -------
2363
- scalar or ndarray
2364
- Values of the complementary error function
2365
-
2366
- See Also
2367
- --------
2368
- erf, erfi, erfcx, dawsn, wofz
2369
-
2370
- References
2371
- ----------
2372
- .. [1] Steven G. Johnson, Faddeeva W function implementation.
2373
- http://ab-initio.mit.edu/Faddeeva
2374
-
2375
- Examples
2376
- --------
2377
- >>> import numpy as np
2378
- >>> from scipy import special
2379
- >>> import matplotlib.pyplot as plt
2380
- >>> x = np.linspace(-3, 3)
2381
- >>> plt.plot(x, special.erfc(x))
2382
- >>> plt.xlabel('$x$')
2383
- >>> plt.ylabel('$erfc(x)$')
2384
- >>> plt.show()
2385
-
2386
- """)
2387
-
2388
- add_newdoc("erfi",
2389
- """
2390
- erfi(z, out=None)
2391
-
2392
- Imaginary error function, ``-i erf(i z)``.
2393
-
2394
- Parameters
2395
- ----------
2396
- z : array_like
2397
- Real or complex valued argument
2398
- out : ndarray, optional
2399
- Optional output array for the function results
2400
-
2401
- Returns
2402
- -------
2403
- scalar or ndarray
2404
- Values of the imaginary error function
2405
-
2406
- See Also
2407
- --------
2408
- erf, erfc, erfcx, dawsn, wofz
2409
-
2410
- Notes
2411
- -----
2412
-
2413
- .. versionadded:: 0.12.0
2414
-
2415
- References
2416
- ----------
2417
- .. [1] Steven G. Johnson, Faddeeva W function implementation.
2418
- http://ab-initio.mit.edu/Faddeeva
2419
-
2420
- Examples
2421
- --------
2422
- >>> import numpy as np
2423
- >>> from scipy import special
2424
- >>> import matplotlib.pyplot as plt
2425
- >>> x = np.linspace(-3, 3)
2426
- >>> plt.plot(x, special.erfi(x))
2427
- >>> plt.xlabel('$x$')
2428
- >>> plt.ylabel('$erfi(x)$')
2429
- >>> plt.show()
2430
-
2431
- """)
2432
-
2433
- add_newdoc("erfcx",
2434
- """
2435
- erfcx(x, out=None)
2436
-
2437
- Scaled complementary error function, ``exp(x**2) * erfc(x)``.
2438
-
2439
- Parameters
2440
- ----------
2441
- x : array_like
2442
- Real or complex valued argument
2443
- out : ndarray, optional
2444
- Optional output array for the function results
2445
-
2446
- Returns
2447
- -------
2448
- scalar or ndarray
2449
- Values of the scaled complementary error function
2450
-
2451
-
2452
- See Also
2453
- --------
2454
- erf, erfc, erfi, dawsn, wofz
2455
-
2456
- Notes
2457
- -----
2458
-
2459
- .. versionadded:: 0.12.0
2460
-
2461
- References
2462
- ----------
2463
- .. [1] Steven G. Johnson, Faddeeva W function implementation.
2464
- http://ab-initio.mit.edu/Faddeeva
2465
-
2466
- Examples
2467
- --------
2468
- >>> import numpy as np
2469
- >>> from scipy import special
2470
- >>> import matplotlib.pyplot as plt
2471
- >>> x = np.linspace(-3, 3)
2472
- >>> plt.plot(x, special.erfcx(x))
2473
- >>> plt.xlabel('$x$')
2474
- >>> plt.ylabel('$erfcx(x)$')
2475
- >>> plt.show()
2476
-
2477
- """)
2478
-
2479
2167
  add_newdoc(
2480
2168
  "erfinv",
2481
2169
  """
@@ -3399,120 +3087,6 @@ add_newdoc("eval_hermitenorm",
3399
3087
 
3400
3088
  """)
3401
3089
 
3402
-
3403
- add_newdoc("exp10",
3404
- """
3405
- exp10(x, out=None)
3406
-
3407
- Compute ``10**x`` element-wise.
3408
-
3409
- Parameters
3410
- ----------
3411
- x : array_like
3412
- `x` must contain real numbers.
3413
- out : ndarray, optional
3414
- Optional output array for the function values
3415
-
3416
- Returns
3417
- -------
3418
- scalar or ndarray
3419
- ``10**x``, computed element-wise.
3420
-
3421
- Examples
3422
- --------
3423
- >>> import numpy as np
3424
- >>> from scipy.special import exp10
3425
-
3426
- >>> exp10(3)
3427
- 1000.0
3428
- >>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])
3429
- >>> exp10(x)
3430
- array([[ 0.1 , 0.31622777, 1. ],
3431
- [ 3.16227766, 10. , 31.6227766 ]])
3432
-
3433
- """)
3434
-
3435
- add_newdoc("exp2",
3436
- """
3437
- exp2(x, out=None)
3438
-
3439
- Compute ``2**x`` element-wise.
3440
-
3441
- Parameters
3442
- ----------
3443
- x : array_like
3444
- `x` must contain real numbers.
3445
- out : ndarray, optional
3446
- Optional output array for the function values
3447
-
3448
- Returns
3449
- -------
3450
- scalar or ndarray
3451
- ``2**x``, computed element-wise.
3452
-
3453
- Examples
3454
- --------
3455
- >>> import numpy as np
3456
- >>> from scipy.special import exp2
3457
-
3458
- >>> exp2(3)
3459
- 8.0
3460
- >>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])
3461
- >>> exp2(x)
3462
- array([[ 0.5 , 0.70710678, 1. ],
3463
- [ 1.41421356, 2. , 2.82842712]])
3464
- """)
3465
-
3466
- add_newdoc("expm1",
3467
- """
3468
- expm1(x, out=None)
3469
-
3470
- Compute ``exp(x) - 1``.
3471
-
3472
- When `x` is near zero, ``exp(x)`` is near 1, so the numerical calculation
3473
- of ``exp(x) - 1`` can suffer from catastrophic loss of precision.
3474
- ``expm1(x)`` is implemented to avoid the loss of precision that occurs when
3475
- `x` is near zero.
3476
-
3477
- Parameters
3478
- ----------
3479
- x : array_like
3480
- `x` must contain real numbers.
3481
- out : ndarray, optional
3482
- Optional output array for the function values
3483
-
3484
- Returns
3485
- -------
3486
- scalar or ndarray
3487
- ``exp(x) - 1`` computed element-wise.
3488
-
3489
- Examples
3490
- --------
3491
- >>> import numpy as np
3492
- >>> from scipy.special import expm1
3493
-
3494
- >>> expm1(1.0)
3495
- 1.7182818284590451
3496
- >>> expm1([-0.2, -0.1, 0, 0.1, 0.2])
3497
- array([-0.18126925, -0.09516258, 0. , 0.10517092, 0.22140276])
3498
-
3499
- The exact value of ``exp(7.5e-13) - 1`` is::
3500
-
3501
- 7.5000000000028125000000007031250000001318...*10**-13.
3502
-
3503
- Here is what ``expm1(7.5e-13)`` gives:
3504
-
3505
- >>> expm1(7.5e-13)
3506
- 7.5000000000028135e-13
3507
-
3508
- Compare that to ``exp(7.5e-13) - 1``, where the subtraction results in
3509
- a "catastrophic" loss of precision:
3510
-
3511
- >>> np.exp(7.5e-13) - 1
3512
- 7.5006667543675576e-13
3513
-
3514
- """)
3515
-
3516
3090
  add_newdoc("expn",
3517
3091
  r"""
3518
3092
  expn(n, x, out=None)
@@ -6094,49 +5668,6 @@ add_newdoc("_lgam1p",
6094
5668
  Internal function, do not use.
6095
5669
  """)
6096
5670
 
6097
- add_newdoc("log1p",
6098
- """
6099
- log1p(x, out=None)
6100
-
6101
- Calculates log(1 + x) for use when `x` is near zero.
6102
-
6103
- Parameters
6104
- ----------
6105
- x : array_like
6106
- Real or complex valued input.
6107
- out : ndarray, optional
6108
- Optional output array for the function results.
6109
-
6110
- Returns
6111
- -------
6112
- scalar or ndarray
6113
- Values of ``log(1 + x)``.
6114
-
6115
- See Also
6116
- --------
6117
- expm1, cosm1
6118
-
6119
- Examples
6120
- --------
6121
- >>> import numpy as np
6122
- >>> import scipy.special as sc
6123
-
6124
- It is more accurate than using ``log(1 + x)`` directly for ``x``
6125
- near 0. Note that in the below example ``1 + 1e-17 == 1`` to
6126
- double precision.
6127
-
6128
- >>> sc.log1p(1e-17)
6129
- 1e-17
6130
- >>> np.log(1 + 1e-17)
6131
- 0.0
6132
-
6133
- """)
6134
-
6135
- add_newdoc("_log1pmx",
6136
- """
6137
- Internal function, do not use.
6138
- """)
6139
-
6140
5671
  add_newdoc("lpmv",
6141
5672
  r"""
6142
5673
  lpmv(m, v, x, out=None)
@@ -7240,7 +6771,7 @@ add_newdoc("nctdtrit",
7240
6771
  df : array_like
7241
6772
  Degrees of freedom of the distribution. Should be in range (0, inf).
7242
6773
  nc : array_like
7243
- Noncentrality parameter. Should be in range (-1e6, 1e6).
6774
+ Noncentrality parameter.
7244
6775
  p : array_like
7245
6776
  CDF values, in range (0, 1].
7246
6777
  out : ndarray, optional
@@ -7257,6 +6788,19 @@ add_newdoc("nctdtrit",
7257
6788
  nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.
7258
6789
  nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.
7259
6790
 
6791
+ Notes
6792
+ -----
6793
+ This function calculates the quantile of the non-central t distribution using
6794
+ the Boost Math C++ library [1]_.
6795
+
6796
+ Note that the argument order of `nctdtrit` is different from that of the
6797
+ similar ``ppf`` method of `scipy.stats.nct`: `t` is the last
6798
+ parameter of `nctdtrit` but the first parameter of ``scipy.stats.nct.ppf``.
6799
+
6800
+ References
6801
+ ----------
6802
+ .. [1] The Boost Developers. "Boost C++ Libraries". https://www.boost.org/.
6803
+
7260
6804
  Examples
7261
6805
  --------
7262
6806
  >>> from scipy.special import nctdtr, nctdtrit
@@ -7275,65 +6819,6 @@ add_newdoc("nctdtrit",
7275
6819
 
7276
6820
  """)
7277
6821
 
7278
- add_newdoc("ndtr",
7279
- r"""
7280
- ndtr(x, out=None)
7281
-
7282
- Cumulative distribution of the standard normal distribution.
7283
-
7284
- Returns the area under the standard Gaussian probability
7285
- density function, integrated from minus infinity to `x`
7286
-
7287
- .. math::
7288
-
7289
- \frac{1}{\sqrt{2\pi}} \int_{-\infty}^x \exp(-t^2/2) dt
7290
-
7291
- Parameters
7292
- ----------
7293
- x : array_like, real or complex
7294
- Argument
7295
- out : ndarray, optional
7296
- Optional output array for the function results
7297
-
7298
- Returns
7299
- -------
7300
- scalar or ndarray
7301
- The value of the normal CDF evaluated at `x`
7302
-
7303
- See Also
7304
- --------
7305
- log_ndtr : Logarithm of ndtr
7306
- ndtri : Inverse of ndtr, standard normal percentile function
7307
- erf : Error function
7308
- erfc : 1 - erf
7309
- scipy.stats.norm : Normal distribution
7310
-
7311
- Examples
7312
- --------
7313
- Evaluate `ndtr` at one point.
7314
-
7315
- >>> import numpy as np
7316
- >>> from scipy.special import ndtr
7317
- >>> ndtr(0.5)
7318
- 0.6914624612740131
7319
-
7320
- Evaluate the function at several points by providing a NumPy array
7321
- or list for `x`.
7322
-
7323
- >>> ndtr([0, 0.5, 2])
7324
- array([0.5 , 0.69146246, 0.97724987])
7325
-
7326
- Plot the function.
7327
-
7328
- >>> import matplotlib.pyplot as plt
7329
- >>> x = np.linspace(-5, 5, 100)
7330
- >>> fig, ax = plt.subplots()
7331
- >>> ax.plot(x, ndtr(x))
7332
- >>> ax.set_title(r"Standard normal cumulative distribution function $\Phi$")
7333
- >>> plt.show()
7334
- """)
7335
-
7336
-
7337
6822
  add_newdoc("nrdtrimn",
7338
6823
  """
7339
6824
  nrdtrimn(p, std, x, out=None)
@@ -7441,59 +6926,6 @@ add_newdoc("nrdtrisd",
7441
6926
 
7442
6927
  """)
7443
6928
 
7444
- add_newdoc("log_ndtr",
7445
- """
7446
- log_ndtr(x, out=None)
7447
-
7448
- Logarithm of Gaussian cumulative distribution function.
7449
-
7450
- Returns the log of the area under the standard Gaussian probability
7451
- density function, integrated from minus infinity to `x`::
7452
-
7453
- log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))
7454
-
7455
- Parameters
7456
- ----------
7457
- x : array_like, real or complex
7458
- Argument
7459
- out : ndarray, optional
7460
- Optional output array for the function results
7461
-
7462
- Returns
7463
- -------
7464
- scalar or ndarray
7465
- The value of the log of the normal CDF evaluated at `x`
7466
-
7467
- See Also
7468
- --------
7469
- erf
7470
- erfc
7471
- scipy.stats.norm
7472
- ndtr
7473
-
7474
- Examples
7475
- --------
7476
- >>> import numpy as np
7477
- >>> from scipy.special import log_ndtr, ndtr
7478
-
7479
- The benefit of ``log_ndtr(x)`` over the naive implementation
7480
- ``np.log(ndtr(x))`` is most evident with moderate to large positive
7481
- values of ``x``:
7482
-
7483
- >>> x = np.array([6, 7, 9, 12, 15, 25])
7484
- >>> log_ndtr(x)
7485
- array([-9.86587646e-010, -1.27981254e-012, -1.12858841e-019,
7486
- -1.77648211e-033, -3.67096620e-051, -3.05669671e-138])
7487
-
7488
- The results of the naive calculation for the moderate ``x`` values
7489
- have only 5 or 6 correct significant digits. For values of ``x``
7490
- greater than approximately 8.3, the naive expression returns 0:
7491
-
7492
- >>> np.log(ndtr(x))
7493
- array([-9.86587701e-10, -1.27986510e-12, 0.00000000e+00,
7494
- 0.00000000e+00, 0.00000000e+00, 0.00000000e+00])
7495
- """)
7496
-
7497
6929
  add_newdoc("ndtri",
7498
6930
  """
7499
6931
  ndtri(y, out=None)
@@ -8972,176 +8404,6 @@ add_newdoc(
8972
8404
  significantly faster than ``tukeylambda.cdf``.
8973
8405
  """)
8974
8406
 
8975
- add_newdoc("wofz",
8976
- """
8977
- wofz(z, out=None)
8978
-
8979
- Faddeeva function
8980
-
8981
- Returns the value of the Faddeeva function for complex argument::
8982
-
8983
- exp(-z**2) * erfc(-i*z)
8984
-
8985
- Parameters
8986
- ----------
8987
- z : array_like
8988
- complex argument
8989
- out : ndarray, optional
8990
- Optional output array for the function results
8991
-
8992
- Returns
8993
- -------
8994
- scalar or ndarray
8995
- Value of the Faddeeva function
8996
-
8997
- See Also
8998
- --------
8999
- dawsn, erf, erfc, erfcx, erfi
9000
-
9001
- References
9002
- ----------
9003
- .. [1] Steven G. Johnson, Faddeeva W function implementation.
9004
- http://ab-initio.mit.edu/Faddeeva
9005
-
9006
- Examples
9007
- --------
9008
- >>> import numpy as np
9009
- >>> from scipy import special
9010
- >>> import matplotlib.pyplot as plt
9011
-
9012
- >>> x = np.linspace(-3, 3)
9013
- >>> z = special.wofz(x)
9014
-
9015
- >>> plt.plot(x, z.real, label='wofz(x).real')
9016
- >>> plt.plot(x, z.imag, label='wofz(x).imag')
9017
- >>> plt.xlabel('$x$')
9018
- >>> plt.legend(framealpha=1, shadow=True)
9019
- >>> plt.grid(alpha=0.25)
9020
- >>> plt.show()
9021
-
9022
- """)
9023
-
9024
- add_newdoc("xlogy",
9025
- """
9026
- xlogy(x, y, out=None)
9027
-
9028
- Compute ``x*log(y)`` so that the result is 0 if ``x = 0``.
9029
-
9030
- Parameters
9031
- ----------
9032
- x : array_like
9033
- Multiplier
9034
- y : array_like
9035
- Argument
9036
- out : ndarray, optional
9037
- Optional output array for the function results
9038
-
9039
- Returns
9040
- -------
9041
- z : scalar or ndarray
9042
- Computed x*log(y)
9043
-
9044
- Notes
9045
- -----
9046
- The log function used in the computation is the natural log.
9047
-
9048
- .. versionadded:: 0.13.0
9049
-
9050
- Examples
9051
- --------
9052
- We can use this function to calculate the binary logistic loss also
9053
- known as the binary cross entropy. This loss function is used for
9054
- binary classification problems and is defined as:
9055
-
9056
- .. math::
9057
- L = 1/n * \\sum_{i=0}^n -(y_i*log(y\\_pred_i) + (1-y_i)*log(1-y\\_pred_i))
9058
-
9059
- We can define the parameters `x` and `y` as y and y_pred respectively.
9060
- y is the array of the actual labels which over here can be either 0 or 1.
9061
- y_pred is the array of the predicted probabilities with respect to
9062
- the positive class (1).
9063
-
9064
- >>> import numpy as np
9065
- >>> from scipy.special import xlogy
9066
- >>> y = np.array([0, 1, 0, 1, 1, 0])
9067
- >>> y_pred = np.array([0.3, 0.8, 0.4, 0.7, 0.9, 0.2])
9068
- >>> n = len(y)
9069
- >>> loss = -(xlogy(y, y_pred) + xlogy(1 - y, 1 - y_pred)).sum()
9070
- >>> loss /= n
9071
- >>> loss
9072
- 0.29597052165495025
9073
-
9074
- A lower loss is usually better as it indicates that the predictions are
9075
- similar to the actual labels. In this example since our predicted
9076
- probabilities are close to the actual labels, we get an overall loss
9077
- that is reasonably low and appropriate.
9078
-
9079
- """)
9080
-
9081
- add_newdoc("xlog1py",
9082
- """
9083
- xlog1py(x, y, out=None)
9084
-
9085
- Compute ``x*log1p(y)`` so that the result is 0 if ``x = 0``.
9086
-
9087
- Parameters
9088
- ----------
9089
- x : array_like
9090
- Multiplier
9091
- y : array_like
9092
- Argument
9093
- out : ndarray, optional
9094
- Optional output array for the function results
9095
-
9096
- Returns
9097
- -------
9098
- z : scalar or ndarray
9099
- Computed x*log1p(y)
9100
-
9101
- Notes
9102
- -----
9103
-
9104
- .. versionadded:: 0.13.0
9105
-
9106
- Examples
9107
- --------
9108
- This example shows how the function can be used to calculate the log of
9109
- the probability mass function for a geometric discrete random variable.
9110
- The probability mass function of the geometric distribution is defined
9111
- as follows:
9112
-
9113
- .. math:: f(k) = (1-p)^{k-1} p
9114
-
9115
- where :math:`p` is the probability of a single success
9116
- and :math:`1-p` is the probability of a single failure
9117
- and :math:`k` is the number of trials to get the first success.
9118
-
9119
- >>> import numpy as np
9120
- >>> from scipy.special import xlog1py
9121
- >>> p = 0.5
9122
- >>> k = 100
9123
- >>> _pmf = np.power(1 - p, k - 1) * p
9124
- >>> _pmf
9125
- 7.888609052210118e-31
9126
-
9127
- If we take k as a relatively large number the value of the probability
9128
- mass function can become very low. In such cases taking the log of the
9129
- pmf would be more suitable as the log function can change the values
9130
- to a scale that is more appropriate to work with.
9131
-
9132
- >>> _log_pmf = xlog1py(k - 1, -p) + np.log(p)
9133
- >>> _log_pmf
9134
- -69.31471805599453
9135
-
9136
- We can confirm that we get a value close to the original pmf value by
9137
- taking the exponential of the log pmf.
9138
-
9139
- >>> _orig_pmf = np.exp(_log_pmf)
9140
- >>> np.isclose(_pmf, _orig_pmf)
9141
- True
9142
-
9143
- """)
9144
-
9145
8407
  add_newdoc("yn",
9146
8408
  r"""
9147
8409
  yn(n, x, out=None)