scipy 1.15.2__cp313-cp313-win_amd64.whl → 1.16.0rc1__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. scipy/__config__.py +7 -7
  2. scipy/__init__.py +6 -9
  3. scipy/_cyutility.cp313-win_amd64.dll.a +0 -0
  4. scipy/_cyutility.cp313-win_amd64.pyd +0 -0
  5. scipy/_lib/_array_api.py +497 -161
  6. scipy/_lib/_array_api_compat_vendor.py +9 -0
  7. scipy/_lib/_bunch.py +4 -0
  8. scipy/_lib/_ccallback_c.cp313-win_amd64.dll.a +0 -0
  9. scipy/_lib/_ccallback_c.cp313-win_amd64.pyd +0 -0
  10. scipy/_lib/_docscrape.py +1 -1
  11. scipy/_lib/_elementwise_iterative_method.py +15 -26
  12. scipy/_lib/_fpumode.cp313-win_amd64.dll.a +0 -0
  13. scipy/_lib/_fpumode.cp313-win_amd64.pyd +0 -0
  14. scipy/_lib/_sparse.py +41 -0
  15. scipy/_lib/_test_ccallback.cp313-win_amd64.dll.a +0 -0
  16. scipy/_lib/_test_ccallback.cp313-win_amd64.pyd +0 -0
  17. scipy/_lib/_test_deprecation_call.cp313-win_amd64.dll.a +0 -0
  18. scipy/_lib/_test_deprecation_call.cp313-win_amd64.pyd +0 -0
  19. scipy/_lib/_test_deprecation_def.cp313-win_amd64.dll.a +0 -0
  20. scipy/_lib/_test_deprecation_def.cp313-win_amd64.pyd +0 -0
  21. scipy/_lib/_testutils.py +6 -2
  22. scipy/_lib/_uarray/_uarray.cp313-win_amd64.dll.a +0 -0
  23. scipy/_lib/_uarray/_uarray.cp313-win_amd64.pyd +0 -0
  24. scipy/_lib/_util.py +222 -125
  25. scipy/_lib/array_api_compat/__init__.py +4 -4
  26. scipy/_lib/array_api_compat/_internal.py +19 -6
  27. scipy/_lib/array_api_compat/common/__init__.py +1 -1
  28. scipy/_lib/array_api_compat/common/_aliases.py +365 -193
  29. scipy/_lib/array_api_compat/common/_fft.py +94 -64
  30. scipy/_lib/array_api_compat/common/_helpers.py +413 -180
  31. scipy/_lib/array_api_compat/common/_linalg.py +116 -40
  32. scipy/_lib/array_api_compat/common/_typing.py +179 -10
  33. scipy/_lib/array_api_compat/cupy/__init__.py +1 -4
  34. scipy/_lib/array_api_compat/cupy/_aliases.py +61 -41
  35. scipy/_lib/array_api_compat/cupy/_info.py +16 -6
  36. scipy/_lib/array_api_compat/cupy/_typing.py +24 -39
  37. scipy/_lib/array_api_compat/dask/array/__init__.py +6 -3
  38. scipy/_lib/array_api_compat/dask/array/_aliases.py +267 -108
  39. scipy/_lib/array_api_compat/dask/array/_info.py +105 -34
  40. scipy/_lib/array_api_compat/dask/array/fft.py +5 -8
  41. scipy/_lib/array_api_compat/dask/array/linalg.py +21 -22
  42. scipy/_lib/array_api_compat/numpy/__init__.py +13 -15
  43. scipy/_lib/array_api_compat/numpy/_aliases.py +98 -49
  44. scipy/_lib/array_api_compat/numpy/_info.py +36 -16
  45. scipy/_lib/array_api_compat/numpy/_typing.py +27 -43
  46. scipy/_lib/array_api_compat/numpy/fft.py +11 -5
  47. scipy/_lib/array_api_compat/numpy/linalg.py +75 -22
  48. scipy/_lib/array_api_compat/torch/__init__.py +3 -5
  49. scipy/_lib/array_api_compat/torch/_aliases.py +262 -159
  50. scipy/_lib/array_api_compat/torch/_info.py +27 -16
  51. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  52. scipy/_lib/array_api_compat/torch/fft.py +17 -18
  53. scipy/_lib/array_api_compat/torch/linalg.py +16 -16
  54. scipy/_lib/array_api_extra/__init__.py +26 -3
  55. scipy/_lib/array_api_extra/_delegation.py +171 -0
  56. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  57. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  58. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  59. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  60. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  61. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  62. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  63. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  64. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  65. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  66. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  67. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  68. scipy/_lib/array_api_extra/testing.py +359 -0
  69. scipy/_lib/decorator.py +2 -2
  70. scipy/_lib/doccer.py +1 -7
  71. scipy/_lib/messagestream.cp313-win_amd64.dll.a +0 -0
  72. scipy/_lib/messagestream.cp313-win_amd64.pyd +0 -0
  73. scipy/_lib/pyprima/__init__.py +212 -0
  74. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  75. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  76. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  77. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  78. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  79. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  80. scipy/_lib/pyprima/cobyla/update.py +289 -0
  81. scipy/_lib/pyprima/common/__init__.py +0 -0
  82. scipy/_lib/pyprima/common/_bounds.py +34 -0
  83. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  84. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  85. scipy/_lib/pyprima/common/_project.py +173 -0
  86. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  87. scipy/_lib/pyprima/common/consts.py +47 -0
  88. scipy/_lib/pyprima/common/evaluate.py +99 -0
  89. scipy/_lib/pyprima/common/history.py +38 -0
  90. scipy/_lib/pyprima/common/infos.py +30 -0
  91. scipy/_lib/pyprima/common/linalg.py +435 -0
  92. scipy/_lib/pyprima/common/message.py +290 -0
  93. scipy/_lib/pyprima/common/powalg.py +131 -0
  94. scipy/_lib/pyprima/common/preproc.py +277 -0
  95. scipy/_lib/pyprima/common/present.py +5 -0
  96. scipy/_lib/pyprima/common/ratio.py +54 -0
  97. scipy/_lib/pyprima/common/redrho.py +47 -0
  98. scipy/_lib/pyprima/common/selectx.py +296 -0
  99. scipy/_lib/tests/test__util.py +105 -121
  100. scipy/_lib/tests/test_array_api.py +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.cp313-win_amd64.dll.a +0 -0
  105. scipy/cluster/_hierarchy.cp313-win_amd64.pyd +0 -0
  106. scipy/cluster/_optimal_leaf_ordering.cp313-win_amd64.dll.a +0 -0
  107. scipy/cluster/_optimal_leaf_ordering.cp313-win_amd64.pyd +0 -0
  108. scipy/cluster/_vq.cp313-win_amd64.dll.a +0 -0
  109. scipy/cluster/_vq.cp313-win_amd64.pyd +0 -0
  110. scipy/cluster/hierarchy.py +393 -223
  111. scipy/cluster/tests/test_hierarchy.py +273 -335
  112. scipy/cluster/tests/test_vq.py +45 -61
  113. scipy/cluster/vq.py +39 -35
  114. scipy/conftest.py +263 -157
  115. scipy/constants/_constants.py +4 -1
  116. scipy/constants/tests/test_codata.py +2 -2
  117. scipy/constants/tests/test_constants.py +11 -18
  118. scipy/datasets/_download_all.py +15 -1
  119. scipy/datasets/_fetchers.py +7 -1
  120. scipy/datasets/_utils.py +1 -1
  121. scipy/differentiate/_differentiate.py +25 -25
  122. scipy/differentiate/tests/test_differentiate.py +24 -25
  123. scipy/fft/_basic.py +20 -0
  124. scipy/fft/_helper.py +3 -34
  125. scipy/fft/_pocketfft/helper.py +29 -1
  126. scipy/fft/_pocketfft/pypocketfft.cp313-win_amd64.dll.a +0 -0
  127. scipy/fft/_pocketfft/pypocketfft.cp313-win_amd64.pyd +0 -0
  128. scipy/fft/_pocketfft/tests/test_basic.py +2 -4
  129. scipy/fft/_pocketfft/tests/test_real_transforms.py +4 -4
  130. scipy/fft/_realtransforms.py +13 -0
  131. scipy/fft/tests/test_basic.py +27 -25
  132. scipy/fft/tests/test_fftlog.py +16 -7
  133. scipy/fft/tests/test_helper.py +18 -34
  134. scipy/fft/tests/test_real_transforms.py +8 -10
  135. scipy/fftpack/convolve.cp313-win_amd64.dll.a +0 -0
  136. scipy/fftpack/convolve.cp313-win_amd64.pyd +0 -0
  137. scipy/fftpack/tests/test_basic.py +2 -4
  138. scipy/fftpack/tests/test_real_transforms.py +8 -9
  139. scipy/integrate/_bvp.py +9 -3
  140. scipy/integrate/_cubature.py +3 -2
  141. scipy/integrate/_dop.cp313-win_amd64.dll.a +0 -0
  142. scipy/integrate/_dop.cp313-win_amd64.pyd +0 -0
  143. scipy/integrate/_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.cp313-win_amd64.dll.a +0 -0
  147. scipy/integrate/_lsoda.cp313-win_amd64.pyd +0 -0
  148. scipy/integrate/_ode.py +9 -2
  149. scipy/integrate/_odepack.cp313-win_amd64.dll.a +0 -0
  150. scipy/integrate/_odepack.cp313-win_amd64.pyd +0 -0
  151. scipy/integrate/_quad_vec.py +21 -29
  152. scipy/integrate/_quadpack.cp313-win_amd64.dll.a +0 -0
  153. scipy/integrate/_quadpack.cp313-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.cp313-win_amd64.dll.a +0 -0
  159. scipy/integrate/_test_multivariate.cp313-win_amd64.pyd +0 -0
  160. scipy/integrate/_test_odeint_banded.cp313-win_amd64.dll.a +0 -0
  161. scipy/integrate/_test_odeint_banded.cp313-win_amd64.pyd +0 -0
  162. scipy/integrate/_vode.cp313-win_amd64.dll.a +0 -0
  163. scipy/integrate/_vode.cp313-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.cp313-win_amd64.dll.a +0 -0
  174. scipy/interpolate/_dfitpack.cp313-win_amd64.pyd +0 -0
  175. scipy/interpolate/_dierckx.cp313-win_amd64.dll.a +0 -0
  176. scipy/interpolate/_dierckx.cp313-win_amd64.pyd +0 -0
  177. scipy/interpolate/_fitpack.cp313-win_amd64.dll.a +0 -0
  178. scipy/interpolate/_fitpack.cp313-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.cp313-win_amd64.dll.a +0 -0
  183. scipy/interpolate/_interpnd.cp313-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.cp313-win_amd64.dll.a +0 -0
  189. scipy/interpolate/_ppoly.cp313-win_amd64.pyd +0 -0
  190. scipy/interpolate/_rbf.py +2 -2
  191. scipy/interpolate/_rbfinterp.py +1 -1
  192. scipy/interpolate/_rbfinterp_pythran.cp313-win_amd64.dll.a +0 -0
  193. scipy/interpolate/_rbfinterp_pythran.cp313-win_amd64.pyd +0 -0
  194. scipy/interpolate/_rgi.py +31 -26
  195. scipy/interpolate/_rgi_cython.cp313-win_amd64.dll.a +0 -0
  196. scipy/interpolate/_rgi_cython.cp313-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.cp313-win_amd64.dll.a +0 -0
  207. scipy/io/_fast_matrix_market/_fmm_core.cp313-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.cp313-win_amd64.dll.a +0 -0
  213. scipy/io/_test_fortran.cp313-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.cp313-win_amd64.dll.a +0 -0
  219. scipy/io/matlab/_mio5_utils.cp313-win_amd64.pyd +0 -0
  220. scipy/io/matlab/_mio_utils.cp313-win_amd64.dll.a +0 -0
  221. scipy/io/matlab/_mio_utils.cp313-win_amd64.pyd +0 -0
  222. scipy/io/matlab/_miobase.py +4 -1
  223. scipy/io/matlab/_streams.cp313-win_amd64.dll.a +0 -0
  224. scipy/io/matlab/_streams.cp313-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.cp313-win_amd64.dll.a +0 -0
  232. scipy/linalg/_cythonized_array_utils.cp313-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.cp313-win_amd64.dll.a +0 -0
  237. scipy/linalg/_decomp_interpolative.cp313-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.cp313-win_amd64.dll.a +0 -0
  241. scipy/linalg/_decomp_lu_cython.cp313-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.cp313-win_amd64.dll.a +0 -0
  248. scipy/linalg/_decomp_update.cp313-win_amd64.pyd +0 -0
  249. scipy/linalg/_expm_frechet.py +4 -0
  250. scipy/linalg/_fblas.cp313-win_amd64.dll.a +0 -0
  251. scipy/linalg/_fblas.cp313-win_amd64.pyd +0 -0
  252. scipy/linalg/_flapack.cp313-win_amd64.dll.a +0 -0
  253. scipy/linalg/_flapack.cp313-win_amd64.pyd +0 -0
  254. scipy/linalg/_linalg_pythran.cp313-win_amd64.dll.a +0 -0
  255. scipy/linalg/_linalg_pythran.cp313-win_amd64.pyd +0 -0
  256. scipy/linalg/_matfuncs.py +187 -4
  257. scipy/linalg/_matfuncs_expm.cp313-win_amd64.dll.a +0 -0
  258. scipy/linalg/_matfuncs_expm.cp313-win_amd64.pyd +0 -0
  259. scipy/linalg/_matfuncs_schur_sqrtm.cp313-win_amd64.dll.a +0 -0
  260. scipy/linalg/_matfuncs_schur_sqrtm.cp313-win_amd64.pyd +0 -0
  261. scipy/linalg/_matfuncs_sqrtm.py +1 -99
  262. scipy/linalg/_matfuncs_sqrtm_triu.cp313-win_amd64.dll.a +0 -0
  263. scipy/linalg/_matfuncs_sqrtm_triu.cp313-win_amd64.pyd +0 -0
  264. scipy/linalg/_procrustes.py +2 -0
  265. scipy/linalg/_sketches.py +17 -6
  266. scipy/linalg/_solve_toeplitz.cp313-win_amd64.dll.a +0 -0
  267. scipy/linalg/_solve_toeplitz.cp313-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.cp313-win_amd64.dll.a +0 -0
  271. scipy/linalg/cython_blas.cp313-win_amd64.pyd +0 -0
  272. scipy/linalg/cython_lapack.cp313-win_amd64.dll.a +0 -0
  273. scipy/linalg/cython_lapack.cp313-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.cp313-win_amd64.dll.a +0 -0
  290. scipy/ndimage/_ctest.cp313-win_amd64.pyd +0 -0
  291. scipy/ndimage/_cytest.cp313-win_amd64.dll.a +0 -0
  292. scipy/ndimage/_cytest.cp313-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.cp313-win_amd64.dll.a +0 -0
  299. scipy/ndimage/_nd_image.cp313-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.cp313-win_amd64.dll.a +0 -0
  303. scipy/ndimage/_ni_label.cp313-win_amd64.pyd +0 -0
  304. scipy/ndimage/_ni_support.py +1 -5
  305. scipy/ndimage/_rank_filter_1d.cp313-win_amd64.dll.a +0 -0
  306. scipy/ndimage/_rank_filter_1d.cp313-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.cp313-win_amd64.dll.a +0 -0
  315. scipy/odr/__odrpack.cp313-win_amd64.pyd +0 -0
  316. scipy/optimize/_basinhopping.py +13 -7
  317. scipy/optimize/_bglu_dense.cp313-win_amd64.dll.a +0 -0
  318. scipy/optimize/_bglu_dense.cp313-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.cp313-win_amd64.dll.a +0 -0
  326. scipy/optimize/_direct.cp313-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.cp313-win_amd64.dll.a +0 -0
  330. scipy/optimize/_group_columns.cp313-win_amd64.pyd +0 -0
  331. scipy/optimize/_highspy/_core.cp313-win_amd64.dll.a +0 -0
  332. scipy/optimize/_highspy/_core.cp313-win_amd64.pyd +0 -0
  333. scipy/optimize/_highspy/_highs_options.cp313-win_amd64.dll.a +0 -0
  334. scipy/optimize/_highspy/_highs_options.cp313-win_amd64.pyd +0 -0
  335. scipy/optimize/_highspy/_highs_wrapper.py +6 -4
  336. scipy/optimize/_lbfgsb.cp313-win_amd64.dll.a +0 -0
  337. scipy/optimize/_lbfgsb.cp313-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.cp313-win_amd64.dll.a +0 -0
  344. scipy/optimize/_lsap.cp313-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.cp313-win_amd64.dll.a +0 -0
  348. scipy/optimize/_lsq/givens_elimination.cp313-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.cp313-win_amd64.dll.a +0 -0
  355. scipy/optimize/_minpack.cp313-win_amd64.pyd +0 -0
  356. scipy/optimize/_minpack_py.py +21 -14
  357. scipy/optimize/_moduleTNC.cp313-win_amd64.dll.a +0 -0
  358. scipy/optimize/_moduleTNC.cp313-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.cp313-win_amd64.dll.a +0 -0
  364. scipy/optimize/_pava_pybind.cp313-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.cp313-win_amd64.dll.a +0 -0
  371. scipy/optimize/_slsqplib.cp313-win_amd64.pyd +0 -0
  372. scipy/optimize/_spectral.py +1 -1
  373. scipy/optimize/_tnc.py +8 -1
  374. scipy/optimize/_trlib/_trlib.cp313-win_amd64.dll.a +0 -0
  375. scipy/optimize/_trlib/_trlib.cp313-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.cp313-win_amd64.dll.a +0 -0
  387. scipy/optimize/_zeros.cp313-win_amd64.pyd +0 -0
  388. scipy/optimize/_zeros_py.py +97 -17
  389. scipy/optimize/cython_optimize/_zeros.cp313-win_amd64.dll.a +0 -0
  390. scipy/optimize/cython_optimize/_zeros.cp313-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.cp313-win_amd64.dll.a +0 -0
  422. scipy/signal/_max_len_seq_inner.cp313-win_amd64.pyd +0 -0
  423. scipy/signal/_peak_finding_utils.cp313-win_amd64.dll.a +0 -0
  424. scipy/signal/_peak_finding_utils.cp313-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.cp313-win_amd64.dll.a +0 -0
  430. scipy/signal/_sigtools.cp313-win_amd64.pyd +0 -0
  431. scipy/signal/_sosfilt.cp313-win_amd64.dll.a +0 -0
  432. scipy/signal/_sosfilt.cp313-win_amd64.pyd +0 -0
  433. scipy/signal/_spectral_py.py +221 -50
  434. scipy/signal/_spline.cp313-win_amd64.dll.a +0 -0
  435. scipy/signal/_spline.cp313-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.cp313-win_amd64.dll.a +0 -0
  440. scipy/signal/_upfirdn_apply.cp313-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.cp313-win_amd64.dll.a +0 -0
  467. scipy/sparse/_csparsetools.cp313-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.cp313-win_amd64.dll.a +0 -0
  475. scipy/sparse/_sparsetools.cp313-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.cp313-win_amd64.dll.a +0 -0
  484. scipy/sparse/csgraph/_flow.cp313-win_amd64.pyd +0 -0
  485. scipy/sparse/csgraph/_matching.cp313-win_amd64.dll.a +0 -0
  486. scipy/sparse/csgraph/_matching.cp313-win_amd64.pyd +0 -0
  487. scipy/sparse/csgraph/_min_spanning_tree.cp313-win_amd64.dll.a +0 -0
  488. scipy/sparse/csgraph/_min_spanning_tree.cp313-win_amd64.pyd +0 -0
  489. scipy/sparse/csgraph/_reordering.cp313-win_amd64.dll.a +0 -0
  490. scipy/sparse/csgraph/_reordering.cp313-win_amd64.pyd +0 -0
  491. scipy/sparse/csgraph/_shortest_path.cp313-win_amd64.dll.a +0 -0
  492. scipy/sparse/csgraph/_shortest_path.cp313-win_amd64.pyd +0 -0
  493. scipy/sparse/csgraph/_tools.cp313-win_amd64.dll.a +0 -0
  494. scipy/sparse/csgraph/_tools.cp313-win_amd64.pyd +0 -0
  495. scipy/sparse/csgraph/_traversal.cp313-win_amd64.dll.a +0 -0
  496. scipy/sparse/csgraph/_traversal.cp313-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.cp313-win_amd64.dll.a +0 -0
  505. scipy/sparse/linalg/_dsolve/_superlu.cp313-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.cp313-win_amd64.dll.a +0 -0
  509. scipy/sparse/linalg/_eigen/arpack/_arpack.cp313-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.cp313-win_amd64.dll.a +0 -0
  523. scipy/sparse/linalg/_propack/_cpropack.cp313-win_amd64.pyd +0 -0
  524. scipy/sparse/linalg/_propack/_dpropack.cp313-win_amd64.dll.a +0 -0
  525. scipy/sparse/linalg/_propack/_dpropack.cp313-win_amd64.pyd +0 -0
  526. scipy/sparse/linalg/_propack/_spropack.cp313-win_amd64.dll.a +0 -0
  527. scipy/sparse/linalg/_propack/_spropack.cp313-win_amd64.pyd +0 -0
  528. scipy/sparse/linalg/_propack/_zpropack.cp313-win_amd64.dll.a +0 -0
  529. scipy/sparse/linalg/_propack/_zpropack.cp313-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.cp313-win_amd64.dll.a +0 -0
  542. scipy/spatial/_ckdtree.cp313-win_amd64.pyd +0 -0
  543. scipy/spatial/_distance_pybind.cp313-win_amd64.dll.a +0 -0
  544. scipy/spatial/_distance_pybind.cp313-win_amd64.pyd +0 -0
  545. scipy/spatial/_distance_wrap.cp313-win_amd64.dll.a +0 -0
  546. scipy/spatial/_distance_wrap.cp313-win_amd64.pyd +0 -0
  547. scipy/spatial/_hausdorff.cp313-win_amd64.dll.a +0 -0
  548. scipy/spatial/_hausdorff.cp313-win_amd64.pyd +0 -0
  549. scipy/spatial/_qhull.cp313-win_amd64.dll.a +0 -0
  550. scipy/spatial/_qhull.cp313-win_amd64.pyd +0 -0
  551. scipy/spatial/_voronoi.cp313-win_amd64.dll.a +0 -0
  552. scipy/spatial/_voronoi.cp313-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.cp313-win_amd64.dll.a +0 -0
  559. scipy/spatial/transform/_rigid_transform.cp313-win_amd64.pyd +0 -0
  560. scipy/spatial/transform/_rotation.cp313-win_amd64.dll.a +0 -0
  561. scipy/spatial/transform/_rotation.cp313-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.cp313-win_amd64.dll.a +0 -0
  570. scipy/special/_comb.cp313-win_amd64.pyd +0 -0
  571. scipy/special/_ellip_harm_2.cp313-win_amd64.dll.a +0 -0
  572. scipy/special/_ellip_harm_2.cp313-win_amd64.pyd +0 -0
  573. scipy/special/_gufuncs.cp313-win_amd64.dll.a +0 -0
  574. scipy/special/_gufuncs.cp313-win_amd64.pyd +0 -0
  575. scipy/special/_logsumexp.py +83 -69
  576. scipy/special/_orthogonal.pyi +1 -1
  577. scipy/special/_specfun.cp313-win_amd64.dll.a +0 -0
  578. scipy/special/_specfun.cp313-win_amd64.pyd +0 -0
  579. scipy/special/_special_ufuncs.cp313-win_amd64.dll.a +0 -0
  580. scipy/special/_special_ufuncs.cp313-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.cp313-win_amd64.dll.a +0 -0
  584. scipy/special/_test_internal.cp313-win_amd64.pyd +0 -0
  585. scipy/special/_testutils.py +4 -4
  586. scipy/special/_ufuncs.cp313-win_amd64.dll.a +0 -0
  587. scipy/special/_ufuncs.cp313-win_amd64.pyd +0 -0
  588. scipy/special/_ufuncs.pyi +1 -0
  589. scipy/special/_ufuncs.pyx +215 -1400
  590. scipy/special/_ufuncs_cxx.cp313-win_amd64.dll.a +0 -0
  591. scipy/special/_ufuncs_cxx.cp313-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.cp313-win_amd64.dll.a +0 -0
  597. scipy/special/cython_special.cp313-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.cp313-win_amd64.dll.a +0 -0
  615. scipy/stats/_ansari_swilk_statistics.cp313-win_amd64.pyd +0 -0
  616. scipy/stats/_axis_nan_policy.py +4 -3
  617. scipy/stats/_biasedurn.cp313-win_amd64.dll.a +0 -0
  618. scipy/stats/_biasedurn.cp313-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.cp313-win_amd64.dll.a +0 -0
  632. scipy/stats/_levy_stable/levyst.cp313-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.cp313-win_amd64.dll.a +0 -0
  642. scipy/stats/_qmc_cy.cp313-win_amd64.pyd +0 -0
  643. scipy/stats/_qmvnt.py +16 -95
  644. scipy/stats/_qmvnt_cy.cp313-win_amd64.dll.a +0 -0
  645. scipy/stats/_qmvnt_cy.cp313-win_amd64.pyd +0 -0
  646. scipy/stats/_quantile.py +335 -0
  647. scipy/stats/_rcont/rcont.cp313-win_amd64.dll.a +0 -0
  648. scipy/stats/_rcont/rcont.cp313-win_amd64.pyd +0 -0
  649. scipy/stats/_resampling.py +4 -29
  650. scipy/stats/_sampling.py +1 -1
  651. scipy/stats/_sobol.cp313-win_amd64.dll.a +0 -0
  652. scipy/stats/_sobol.cp313-win_amd64.pyd +0 -0
  653. scipy/stats/_stats.cp313-win_amd64.dll.a +0 -0
  654. scipy/stats/_stats.cp313-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.cp313-win_amd64.dll.a +0 -0
  658. scipy/stats/_stats_pythran.cp313-win_amd64.pyd +0 -0
  659. scipy/stats/_unuran/unuran_wrapper.cp313-win_amd64.dll.a +0 -0
  660. scipy/stats/_unuran/unuran_wrapper.cp313-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.cp313-win_amd64.dll.a +0 -0
  695. scipy/interpolate/_bspl.cp313-win_amd64.pyd +0 -0
  696. scipy/optimize/_cobyla.cp313-win_amd64.dll.a +0 -0
  697. scipy/optimize/_cobyla.cp313-win_amd64.pyd +0 -0
  698. scipy/optimize/_cython_nnls.cp313-win_amd64.dll.a +0 -0
  699. scipy/optimize/_cython_nnls.cp313-win_amd64.pyd +0 -0
  700. scipy/optimize/_slsqp.cp313-win_amd64.dll.a +0 -0
  701. scipy/optimize/_slsqp.cp313-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.cp313-win_amd64.dll.a +0 -0
  764. scipy/stats/_mvn.cp313-win_amd64.pyd +0 -0
  765. scipy-1.15.2.dist-info/DELVEWHEEL +0 -2
  766. /scipy-1.15.2-cp313-cp313-win_amd64.whl → /scipy-1.16.0rc1-cp313-cp313-win_amd64.whl +0 -0
  767. {scipy-1.15.2.dist-info → scipy-1.16.0rc1.dist-info}/WHEEL +0 -0
@@ -1,257 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* beta.c
6
- *
7
- * Beta function
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double a, b, y, beta();
14
- *
15
- * y = beta( a, b );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * - -
22
- * | (a) | (b)
23
- * beta( a, b ) = -----------.
24
- * -
25
- * | (a+b)
26
- *
27
- * For large arguments the logarithm of the function is
28
- * evaluated using lgam(), then exponentiated.
29
- *
30
- *
31
- *
32
- * ACCURACY:
33
- *
34
- * Relative error:
35
- * arithmetic domain # trials peak rms
36
- * IEEE 0,30 30000 8.1e-14 1.1e-14
37
- *
38
- * ERROR MESSAGES:
39
- *
40
- * message condition value returned
41
- * beta overflow log(beta) > MAXLOG 0.0
42
- * a or b <0 integer 0.0
43
- *
44
- */
45
-
46
- /*
47
- * Cephes Math Library Release 2.0: April, 1987
48
- * Copyright 1984, 1987 by Stephen L. Moshier
49
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140
50
- */
51
- #pragma once
52
-
53
- #include "../config.h"
54
- #include "const.h"
55
- #include "gamma.h"
56
- #include "rgamma.h"
57
-
58
- namespace xsf {
59
- namespace cephes {
60
-
61
- XSF_HOST_DEVICE double beta(double, double);
62
- XSF_HOST_DEVICE double lbeta(double, double);
63
-
64
- namespace detail {
65
- constexpr double beta_ASYMP_FACTOR = 1e6;
66
-
67
- /*
68
- * Asymptotic expansion for ln(|B(a, b)|) for a > ASYMP_FACTOR*max(|b|, 1).
69
- */
70
- XSF_HOST_DEVICE inline double lbeta_asymp(double a, double b, int *sgn) {
71
- double r = lgam_sgn(b, sgn);
72
- r -= b * std::log(a);
73
-
74
- r += b * (1 - b) / (2 * a);
75
- r += b * (1 - b) * (1 - 2 * b) / (12 * a * a);
76
- r += -b * b * (1 - b) * (1 - b) / (12 * a * a * a);
77
-
78
- return r;
79
- }
80
-
81
- /*
82
- * Special case for a negative integer argument
83
- */
84
-
85
- XSF_HOST_DEVICE inline double beta_negint(int a, double b) {
86
- int sgn;
87
- if (b == static_cast<int>(b) && 1 - a - b > 0) {
88
- sgn = (static_cast<int>(b) % 2 == 0) ? 1 : -1;
89
- return sgn * xsf::cephes::beta(1 - a - b, b);
90
- } else {
91
- set_error("lbeta", SF_ERROR_OVERFLOW, NULL);
92
- return std::numeric_limits<double>::infinity();
93
- }
94
- }
95
-
96
- XSF_HOST_DEVICE inline double lbeta_negint(int a, double b) {
97
- double r;
98
- if (b == static_cast<int>(b) && 1 - a - b > 0) {
99
- r = xsf::cephes::lbeta(1 - a - b, b);
100
- return r;
101
- } else {
102
- set_error("lbeta", SF_ERROR_OVERFLOW, NULL);
103
- return std::numeric_limits<double>::infinity();
104
- }
105
- }
106
- } // namespace detail
107
-
108
- XSF_HOST_DEVICE inline double beta(double a, double b) {
109
- double y;
110
- int sign = 1;
111
-
112
- if (a <= 0.0) {
113
- if (a == std::floor(a)) {
114
- if (a == static_cast<int>(a)) {
115
- return detail::beta_negint(static_cast<int>(a), b);
116
- } else {
117
- goto overflow;
118
- }
119
- }
120
- }
121
-
122
- if (b <= 0.0) {
123
- if (b == std::floor(b)) {
124
- if (b == static_cast<int>(b)) {
125
- return detail::beta_negint(static_cast<int>(b), a);
126
- } else {
127
- goto overflow;
128
- }
129
- }
130
- }
131
-
132
- if (std::abs(a) < std::abs(b)) {
133
- y = a;
134
- a = b;
135
- b = y;
136
- }
137
-
138
- if (std::abs(a) > detail::beta_ASYMP_FACTOR * std::abs(b) && a > detail::beta_ASYMP_FACTOR) {
139
- /* Avoid loss of precision in lgam(a + b) - lgam(a) */
140
- y = detail::lbeta_asymp(a, b, &sign);
141
- return sign * std::exp(y);
142
- }
143
-
144
- y = a + b;
145
- if (std::abs(y) > detail::MAXGAM || std::abs(a) > detail::MAXGAM || std::abs(b) > detail::MAXGAM) {
146
- int sgngam;
147
- y = detail::lgam_sgn(y, &sgngam);
148
- sign *= sgngam; /* keep track of the sign */
149
- y = detail::lgam_sgn(b, &sgngam) - y;
150
- sign *= sgngam;
151
- y = detail::lgam_sgn(a, &sgngam) + y;
152
- sign *= sgngam;
153
- if (y > detail::MAXLOG) {
154
- goto overflow;
155
- }
156
- return (sign * std::exp(y));
157
- }
158
-
159
- y = rgamma(y);
160
- a = Gamma(a);
161
- b = Gamma(b);
162
- if (std::isinf(y)) {
163
- goto overflow;
164
- }
165
-
166
- if (std::abs(std::abs(a*y) - 1.0) > std::abs(std::abs(b*y) - 1.0)) {
167
- y = b * y;
168
- y *= a;
169
- } else {
170
- y = a * y;
171
- y *= b;
172
- }
173
-
174
- return (y);
175
-
176
- overflow:
177
- set_error("beta", SF_ERROR_OVERFLOW, NULL);
178
- return (sign * std::numeric_limits<double>::infinity());
179
- }
180
-
181
- /* Natural log of |beta|. */
182
-
183
- XSF_HOST_DEVICE inline double lbeta(double a, double b) {
184
- double y;
185
- int sign;
186
-
187
- sign = 1;
188
-
189
- if (a <= 0.0) {
190
- if (a == std::floor(a)) {
191
- if (a == static_cast<int>(a)) {
192
- return detail::lbeta_negint(static_cast<int>(a), b);
193
- } else {
194
- goto over;
195
- }
196
- }
197
- }
198
-
199
- if (b <= 0.0) {
200
- if (b == std::floor(b)) {
201
- if (b == static_cast<int>(b)) {
202
- return detail::lbeta_negint(static_cast<int>(b), a);
203
- } else {
204
- goto over;
205
- }
206
- }
207
- }
208
-
209
- if (std::abs(a) < std::abs(b)) {
210
- y = a;
211
- a = b;
212
- b = y;
213
- }
214
-
215
- if (std::abs(a) > detail::beta_ASYMP_FACTOR * std::abs(b) && a > detail::beta_ASYMP_FACTOR) {
216
- /* Avoid loss of precision in lgam(a + b) - lgam(a) */
217
- y = detail::lbeta_asymp(a, b, &sign);
218
- return y;
219
- }
220
-
221
- y = a + b;
222
- if (std::abs(y) > detail::MAXGAM || std::abs(a) > detail::MAXGAM || std::abs(b) > detail::MAXGAM) {
223
- int sgngam;
224
- y = detail::lgam_sgn(y, &sgngam);
225
- sign *= sgngam; /* keep track of the sign */
226
- y = detail::lgam_sgn(b, &sgngam) - y;
227
- sign *= sgngam;
228
- y = detail::lgam_sgn(a, &sgngam) + y;
229
- sign *= sgngam;
230
- return (y);
231
- }
232
-
233
- y = rgamma(y);
234
- a = Gamma(a);
235
- b = Gamma(b);
236
- if (std::isinf(y)) {
237
- over:
238
- set_error("lbeta", SF_ERROR_OVERFLOW, NULL);
239
- return (sign * std::numeric_limits<double>::infinity());
240
- }
241
-
242
- if (std::abs(std::abs(a*y) - 1.0) > std::abs(std::abs(b*y) - 1.0)) {
243
- y = b * y;
244
- y *= a;
245
- } else {
246
- y = a * y;
247
- y *= b;
248
- }
249
-
250
- if (y < 0) {
251
- y = -y;
252
- }
253
-
254
- return (std::log(y));
255
- }
256
- } // namespace cephes
257
- } // namespace xsf
@@ -1,131 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* cbrt.c
6
- *
7
- * Cube root
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double x, y, cbrt();
14
- *
15
- * y = cbrt( x );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * Returns the cube root of the argument, which may be negative.
22
- *
23
- * Range reduction involves determining the power of 2 of
24
- * the argument. A polynomial of degree 2 applied to the
25
- * mantissa, and multiplication by the cube root of 1, 2, or 4
26
- * approximates the root to within about 0.1%. Then Newton's
27
- * iteration is used three times to converge to an accurate
28
- * result.
29
- *
30
- *
31
- *
32
- * ACCURACY:
33
- *
34
- * Relative error:
35
- * arithmetic domain # trials peak rms
36
- * IEEE 0,1e308 30000 1.5e-16 5.0e-17
37
- *
38
- */
39
- /* cbrt.c */
40
-
41
- /*
42
- * Cephes Math Library Release 2.2: January, 1991
43
- * Copyright 1984, 1991 by Stephen L. Moshier
44
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140
45
- */
46
- #pragma once
47
-
48
- #include "../config.h"
49
-
50
- namespace xsf {
51
- namespace cephes {
52
-
53
- namespace detail {
54
-
55
- constexpr double CBRT2 = 1.2599210498948731647672;
56
- constexpr double CBRT4 = 1.5874010519681994747517;
57
- constexpr double CBRT2I = 0.79370052598409973737585;
58
- constexpr double CBRT4I = 0.62996052494743658238361;
59
-
60
- XSF_HOST_DEVICE inline double cbrt(double x) {
61
- int e, rem, sign;
62
- double z;
63
-
64
- if (!std::isfinite(x)) {
65
- return x;
66
- }
67
- if (x == 0) {
68
- return (x);
69
- }
70
- if (x > 0) {
71
- sign = 1;
72
- } else {
73
- sign = -1;
74
- x = -x;
75
- }
76
-
77
- z = x;
78
- /* extract power of 2, leaving
79
- * mantissa between 0.5 and 1
80
- */
81
- x = std::frexp(x, &e);
82
-
83
- /* Approximate cube root of number between .5 and 1,
84
- * peak relative error = 9.2e-6
85
- */
86
- x = (((-1.3466110473359520655053e-1 * x + 5.4664601366395524503440e-1) * x - 9.5438224771509446525043e-1) *
87
- x +
88
- 1.1399983354717293273738e0) *
89
- x +
90
- 4.0238979564544752126924e-1;
91
-
92
- /* exponent divided by 3 */
93
- if (e >= 0) {
94
- rem = e;
95
- e /= 3;
96
- rem -= 3 * e;
97
- if (rem == 1) {
98
- x *= CBRT2;
99
- } else if (rem == 2) {
100
- x *= CBRT4;
101
- }
102
- }
103
- /* argument less than 1 */
104
- else {
105
- e = -e;
106
- rem = e;
107
- e /= 3;
108
- rem -= 3 * e;
109
- if (rem == 1) {
110
- x *= CBRT2I;
111
- } else if (rem == 2) {
112
- x *= CBRT4I;
113
- }
114
- e = -e;
115
- }
116
-
117
- /* multiply by power of 2 */
118
- x = std::ldexp(x, e);
119
-
120
- /* Newton iteration */
121
- x -= (x - (z / (x * x))) * 0.33333333333333333333;
122
- x -= (x - (z / (x * x))) * 0.33333333333333333333;
123
-
124
- if (sign < 0)
125
- x = -x;
126
- return (x);
127
- }
128
- } // namespace detail
129
-
130
- } // namespace cephes
131
- } // namespace xsf
@@ -1,85 +0,0 @@
1
- /* chbevl.c
2
- *
3
- * Evaluate Chebyshev series
4
- *
5
- *
6
- *
7
- * SYNOPSIS:
8
- *
9
- * int N;
10
- * double x, y, coef[N], chebevl();
11
- *
12
- * y = chbevl( x, coef, N );
13
- *
14
- *
15
- *
16
- * DESCRIPTION:
17
- *
18
- * Evaluates the series
19
- *
20
- * N-1
21
- * - '
22
- * y = > coef[i] T (x/2)
23
- * - i
24
- * i=0
25
- *
26
- * of Chebyshev polynomials Ti at argument x/2.
27
- *
28
- * Coefficients are stored in reverse order, i.e. the zero
29
- * order term is last in the array. Note N is the number of
30
- * coefficients, not the order.
31
- *
32
- * If coefficients are for the interval a to b, x must
33
- * have been transformed to x -> 2(2x - b - a)/(b-a) before
34
- * entering the routine. This maps x from (a, b) to (-1, 1),
35
- * over which the Chebyshev polynomials are defined.
36
- *
37
- * If the coefficients are for the inverted interval, in
38
- * which (a, b) is mapped to (1/b, 1/a), the transformation
39
- * required is x -> 2(2ab/x - b - a)/(b-a). If b is infinity,
40
- * this becomes x -> 4a/x - 1.
41
- *
42
- *
43
- *
44
- * SPEED:
45
- *
46
- * Taking advantage of the recurrence properties of the
47
- * Chebyshev polynomials, the routine requires one more
48
- * addition per loop than evaluating a nested polynomial of
49
- * the same degree.
50
- *
51
- */
52
- /* chbevl.c */
53
-
54
- /*
55
- * Cephes Math Library Release 2.0: April, 1987
56
- * Copyright 1985, 1987 by Stephen L. Moshier
57
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140
58
- */
59
- #pragma once
60
-
61
- #include "../config.h"
62
-
63
- namespace xsf {
64
- namespace cephes {
65
-
66
- XSF_HOST_DEVICE double chbevl(double x, const double array[], int n) {
67
- double b0, b1, b2;
68
- const double *p;
69
- int i;
70
-
71
- p = array;
72
- b0 = *p++;
73
- b1 = 0.0;
74
- i = n - 1;
75
-
76
- do {
77
- b2 = b1;
78
- b1 = b0;
79
- b0 = x * b1 - b2 + *p++;
80
- } while (--i);
81
-
82
- return (0.5 * (b0 - b2));
83
- }
84
- } // namespace cephes
85
- } // namespace xsf
@@ -1,193 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* chdtr.c
6
- *
7
- * Chi-square distribution
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double df, x, y, chdtr();
14
- *
15
- * y = chdtr( df, x );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * Returns the area under the left hand tail (from 0 to x)
22
- * of the Chi square probability density function with
23
- * v degrees of freedom.
24
- *
25
- *
26
- * inf.
27
- * -
28
- * 1 | | v/2-1 -t/2
29
- * P( x | v ) = ----------- | t e dt
30
- * v/2 - | |
31
- * 2 | (v/2) -
32
- * x
33
- *
34
- * where x is the Chi-square variable.
35
- *
36
- * The incomplete Gamma integral is used, according to the
37
- * formula
38
- *
39
- * y = chdtr( v, x ) = igam( v/2.0, x/2.0 ).
40
- *
41
- *
42
- * The arguments must both be positive.
43
- *
44
- *
45
- *
46
- * ACCURACY:
47
- *
48
- * See igam().
49
- *
50
- * ERROR MESSAGES:
51
- *
52
- * message condition value returned
53
- * chdtr domain x < 0 or v < 1 0.0
54
- */
55
- /* chdtrc()
56
- *
57
- * Complemented Chi-square distribution
58
- *
59
- *
60
- *
61
- * SYNOPSIS:
62
- *
63
- * double v, x, y, chdtrc();
64
- *
65
- * y = chdtrc( v, x );
66
- *
67
- *
68
- *
69
- * DESCRIPTION:
70
- *
71
- * Returns the area under the right hand tail (from x to
72
- * infinity) of the Chi square probability density function
73
- * with v degrees of freedom:
74
- *
75
- *
76
- * inf.
77
- * -
78
- * 1 | | v/2-1 -t/2
79
- * P( x | v ) = ----------- | t e dt
80
- * v/2 - | |
81
- * 2 | (v/2) -
82
- * x
83
- *
84
- * where x is the Chi-square variable.
85
- *
86
- * The incomplete Gamma integral is used, according to the
87
- * formula
88
- *
89
- * y = chdtr( v, x ) = igamc( v/2.0, x/2.0 ).
90
- *
91
- *
92
- * The arguments must both be positive.
93
- *
94
- *
95
- *
96
- * ACCURACY:
97
- *
98
- * See igamc().
99
- *
100
- * ERROR MESSAGES:
101
- *
102
- * message condition value returned
103
- * chdtrc domain x < 0 or v < 1 0.0
104
- */
105
- /* chdtri()
106
- *
107
- * Inverse of complemented Chi-square distribution
108
- *
109
- *
110
- *
111
- * SYNOPSIS:
112
- *
113
- * double df, x, y, chdtri();
114
- *
115
- * x = chdtri( df, y );
116
- *
117
- *
118
- *
119
- *
120
- * DESCRIPTION:
121
- *
122
- * Finds the Chi-square argument x such that the integral
123
- * from x to infinity of the Chi-square density is equal
124
- * to the given cumulative probability y.
125
- *
126
- * This is accomplished using the inverse Gamma integral
127
- * function and the relation
128
- *
129
- * x/2 = igamci( df/2, y );
130
- *
131
- *
132
- *
133
- *
134
- * ACCURACY:
135
- *
136
- * See igami.c.
137
- *
138
- * ERROR MESSAGES:
139
- *
140
- * message condition value returned
141
- * chdtri domain y < 0 or y > 1 0.0
142
- * v < 1
143
- *
144
- */
145
-
146
- /* chdtr() */
147
-
148
- /*
149
- * Cephes Math Library Release 2.0: April, 1987
150
- * Copyright 1984, 1987 by Stephen L. Moshier
151
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140
152
- */
153
- #pragma once
154
-
155
- #include "../config.h"
156
- #include "../error.h"
157
-
158
- #include "igam.h"
159
- #include "igami.h"
160
-
161
- namespace xsf {
162
- namespace cephes {
163
-
164
- XSF_HOST_DEVICE inline double chdtrc(double df, double x) {
165
-
166
- if (x < 0.0)
167
- return 1.0; /* modified by T. Oliphant */
168
- return (igamc(df / 2.0, x / 2.0));
169
- }
170
-
171
- XSF_HOST_DEVICE inline double chdtr(double df, double x) {
172
-
173
- if ((x < 0.0)) { /* || (df < 1.0) ) */
174
- set_error("chdtr", SF_ERROR_DOMAIN, NULL);
175
- return (std::numeric_limits<double>::quiet_NaN());
176
- }
177
- return (igam(df / 2.0, x / 2.0));
178
- }
179
-
180
- XSF_HOST_DEVICE double chdtri(double df, double y) {
181
- double x;
182
-
183
- if ((y < 0.0) || (y > 1.0)) { /* || (df < 1.0) ) */
184
- set_error("chdtri", SF_ERROR_DOMAIN, NULL);
185
- return (std::numeric_limits<double>::quiet_NaN());
186
- }
187
-
188
- x = igamci(0.5 * df, y);
189
- return (2.0 * x);
190
- }
191
-
192
- } // namespace cephes
193
- } // namespace xsf