scipy 1.15.3__cp312-cp312-win_amd64.whl → 1.16.0__cp312-cp312-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (760) hide show
  1. scipy/__config__.py +8 -8
  2. scipy/__init__.py +3 -6
  3. scipy/_cyutility.cp312-win_amd64.dll.a +0 -0
  4. scipy/_cyutility.cp312-win_amd64.pyd +0 -0
  5. scipy/_lib/_array_api.py +486 -161
  6. scipy/_lib/_array_api_compat_vendor.py +9 -0
  7. scipy/_lib/_bunch.py +4 -0
  8. scipy/_lib/_ccallback_c.cp312-win_amd64.dll.a +0 -0
  9. scipy/_lib/_ccallback_c.cp312-win_amd64.pyd +0 -0
  10. scipy/_lib/_docscrape.py +1 -1
  11. scipy/_lib/_elementwise_iterative_method.py +15 -26
  12. scipy/_lib/_fpumode.cp312-win_amd64.dll.a +0 -0
  13. scipy/_lib/_fpumode.cp312-win_amd64.pyd +0 -0
  14. scipy/_lib/_sparse.py +41 -0
  15. scipy/_lib/_test_ccallback.cp312-win_amd64.dll.a +0 -0
  16. scipy/_lib/_test_ccallback.cp312-win_amd64.pyd +0 -0
  17. scipy/_lib/_test_deprecation_call.cp312-win_amd64.dll.a +0 -0
  18. scipy/_lib/_test_deprecation_call.cp312-win_amd64.pyd +0 -0
  19. scipy/_lib/_test_deprecation_def.cp312-win_amd64.dll.a +0 -0
  20. scipy/_lib/_test_deprecation_def.cp312-win_amd64.pyd +0 -0
  21. scipy/_lib/_testutils.py +6 -2
  22. scipy/_lib/_uarray/_uarray.cp312-win_amd64.dll.a +0 -0
  23. scipy/_lib/_uarray/_uarray.cp312-win_amd64.pyd +0 -0
  24. scipy/_lib/_util.py +222 -125
  25. scipy/_lib/array_api_compat/__init__.py +4 -4
  26. scipy/_lib/array_api_compat/_internal.py +19 -6
  27. scipy/_lib/array_api_compat/common/__init__.py +1 -1
  28. scipy/_lib/array_api_compat/common/_aliases.py +365 -193
  29. scipy/_lib/array_api_compat/common/_fft.py +94 -64
  30. scipy/_lib/array_api_compat/common/_helpers.py +413 -180
  31. scipy/_lib/array_api_compat/common/_linalg.py +116 -40
  32. scipy/_lib/array_api_compat/common/_typing.py +179 -10
  33. scipy/_lib/array_api_compat/cupy/__init__.py +1 -4
  34. scipy/_lib/array_api_compat/cupy/_aliases.py +61 -41
  35. scipy/_lib/array_api_compat/cupy/_info.py +16 -6
  36. scipy/_lib/array_api_compat/cupy/_typing.py +24 -39
  37. scipy/_lib/array_api_compat/dask/array/__init__.py +6 -3
  38. scipy/_lib/array_api_compat/dask/array/_aliases.py +267 -108
  39. scipy/_lib/array_api_compat/dask/array/_info.py +105 -34
  40. scipy/_lib/array_api_compat/dask/array/fft.py +5 -8
  41. scipy/_lib/array_api_compat/dask/array/linalg.py +21 -22
  42. scipy/_lib/array_api_compat/numpy/__init__.py +13 -15
  43. scipy/_lib/array_api_compat/numpy/_aliases.py +98 -49
  44. scipy/_lib/array_api_compat/numpy/_info.py +36 -16
  45. scipy/_lib/array_api_compat/numpy/_typing.py +27 -43
  46. scipy/_lib/array_api_compat/numpy/fft.py +11 -5
  47. scipy/_lib/array_api_compat/numpy/linalg.py +75 -22
  48. scipy/_lib/array_api_compat/torch/__init__.py +3 -5
  49. scipy/_lib/array_api_compat/torch/_aliases.py +262 -159
  50. scipy/_lib/array_api_compat/torch/_info.py +27 -16
  51. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  52. scipy/_lib/array_api_compat/torch/fft.py +17 -18
  53. scipy/_lib/array_api_compat/torch/linalg.py +16 -16
  54. scipy/_lib/array_api_extra/__init__.py +26 -3
  55. scipy/_lib/array_api_extra/_delegation.py +171 -0
  56. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  57. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  58. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  59. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  60. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  61. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  62. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  63. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  64. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  65. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  66. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  67. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  68. scipy/_lib/array_api_extra/testing.py +359 -0
  69. scipy/_lib/decorator.py +2 -2
  70. scipy/_lib/doccer.py +1 -7
  71. scipy/_lib/messagestream.cp312-win_amd64.dll.a +0 -0
  72. scipy/_lib/messagestream.cp312-win_amd64.pyd +0 -0
  73. scipy/_lib/pyprima/__init__.py +212 -0
  74. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  75. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  76. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  77. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  78. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  79. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  80. scipy/_lib/pyprima/cobyla/update.py +289 -0
  81. scipy/_lib/pyprima/common/__init__.py +0 -0
  82. scipy/_lib/pyprima/common/_bounds.py +34 -0
  83. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  84. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  85. scipy/_lib/pyprima/common/_project.py +173 -0
  86. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  87. scipy/_lib/pyprima/common/consts.py +47 -0
  88. scipy/_lib/pyprima/common/evaluate.py +99 -0
  89. scipy/_lib/pyprima/common/history.py +38 -0
  90. scipy/_lib/pyprima/common/infos.py +30 -0
  91. scipy/_lib/pyprima/common/linalg.py +435 -0
  92. scipy/_lib/pyprima/common/message.py +290 -0
  93. scipy/_lib/pyprima/common/powalg.py +131 -0
  94. scipy/_lib/pyprima/common/preproc.py +277 -0
  95. scipy/_lib/pyprima/common/present.py +5 -0
  96. scipy/_lib/pyprima/common/ratio.py +54 -0
  97. scipy/_lib/pyprima/common/redrho.py +47 -0
  98. scipy/_lib/pyprima/common/selectx.py +296 -0
  99. scipy/_lib/tests/test__util.py +105 -121
  100. scipy/_lib/tests/test_array_api.py +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.cp312-win_amd64.dll.a +0 -0
  105. scipy/cluster/_hierarchy.cp312-win_amd64.pyd +0 -0
  106. scipy/cluster/_optimal_leaf_ordering.cp312-win_amd64.dll.a +0 -0
  107. scipy/cluster/_optimal_leaf_ordering.cp312-win_amd64.pyd +0 -0
  108. scipy/cluster/_vq.cp312-win_amd64.dll.a +0 -0
  109. scipy/cluster/_vq.cp312-win_amd64.pyd +0 -0
  110. scipy/cluster/hierarchy.py +393 -223
  111. scipy/cluster/tests/test_hierarchy.py +273 -335
  112. scipy/cluster/tests/test_vq.py +45 -61
  113. scipy/cluster/vq.py +39 -35
  114. scipy/conftest.py +282 -151
  115. scipy/constants/_constants.py +4 -1
  116. scipy/constants/tests/test_codata.py +2 -2
  117. scipy/constants/tests/test_constants.py +11 -18
  118. scipy/datasets/_download_all.py +15 -1
  119. scipy/datasets/_fetchers.py +7 -1
  120. scipy/datasets/_utils.py +1 -1
  121. scipy/differentiate/_differentiate.py +25 -25
  122. scipy/differentiate/tests/test_differentiate.py +24 -25
  123. scipy/fft/_basic.py +20 -0
  124. scipy/fft/_helper.py +3 -34
  125. scipy/fft/_pocketfft/helper.py +29 -1
  126. scipy/fft/_pocketfft/pypocketfft.cp312-win_amd64.dll.a +0 -0
  127. scipy/fft/_pocketfft/pypocketfft.cp312-win_amd64.pyd +0 -0
  128. scipy/fft/_pocketfft/tests/test_basic.py +2 -4
  129. scipy/fft/_pocketfft/tests/test_real_transforms.py +4 -4
  130. scipy/fft/_realtransforms.py +13 -0
  131. scipy/fft/tests/test_basic.py +27 -25
  132. scipy/fft/tests/test_fftlog.py +16 -7
  133. scipy/fft/tests/test_helper.py +18 -34
  134. scipy/fft/tests/test_real_transforms.py +8 -10
  135. scipy/fftpack/convolve.cp312-win_amd64.dll.a +0 -0
  136. scipy/fftpack/convolve.cp312-win_amd64.pyd +0 -0
  137. scipy/fftpack/tests/test_basic.py +2 -4
  138. scipy/fftpack/tests/test_real_transforms.py +8 -9
  139. scipy/integrate/_bvp.py +9 -3
  140. scipy/integrate/_cubature.py +3 -2
  141. scipy/integrate/_dop.cp312-win_amd64.dll.a +0 -0
  142. scipy/integrate/_dop.cp312-win_amd64.pyd +0 -0
  143. scipy/integrate/_lsoda.cp312-win_amd64.dll.a +0 -0
  144. scipy/integrate/_lsoda.cp312-win_amd64.pyd +0 -0
  145. scipy/integrate/_ode.py +9 -2
  146. scipy/integrate/_odepack.cp312-win_amd64.dll.a +0 -0
  147. scipy/integrate/_odepack.cp312-win_amd64.pyd +0 -0
  148. scipy/integrate/_quad_vec.py +21 -29
  149. scipy/integrate/_quadpack.cp312-win_amd64.dll.a +0 -0
  150. scipy/integrate/_quadpack.cp312-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.cp312-win_amd64.dll.a +0 -0
  156. scipy/integrate/_test_multivariate.cp312-win_amd64.pyd +0 -0
  157. scipy/integrate/_test_odeint_banded.cp312-win_amd64.dll.a +0 -0
  158. scipy/integrate/_test_odeint_banded.cp312-win_amd64.pyd +0 -0
  159. scipy/integrate/_vode.cp312-win_amd64.dll.a +0 -0
  160. scipy/integrate/_vode.cp312-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.cp312-win_amd64.dll.a +0 -0
  171. scipy/interpolate/_dfitpack.cp312-win_amd64.pyd +0 -0
  172. scipy/interpolate/_dierckx.cp312-win_amd64.dll.a +0 -0
  173. scipy/interpolate/_dierckx.cp312-win_amd64.pyd +0 -0
  174. scipy/interpolate/_fitpack.cp312-win_amd64.dll.a +0 -0
  175. scipy/interpolate/_fitpack.cp312-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.cp312-win_amd64.dll.a +0 -0
  180. scipy/interpolate/_interpnd.cp312-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.cp312-win_amd64.dll.a +0 -0
  186. scipy/interpolate/_ppoly.cp312-win_amd64.pyd +0 -0
  187. scipy/interpolate/_rbf.py +2 -2
  188. scipy/interpolate/_rbfinterp.py +1 -1
  189. scipy/interpolate/_rbfinterp_pythran.cp312-win_amd64.dll.a +0 -0
  190. scipy/interpolate/_rbfinterp_pythran.cp312-win_amd64.pyd +0 -0
  191. scipy/interpolate/_rgi.py +31 -26
  192. scipy/interpolate/_rgi_cython.cp312-win_amd64.dll.a +0 -0
  193. scipy/interpolate/_rgi_cython.cp312-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.cp312-win_amd64.dll.a +0 -0
  204. scipy/io/_fast_matrix_market/_fmm_core.cp312-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.cp312-win_amd64.dll.a +0 -0
  210. scipy/io/_test_fortran.cp312-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.cp312-win_amd64.dll.a +0 -0
  216. scipy/io/matlab/_mio5_utils.cp312-win_amd64.pyd +0 -0
  217. scipy/io/matlab/_mio_utils.cp312-win_amd64.dll.a +0 -0
  218. scipy/io/matlab/_mio_utils.cp312-win_amd64.pyd +0 -0
  219. scipy/io/matlab/_miobase.py +4 -1
  220. scipy/io/matlab/_streams.cp312-win_amd64.dll.a +0 -0
  221. scipy/io/matlab/_streams.cp312-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.cp312-win_amd64.dll.a +0 -0
  229. scipy/linalg/_cythonized_array_utils.cp312-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.cp312-win_amd64.dll.a +0 -0
  234. scipy/linalg/_decomp_interpolative.cp312-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.cp312-win_amd64.dll.a +0 -0
  238. scipy/linalg/_decomp_lu_cython.cp312-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.cp312-win_amd64.dll.a +0 -0
  245. scipy/linalg/_decomp_update.cp312-win_amd64.pyd +0 -0
  246. scipy/linalg/_expm_frechet.py +4 -0
  247. scipy/linalg/_fblas.cp312-win_amd64.dll.a +0 -0
  248. scipy/linalg/_fblas.cp312-win_amd64.pyd +0 -0
  249. scipy/linalg/_flapack.cp312-win_amd64.dll.a +0 -0
  250. scipy/linalg/_flapack.cp312-win_amd64.pyd +0 -0
  251. scipy/linalg/_linalg_pythran.cp312-win_amd64.dll.a +0 -0
  252. scipy/linalg/_linalg_pythran.cp312-win_amd64.pyd +0 -0
  253. scipy/linalg/_matfuncs.py +187 -4
  254. scipy/linalg/_matfuncs_expm.cp312-win_amd64.dll.a +0 -0
  255. scipy/linalg/_matfuncs_expm.cp312-win_amd64.pyd +0 -0
  256. scipy/linalg/_matfuncs_schur_sqrtm.cp312-win_amd64.dll.a +0 -0
  257. scipy/linalg/_matfuncs_schur_sqrtm.cp312-win_amd64.pyd +0 -0
  258. scipy/linalg/_matfuncs_sqrtm.py +1 -99
  259. scipy/linalg/_matfuncs_sqrtm_triu.cp312-win_amd64.dll.a +0 -0
  260. scipy/linalg/_matfuncs_sqrtm_triu.cp312-win_amd64.pyd +0 -0
  261. scipy/linalg/_procrustes.py +2 -0
  262. scipy/linalg/_sketches.py +17 -6
  263. scipy/linalg/_solve_toeplitz.cp312-win_amd64.dll.a +0 -0
  264. scipy/linalg/_solve_toeplitz.cp312-win_amd64.pyd +0 -0
  265. scipy/linalg/_solvers.py +7 -2
  266. scipy/linalg/_special_matrices.py +26 -36
  267. scipy/linalg/blas.py +35 -24
  268. scipy/linalg/cython_blas.cp312-win_amd64.dll.a +0 -0
  269. scipy/linalg/cython_blas.cp312-win_amd64.pyd +0 -0
  270. scipy/linalg/cython_lapack.cp312-win_amd64.dll.a +0 -0
  271. scipy/linalg/cython_lapack.cp312-win_amd64.pyd +0 -0
  272. scipy/linalg/lapack.py +22 -2
  273. scipy/linalg/tests/_cython_examples/meson.build +7 -0
  274. scipy/linalg/tests/test_basic.py +31 -16
  275. scipy/linalg/tests/test_batch.py +588 -0
  276. scipy/linalg/tests/test_cythonized_array_utils.py +0 -2
  277. scipy/linalg/tests/test_decomp.py +40 -3
  278. scipy/linalg/tests/test_decomp_cossin.py +14 -0
  279. scipy/linalg/tests/test_decomp_ldl.py +1 -1
  280. scipy/linalg/tests/test_lapack.py +115 -7
  281. scipy/linalg/tests/test_matfuncs.py +157 -102
  282. scipy/linalg/tests/test_procrustes.py +0 -7
  283. scipy/linalg/tests/test_solve_toeplitz.py +1 -1
  284. scipy/linalg/tests/test_special_matrices.py +1 -5
  285. scipy/ndimage/__init__.py +1 -0
  286. scipy/ndimage/_ctest.cp312-win_amd64.dll.a +0 -0
  287. scipy/ndimage/_ctest.cp312-win_amd64.pyd +0 -0
  288. scipy/ndimage/_cytest.cp312-win_amd64.dll.a +0 -0
  289. scipy/ndimage/_cytest.cp312-win_amd64.pyd +0 -0
  290. scipy/ndimage/_delegators.py +8 -2
  291. scipy/ndimage/_filters.py +453 -5
  292. scipy/ndimage/_interpolation.py +36 -6
  293. scipy/ndimage/_measurements.py +4 -2
  294. scipy/ndimage/_morphology.py +5 -0
  295. scipy/ndimage/_nd_image.cp312-win_amd64.dll.a +0 -0
  296. scipy/ndimage/_nd_image.cp312-win_amd64.pyd +0 -0
  297. scipy/ndimage/_ni_docstrings.py +5 -1
  298. scipy/ndimage/_ni_label.cp312-win_amd64.dll.a +0 -0
  299. scipy/ndimage/_ni_label.cp312-win_amd64.pyd +0 -0
  300. scipy/ndimage/_ni_support.py +1 -5
  301. scipy/ndimage/_rank_filter_1d.cp312-win_amd64.dll.a +0 -0
  302. scipy/ndimage/_rank_filter_1d.cp312-win_amd64.pyd +0 -0
  303. scipy/ndimage/_support_alternative_backends.py +18 -6
  304. scipy/ndimage/tests/test_filters.py +370 -259
  305. scipy/ndimage/tests/test_fourier.py +7 -9
  306. scipy/ndimage/tests/test_interpolation.py +68 -61
  307. scipy/ndimage/tests/test_measurements.py +18 -35
  308. scipy/ndimage/tests/test_morphology.py +143 -131
  309. scipy/ndimage/tests/test_splines.py +1 -3
  310. scipy/odr/__odrpack.cp312-win_amd64.dll.a +0 -0
  311. scipy/odr/__odrpack.cp312-win_amd64.pyd +0 -0
  312. scipy/optimize/_basinhopping.py +13 -7
  313. scipy/optimize/_bglu_dense.cp312-win_amd64.dll.a +0 -0
  314. scipy/optimize/_bglu_dense.cp312-win_amd64.pyd +0 -0
  315. scipy/optimize/_bracket.py +17 -24
  316. scipy/optimize/_chandrupatla.py +9 -10
  317. scipy/optimize/_cobyla_py.py +104 -123
  318. scipy/optimize/_constraints.py +14 -10
  319. scipy/optimize/_differentiable_functions.py +371 -230
  320. scipy/optimize/_differentialevolution.py +4 -3
  321. scipy/optimize/_direct.cp312-win_amd64.dll.a +0 -0
  322. scipy/optimize/_direct.cp312-win_amd64.pyd +0 -0
  323. scipy/optimize/_dual_annealing.py +1 -1
  324. scipy/optimize/_elementwise.py +1 -4
  325. scipy/optimize/_group_columns.cp312-win_amd64.dll.a +0 -0
  326. scipy/optimize/_group_columns.cp312-win_amd64.pyd +0 -0
  327. scipy/optimize/_highspy/_core.cp312-win_amd64.dll.a +0 -0
  328. scipy/optimize/_highspy/_core.cp312-win_amd64.pyd +0 -0
  329. scipy/optimize/_highspy/_highs_options.cp312-win_amd64.dll.a +0 -0
  330. scipy/optimize/_highspy/_highs_options.cp312-win_amd64.pyd +0 -0
  331. scipy/optimize/_lbfgsb.cp312-win_amd64.dll.a +0 -0
  332. scipy/optimize/_lbfgsb.cp312-win_amd64.pyd +0 -0
  333. scipy/optimize/_lbfgsb_py.py +80 -24
  334. scipy/optimize/_linprog_doc.py +2 -2
  335. scipy/optimize/_linprog_highs.py +2 -2
  336. scipy/optimize/_linprog_ip.py +25 -10
  337. scipy/optimize/_linprog_util.py +14 -16
  338. scipy/optimize/_lsap.cp312-win_amd64.dll.a +0 -0
  339. scipy/optimize/_lsap.cp312-win_amd64.pyd +0 -0
  340. scipy/optimize/_lsq/common.py +3 -3
  341. scipy/optimize/_lsq/dogbox.py +16 -2
  342. scipy/optimize/_lsq/givens_elimination.cp312-win_amd64.dll.a +0 -0
  343. scipy/optimize/_lsq/givens_elimination.cp312-win_amd64.pyd +0 -0
  344. scipy/optimize/_lsq/least_squares.py +198 -126
  345. scipy/optimize/_lsq/lsq_linear.py +6 -6
  346. scipy/optimize/_lsq/trf.py +35 -8
  347. scipy/optimize/_milp.py +3 -1
  348. scipy/optimize/_minimize.py +105 -36
  349. scipy/optimize/_minpack.cp312-win_amd64.dll.a +0 -0
  350. scipy/optimize/_minpack.cp312-win_amd64.pyd +0 -0
  351. scipy/optimize/_minpack_py.py +21 -14
  352. scipy/optimize/_moduleTNC.cp312-win_amd64.dll.a +0 -0
  353. scipy/optimize/_moduleTNC.cp312-win_amd64.pyd +0 -0
  354. scipy/optimize/_nnls.py +20 -21
  355. scipy/optimize/_nonlin.py +34 -3
  356. scipy/optimize/_numdiff.py +288 -110
  357. scipy/optimize/_optimize.py +86 -48
  358. scipy/optimize/_pava_pybind.cp312-win_amd64.dll.a +0 -0
  359. scipy/optimize/_pava_pybind.cp312-win_amd64.pyd +0 -0
  360. scipy/optimize/_remove_redundancy.py +5 -5
  361. scipy/optimize/_root_scalar.py +1 -1
  362. scipy/optimize/_shgo.py +6 -0
  363. scipy/optimize/_shgo_lib/_complex.py +1 -1
  364. scipy/optimize/_slsqp_py.py +216 -124
  365. scipy/optimize/_slsqplib.cp312-win_amd64.dll.a +0 -0
  366. scipy/optimize/_slsqplib.cp312-win_amd64.pyd +0 -0
  367. scipy/optimize/_spectral.py +1 -1
  368. scipy/optimize/_tnc.py +8 -1
  369. scipy/optimize/_trlib/_trlib.cp312-win_amd64.dll.a +0 -0
  370. scipy/optimize/_trlib/_trlib.cp312-win_amd64.pyd +0 -0
  371. scipy/optimize/_trustregion.py +20 -6
  372. scipy/optimize/_trustregion_constr/canonical_constraint.py +7 -7
  373. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +1 -1
  374. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +11 -3
  375. scipy/optimize/_trustregion_constr/projections.py +12 -8
  376. scipy/optimize/_trustregion_constr/qp_subproblem.py +9 -9
  377. scipy/optimize/_trustregion_constr/tests/test_projections.py +7 -7
  378. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +77 -77
  379. scipy/optimize/_trustregion_constr/tr_interior_point.py +5 -5
  380. scipy/optimize/_trustregion_exact.py +0 -1
  381. scipy/optimize/_zeros.cp312-win_amd64.dll.a +0 -0
  382. scipy/optimize/_zeros.cp312-win_amd64.pyd +0 -0
  383. scipy/optimize/_zeros_py.py +97 -17
  384. scipy/optimize/cython_optimize/_zeros.cp312-win_amd64.dll.a +0 -0
  385. scipy/optimize/cython_optimize/_zeros.cp312-win_amd64.pyd +0 -0
  386. scipy/optimize/slsqp.py +0 -1
  387. scipy/optimize/tests/test__basinhopping.py +1 -1
  388. scipy/optimize/tests/test__differential_evolution.py +4 -4
  389. scipy/optimize/tests/test__linprog_clean_inputs.py +5 -3
  390. scipy/optimize/tests/test__numdiff.py +66 -22
  391. scipy/optimize/tests/test__remove_redundancy.py +2 -2
  392. scipy/optimize/tests/test__shgo.py +9 -1
  393. scipy/optimize/tests/test_bracket.py +36 -46
  394. scipy/optimize/tests/test_chandrupatla.py +133 -135
  395. scipy/optimize/tests/test_cobyla.py +74 -45
  396. scipy/optimize/tests/test_constraints.py +1 -1
  397. scipy/optimize/tests/test_differentiable_functions.py +226 -6
  398. scipy/optimize/tests/test_lbfgsb_hessinv.py +22 -0
  399. scipy/optimize/tests/test_least_squares.py +125 -13
  400. scipy/optimize/tests/test_linear_assignment.py +3 -3
  401. scipy/optimize/tests/test_linprog.py +3 -3
  402. scipy/optimize/tests/test_lsq_linear.py +6 -6
  403. scipy/optimize/tests/test_minimize_constrained.py +2 -2
  404. scipy/optimize/tests/test_minpack.py +4 -4
  405. scipy/optimize/tests/test_nnls.py +43 -3
  406. scipy/optimize/tests/test_nonlin.py +36 -0
  407. scipy/optimize/tests/test_optimize.py +98 -20
  408. scipy/optimize/tests/test_slsqp.py +36 -4
  409. scipy/optimize/tests/test_zeros.py +34 -1
  410. scipy/signal/__init__.py +12 -23
  411. scipy/signal/_delegators.py +568 -0
  412. scipy/signal/_filter_design.py +459 -241
  413. scipy/signal/_fir_filter_design.py +262 -90
  414. scipy/signal/_lti_conversion.py +3 -2
  415. scipy/signal/_ltisys.py +118 -91
  416. scipy/signal/_max_len_seq_inner.cp312-win_amd64.dll.a +0 -0
  417. scipy/signal/_max_len_seq_inner.cp312-win_amd64.pyd +0 -0
  418. scipy/signal/_peak_finding_utils.cp312-win_amd64.dll.a +0 -0
  419. scipy/signal/_peak_finding_utils.cp312-win_amd64.pyd +0 -0
  420. scipy/signal/_polyutils.py +172 -0
  421. scipy/signal/_short_time_fft.py +519 -70
  422. scipy/signal/_signal_api.py +30 -0
  423. scipy/signal/_signaltools.py +719 -399
  424. scipy/signal/_sigtools.cp312-win_amd64.dll.a +0 -0
  425. scipy/signal/_sigtools.cp312-win_amd64.pyd +0 -0
  426. scipy/signal/_sosfilt.cp312-win_amd64.dll.a +0 -0
  427. scipy/signal/_sosfilt.cp312-win_amd64.pyd +0 -0
  428. scipy/signal/_spectral_py.py +230 -50
  429. scipy/signal/_spline.cp312-win_amd64.dll.a +0 -0
  430. scipy/signal/_spline.cp312-win_amd64.pyd +0 -0
  431. scipy/signal/_spline_filters.py +108 -68
  432. scipy/signal/_support_alternative_backends.py +73 -0
  433. scipy/signal/_upfirdn.py +4 -1
  434. scipy/signal/_upfirdn_apply.cp312-win_amd64.dll.a +0 -0
  435. scipy/signal/_upfirdn_apply.cp312-win_amd64.pyd +0 -0
  436. scipy/signal/_waveforms.py +2 -11
  437. scipy/signal/_wavelets.py +1 -1
  438. scipy/signal/fir_filter_design.py +1 -0
  439. scipy/signal/spline.py +4 -11
  440. scipy/signal/tests/_scipy_spectral_test_shim.py +2 -171
  441. scipy/signal/tests/test_bsplines.py +114 -79
  442. scipy/signal/tests/test_cont2discrete.py +9 -2
  443. scipy/signal/tests/test_filter_design.py +721 -481
  444. scipy/signal/tests/test_fir_filter_design.py +332 -140
  445. scipy/signal/tests/test_savitzky_golay.py +4 -3
  446. scipy/signal/tests/test_short_time_fft.py +221 -3
  447. scipy/signal/tests/test_signaltools.py +2145 -1349
  448. scipy/signal/tests/test_spectral.py +50 -6
  449. scipy/signal/tests/test_splines.py +161 -96
  450. scipy/signal/tests/test_upfirdn.py +84 -50
  451. scipy/signal/tests/test_waveforms.py +20 -0
  452. scipy/signal/tests/test_windows.py +607 -466
  453. scipy/signal/windows/_windows.py +287 -148
  454. scipy/sparse/__init__.py +23 -4
  455. scipy/sparse/_base.py +270 -108
  456. scipy/sparse/_bsr.py +7 -4
  457. scipy/sparse/_compressed.py +59 -231
  458. scipy/sparse/_construct.py +90 -38
  459. scipy/sparse/_coo.py +115 -181
  460. scipy/sparse/_csc.py +4 -4
  461. scipy/sparse/_csparsetools.cp312-win_amd64.dll.a +0 -0
  462. scipy/sparse/_csparsetools.cp312-win_amd64.pyd +0 -0
  463. scipy/sparse/_csr.py +2 -2
  464. scipy/sparse/_data.py +48 -48
  465. scipy/sparse/_dia.py +105 -18
  466. scipy/sparse/_dok.py +0 -23
  467. scipy/sparse/_index.py +4 -4
  468. scipy/sparse/_matrix.py +23 -0
  469. scipy/sparse/_sparsetools.cp312-win_amd64.dll.a +0 -0
  470. scipy/sparse/_sparsetools.cp312-win_amd64.pyd +0 -0
  471. scipy/sparse/_sputils.py +37 -22
  472. scipy/sparse/base.py +0 -9
  473. scipy/sparse/bsr.py +0 -14
  474. scipy/sparse/compressed.py +0 -23
  475. scipy/sparse/construct.py +0 -6
  476. scipy/sparse/coo.py +0 -14
  477. scipy/sparse/csc.py +0 -3
  478. scipy/sparse/csgraph/_flow.cp312-win_amd64.dll.a +0 -0
  479. scipy/sparse/csgraph/_flow.cp312-win_amd64.pyd +0 -0
  480. scipy/sparse/csgraph/_matching.cp312-win_amd64.dll.a +0 -0
  481. scipy/sparse/csgraph/_matching.cp312-win_amd64.pyd +0 -0
  482. scipy/sparse/csgraph/_min_spanning_tree.cp312-win_amd64.dll.a +0 -0
  483. scipy/sparse/csgraph/_min_spanning_tree.cp312-win_amd64.pyd +0 -0
  484. scipy/sparse/csgraph/_reordering.cp312-win_amd64.dll.a +0 -0
  485. scipy/sparse/csgraph/_reordering.cp312-win_amd64.pyd +0 -0
  486. scipy/sparse/csgraph/_shortest_path.cp312-win_amd64.dll.a +0 -0
  487. scipy/sparse/csgraph/_shortest_path.cp312-win_amd64.pyd +0 -0
  488. scipy/sparse/csgraph/_tools.cp312-win_amd64.dll.a +0 -0
  489. scipy/sparse/csgraph/_tools.cp312-win_amd64.pyd +0 -0
  490. scipy/sparse/csgraph/_traversal.cp312-win_amd64.dll.a +0 -0
  491. scipy/sparse/csgraph/_traversal.cp312-win_amd64.pyd +0 -0
  492. scipy/sparse/csgraph/tests/test_matching.py +14 -2
  493. scipy/sparse/csgraph/tests/test_pydata_sparse.py +4 -1
  494. scipy/sparse/csgraph/tests/test_shortest_path.py +83 -27
  495. scipy/sparse/csr.py +0 -5
  496. scipy/sparse/data.py +1 -6
  497. scipy/sparse/dia.py +0 -7
  498. scipy/sparse/dok.py +0 -10
  499. scipy/sparse/linalg/_dsolve/_superlu.cp312-win_amd64.dll.a +0 -0
  500. scipy/sparse/linalg/_dsolve/_superlu.cp312-win_amd64.pyd +0 -0
  501. scipy/sparse/linalg/_dsolve/linsolve.py +9 -0
  502. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +35 -28
  503. scipy/sparse/linalg/_eigen/arpack/_arpack.cp312-win_amd64.dll.a +0 -0
  504. scipy/sparse/linalg/_eigen/arpack/_arpack.cp312-win_amd64.pyd +0 -0
  505. scipy/sparse/linalg/_eigen/arpack/arpack.py +23 -17
  506. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +6 -6
  507. scipy/sparse/linalg/_interface.py +17 -18
  508. scipy/sparse/linalg/_isolve/_gcrotmk.py +4 -4
  509. scipy/sparse/linalg/_isolve/iterative.py +51 -45
  510. scipy/sparse/linalg/_isolve/lgmres.py +6 -6
  511. scipy/sparse/linalg/_isolve/minres.py +5 -5
  512. scipy/sparse/linalg/_isolve/tfqmr.py +7 -7
  513. scipy/sparse/linalg/_isolve/utils.py +2 -8
  514. scipy/sparse/linalg/_matfuncs.py +1 -1
  515. scipy/sparse/linalg/_norm.py +1 -1
  516. scipy/sparse/linalg/_propack/_cpropack.cp312-win_amd64.dll.a +0 -0
  517. scipy/sparse/linalg/_propack/_cpropack.cp312-win_amd64.pyd +0 -0
  518. scipy/sparse/linalg/_propack/_dpropack.cp312-win_amd64.dll.a +0 -0
  519. scipy/sparse/linalg/_propack/_dpropack.cp312-win_amd64.pyd +0 -0
  520. scipy/sparse/linalg/_propack/_spropack.cp312-win_amd64.dll.a +0 -0
  521. scipy/sparse/linalg/_propack/_spropack.cp312-win_amd64.pyd +0 -0
  522. scipy/sparse/linalg/_propack/_zpropack.cp312-win_amd64.dll.a +0 -0
  523. scipy/sparse/linalg/_propack/_zpropack.cp312-win_amd64.pyd +0 -0
  524. scipy/sparse/linalg/_special_sparse_arrays.py +39 -38
  525. scipy/sparse/linalg/tests/test_pydata_sparse.py +14 -0
  526. scipy/sparse/tests/test_arithmetic1d.py +5 -2
  527. scipy/sparse/tests/test_base.py +214 -42
  528. scipy/sparse/tests/test_common1d.py +7 -7
  529. scipy/sparse/tests/test_construct.py +1 -1
  530. scipy/sparse/tests/test_coo.py +272 -4
  531. scipy/sparse/tests/test_sparsetools.py +5 -0
  532. scipy/sparse/tests/test_sputils.py +36 -7
  533. scipy/spatial/_ckdtree.cp312-win_amd64.dll.a +0 -0
  534. scipy/spatial/_ckdtree.cp312-win_amd64.pyd +0 -0
  535. scipy/spatial/_distance_pybind.cp312-win_amd64.dll.a +0 -0
  536. scipy/spatial/_distance_pybind.cp312-win_amd64.pyd +0 -0
  537. scipy/spatial/_distance_wrap.cp312-win_amd64.dll.a +0 -0
  538. scipy/spatial/_distance_wrap.cp312-win_amd64.pyd +0 -0
  539. scipy/spatial/_hausdorff.cp312-win_amd64.dll.a +0 -0
  540. scipy/spatial/_hausdorff.cp312-win_amd64.pyd +0 -0
  541. scipy/spatial/_qhull.cp312-win_amd64.dll.a +0 -0
  542. scipy/spatial/_qhull.cp312-win_amd64.pyd +0 -0
  543. scipy/spatial/_voronoi.cp312-win_amd64.dll.a +0 -0
  544. scipy/spatial/_voronoi.cp312-win_amd64.pyd +0 -0
  545. scipy/spatial/distance.py +49 -42
  546. scipy/spatial/tests/test_distance.py +15 -1
  547. scipy/spatial/tests/test_kdtree.py +1 -0
  548. scipy/spatial/tests/test_qhull.py +7 -2
  549. scipy/spatial/transform/__init__.py +5 -3
  550. scipy/spatial/transform/_rigid_transform.cp312-win_amd64.dll.a +0 -0
  551. scipy/spatial/transform/_rigid_transform.cp312-win_amd64.pyd +0 -0
  552. scipy/spatial/transform/_rotation.cp312-win_amd64.dll.a +0 -0
  553. scipy/spatial/transform/_rotation.cp312-win_amd64.pyd +0 -0
  554. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  555. scipy/spatial/transform/tests/test_rotation.py +1213 -832
  556. scipy/spatial/transform/tests/test_rotation_groups.py +3 -3
  557. scipy/spatial/transform/tests/test_rotation_spline.py +29 -8
  558. scipy/special/__init__.py +1 -47
  559. scipy/special/_add_newdocs.py +34 -772
  560. scipy/special/_basic.py +22 -25
  561. scipy/special/_comb.cp312-win_amd64.dll.a +0 -0
  562. scipy/special/_comb.cp312-win_amd64.pyd +0 -0
  563. scipy/special/_ellip_harm_2.cp312-win_amd64.dll.a +0 -0
  564. scipy/special/_ellip_harm_2.cp312-win_amd64.pyd +0 -0
  565. scipy/special/_gufuncs.cp312-win_amd64.dll.a +0 -0
  566. scipy/special/_gufuncs.cp312-win_amd64.pyd +0 -0
  567. scipy/special/_logsumexp.py +67 -58
  568. scipy/special/_orthogonal.pyi +1 -1
  569. scipy/special/_specfun.cp312-win_amd64.dll.a +0 -0
  570. scipy/special/_specfun.cp312-win_amd64.pyd +0 -0
  571. scipy/special/_special_ufuncs.cp312-win_amd64.dll.a +0 -0
  572. scipy/special/_special_ufuncs.cp312-win_amd64.pyd +0 -0
  573. scipy/special/_spherical_bessel.py +4 -4
  574. scipy/special/_support_alternative_backends.py +212 -119
  575. scipy/special/_test_internal.cp312-win_amd64.dll.a +0 -0
  576. scipy/special/_test_internal.cp312-win_amd64.pyd +0 -0
  577. scipy/special/_testutils.py +4 -4
  578. scipy/special/_ufuncs.cp312-win_amd64.dll.a +0 -0
  579. scipy/special/_ufuncs.cp312-win_amd64.pyd +0 -0
  580. scipy/special/_ufuncs.pyi +1 -0
  581. scipy/special/_ufuncs.pyx +215 -1400
  582. scipy/special/_ufuncs_cxx.cp312-win_amd64.dll.a +0 -0
  583. scipy/special/_ufuncs_cxx.cp312-win_amd64.pyd +0 -0
  584. scipy/special/_ufuncs_cxx.pxd +2 -15
  585. scipy/special/_ufuncs_cxx.pyx +5 -44
  586. scipy/special/_ufuncs_cxx_defs.h +2 -16
  587. scipy/special/_ufuncs_defs.h +0 -8
  588. scipy/special/cython_special.cp312-win_amd64.dll.a +0 -0
  589. scipy/special/cython_special.cp312-win_amd64.pyd +0 -0
  590. scipy/special/cython_special.pxd +1 -1
  591. scipy/special/tests/_cython_examples/meson.build +10 -1
  592. scipy/special/tests/test_basic.py +153 -20
  593. scipy/special/tests/test_boost_ufuncs.py +3 -0
  594. scipy/special/tests/test_cdflib.py +35 -11
  595. scipy/special/tests/test_gammainc.py +16 -0
  596. scipy/special/tests/test_hyp2f1.py +2 -2
  597. scipy/special/tests/test_log1mexp.py +85 -0
  598. scipy/special/tests/test_logsumexp.py +206 -64
  599. scipy/special/tests/test_mpmath.py +1 -0
  600. scipy/special/tests/test_nan_inputs.py +1 -1
  601. scipy/special/tests/test_orthogonal.py +17 -18
  602. scipy/special/tests/test_sf_error.py +3 -2
  603. scipy/special/tests/test_sph_harm.py +6 -7
  604. scipy/special/tests/test_support_alternative_backends.py +211 -76
  605. scipy/stats/__init__.py +4 -1
  606. scipy/stats/_ansari_swilk_statistics.cp312-win_amd64.dll.a +0 -0
  607. scipy/stats/_ansari_swilk_statistics.cp312-win_amd64.pyd +0 -0
  608. scipy/stats/_axis_nan_policy.py +5 -12
  609. scipy/stats/_biasedurn.cp312-win_amd64.dll.a +0 -0
  610. scipy/stats/_biasedurn.cp312-win_amd64.pyd +0 -0
  611. scipy/stats/_continued_fraction.py +387 -0
  612. scipy/stats/_continuous_distns.py +277 -310
  613. scipy/stats/_correlation.py +1 -1
  614. scipy/stats/_covariance.py +6 -3
  615. scipy/stats/_discrete_distns.py +39 -32
  616. scipy/stats/_distn_infrastructure.py +39 -12
  617. scipy/stats/_distribution_infrastructure.py +920 -238
  618. scipy/stats/_entropy.py +9 -10
  619. scipy/{_lib → stats}/_finite_differences.py +1 -1
  620. scipy/stats/_hypotests.py +83 -50
  621. scipy/stats/_kde.py +53 -49
  622. scipy/stats/_ksstats.py +1 -1
  623. scipy/stats/_levy_stable/__init__.py +7 -15
  624. scipy/stats/_levy_stable/levyst.cp312-win_amd64.dll.a +0 -0
  625. scipy/stats/_levy_stable/levyst.cp312-win_amd64.pyd +0 -0
  626. scipy/stats/_morestats.py +118 -73
  627. scipy/stats/_mstats_basic.py +13 -17
  628. scipy/stats/_mstats_extras.py +8 -8
  629. scipy/stats/_multivariate.py +89 -113
  630. scipy/stats/_new_distributions.py +97 -20
  631. scipy/stats/_page_trend_test.py +12 -5
  632. scipy/stats/_probability_distribution.py +265 -43
  633. scipy/stats/_qmc.py +14 -9
  634. scipy/stats/_qmc_cy.cp312-win_amd64.dll.a +0 -0
  635. scipy/stats/_qmc_cy.cp312-win_amd64.pyd +0 -0
  636. scipy/stats/_qmvnt.py +16 -95
  637. scipy/stats/_qmvnt_cy.cp312-win_amd64.dll.a +0 -0
  638. scipy/stats/_qmvnt_cy.cp312-win_amd64.pyd +0 -0
  639. scipy/stats/_quantile.py +335 -0
  640. scipy/stats/_rcont/rcont.cp312-win_amd64.dll.a +0 -0
  641. scipy/stats/_rcont/rcont.cp312-win_amd64.pyd +0 -0
  642. scipy/stats/_resampling.py +5 -30
  643. scipy/stats/_sampling.py +1 -1
  644. scipy/stats/_sobol.cp312-win_amd64.dll.a +0 -0
  645. scipy/stats/_sobol.cp312-win_amd64.pyd +0 -0
  646. scipy/stats/_stats.cp312-win_amd64.dll.a +0 -0
  647. scipy/stats/_stats.cp312-win_amd64.pyd +0 -0
  648. scipy/stats/_stats_mstats_common.py +21 -2
  649. scipy/stats/_stats_py.py +551 -477
  650. scipy/stats/_stats_pythran.cp312-win_amd64.dll.a +0 -0
  651. scipy/stats/_stats_pythran.cp312-win_amd64.pyd +0 -0
  652. scipy/stats/_unuran/unuran_wrapper.cp312-win_amd64.dll.a +0 -0
  653. scipy/stats/_unuran/unuran_wrapper.cp312-win_amd64.pyd +0 -0
  654. scipy/stats/_unuran/unuran_wrapper.pyi +2 -1
  655. scipy/stats/_variation.py +6 -8
  656. scipy/stats/_wilcoxon.py +13 -7
  657. scipy/stats/tests/common_tests.py +6 -4
  658. scipy/stats/tests/test_axis_nan_policy.py +62 -24
  659. scipy/stats/tests/test_continued_fraction.py +173 -0
  660. scipy/stats/tests/test_continuous.py +379 -60
  661. scipy/stats/tests/test_continuous_basic.py +18 -12
  662. scipy/stats/tests/test_discrete_basic.py +14 -8
  663. scipy/stats/tests/test_discrete_distns.py +16 -16
  664. scipy/stats/tests/test_distributions.py +95 -75
  665. scipy/stats/tests/test_entropy.py +40 -48
  666. scipy/stats/tests/test_fit.py +4 -3
  667. scipy/stats/tests/test_hypotests.py +153 -24
  668. scipy/stats/tests/test_kdeoth.py +109 -41
  669. scipy/stats/tests/test_marray.py +289 -0
  670. scipy/stats/tests/test_morestats.py +81 -49
  671. scipy/stats/tests/test_mstats_basic.py +3 -3
  672. scipy/stats/tests/test_multivariate.py +434 -83
  673. scipy/stats/tests/test_qmc.py +13 -10
  674. scipy/stats/tests/test_quantile.py +199 -0
  675. scipy/stats/tests/test_rank.py +119 -112
  676. scipy/stats/tests/test_resampling.py +47 -56
  677. scipy/stats/tests/test_sampling.py +9 -4
  678. scipy/stats/tests/test_stats.py +799 -939
  679. scipy/stats/tests/test_variation.py +8 -6
  680. scipy/version.py +2 -2
  681. scipy-1.16.0.dist-info/DELVEWHEEL +2 -0
  682. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/LICENSE.txt +4 -4
  683. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/METADATA +11 -11
  684. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/RECORD +686 -694
  685. scipy/_lib/array_api_extra/_funcs.py +0 -484
  686. scipy/_lib/array_api_extra/_typing.py +0 -8
  687. scipy/interpolate/_bspl.cp312-win_amd64.dll.a +0 -0
  688. scipy/interpolate/_bspl.cp312-win_amd64.pyd +0 -0
  689. scipy/optimize/_cobyla.cp312-win_amd64.dll.a +0 -0
  690. scipy/optimize/_cobyla.cp312-win_amd64.pyd +0 -0
  691. scipy/optimize/_cython_nnls.cp312-win_amd64.dll.a +0 -0
  692. scipy/optimize/_cython_nnls.cp312-win_amd64.pyd +0 -0
  693. scipy/optimize/_slsqp.cp312-win_amd64.dll.a +0 -0
  694. scipy/optimize/_slsqp.cp312-win_amd64.pyd +0 -0
  695. scipy/spatial/qhull_src/COPYING.txt +0 -38
  696. scipy/special/libsf_error_state.dll +0 -0
  697. scipy/special/libsf_error_state.dll.a +0 -0
  698. scipy/special/tests/test_log_softmax.py +0 -109
  699. scipy/special/tests/test_xsf_cuda.py +0 -114
  700. scipy/special/xsf/binom.h +0 -89
  701. scipy/special/xsf/cdflib.h +0 -100
  702. scipy/special/xsf/cephes/airy.h +0 -307
  703. scipy/special/xsf/cephes/besselpoly.h +0 -51
  704. scipy/special/xsf/cephes/beta.h +0 -257
  705. scipy/special/xsf/cephes/cbrt.h +0 -131
  706. scipy/special/xsf/cephes/chbevl.h +0 -85
  707. scipy/special/xsf/cephes/chdtr.h +0 -193
  708. scipy/special/xsf/cephes/const.h +0 -87
  709. scipy/special/xsf/cephes/ellie.h +0 -293
  710. scipy/special/xsf/cephes/ellik.h +0 -251
  711. scipy/special/xsf/cephes/ellpe.h +0 -107
  712. scipy/special/xsf/cephes/ellpk.h +0 -117
  713. scipy/special/xsf/cephes/expn.h +0 -260
  714. scipy/special/xsf/cephes/gamma.h +0 -398
  715. scipy/special/xsf/cephes/hyp2f1.h +0 -596
  716. scipy/special/xsf/cephes/hyperg.h +0 -361
  717. scipy/special/xsf/cephes/i0.h +0 -149
  718. scipy/special/xsf/cephes/i1.h +0 -158
  719. scipy/special/xsf/cephes/igam.h +0 -421
  720. scipy/special/xsf/cephes/igam_asymp_coeff.h +0 -195
  721. scipy/special/xsf/cephes/igami.h +0 -313
  722. scipy/special/xsf/cephes/j0.h +0 -225
  723. scipy/special/xsf/cephes/j1.h +0 -198
  724. scipy/special/xsf/cephes/jv.h +0 -715
  725. scipy/special/xsf/cephes/k0.h +0 -164
  726. scipy/special/xsf/cephes/k1.h +0 -163
  727. scipy/special/xsf/cephes/kn.h +0 -243
  728. scipy/special/xsf/cephes/lanczos.h +0 -112
  729. scipy/special/xsf/cephes/ndtr.h +0 -275
  730. scipy/special/xsf/cephes/poch.h +0 -85
  731. scipy/special/xsf/cephes/polevl.h +0 -167
  732. scipy/special/xsf/cephes/psi.h +0 -194
  733. scipy/special/xsf/cephes/rgamma.h +0 -111
  734. scipy/special/xsf/cephes/scipy_iv.h +0 -811
  735. scipy/special/xsf/cephes/shichi.h +0 -248
  736. scipy/special/xsf/cephes/sici.h +0 -224
  737. scipy/special/xsf/cephes/sindg.h +0 -221
  738. scipy/special/xsf/cephes/tandg.h +0 -139
  739. scipy/special/xsf/cephes/trig.h +0 -58
  740. scipy/special/xsf/cephes/unity.h +0 -186
  741. scipy/special/xsf/cephes/zeta.h +0 -172
  742. scipy/special/xsf/config.h +0 -304
  743. scipy/special/xsf/digamma.h +0 -205
  744. scipy/special/xsf/error.h +0 -57
  745. scipy/special/xsf/evalpoly.h +0 -47
  746. scipy/special/xsf/expint.h +0 -266
  747. scipy/special/xsf/hyp2f1.h +0 -694
  748. scipy/special/xsf/iv_ratio.h +0 -173
  749. scipy/special/xsf/lambertw.h +0 -150
  750. scipy/special/xsf/loggamma.h +0 -163
  751. scipy/special/xsf/sici.h +0 -200
  752. scipy/special/xsf/tools.h +0 -427
  753. scipy/special/xsf/trig.h +0 -164
  754. scipy/special/xsf/wright_bessel.h +0 -843
  755. scipy/special/xsf/zlog1.h +0 -35
  756. scipy/stats/_mvn.cp312-win_amd64.dll.a +0 -0
  757. scipy/stats/_mvn.cp312-win_amd64.pyd +0 -0
  758. scipy-1.15.3.dist-info/DELVEWHEEL +0 -2
  759. /scipy-1.15.3-cp312-cp312-win_amd64.whl → /scipy-1.16.0-cp312-cp312-win_amd64.whl +0 -0
  760. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/WHEEL +0 -0
@@ -1,361 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* hyperg.c
6
- *
7
- * Confluent hypergeometric function
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double a, b, x, y, hyperg();
14
- *
15
- * y = hyperg( a, b, x );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * Computes the confluent hypergeometric function
22
- *
23
- * 1 2
24
- * a x a(a+1) x
25
- * F ( a,b;x ) = 1 + ---- + --------- + ...
26
- * 1 1 b 1! b(b+1) 2!
27
- *
28
- * Many higher transcendental functions are special cases of
29
- * this power series.
30
- *
31
- * As is evident from the formula, b must not be a negative
32
- * integer or zero unless a is an integer with 0 >= a > b.
33
- *
34
- * The routine attempts both a direct summation of the series
35
- * and an asymptotic expansion. In each case error due to
36
- * roundoff, cancellation, and nonconvergence is estimated.
37
- * The result with smaller estimated error is returned.
38
- *
39
- *
40
- *
41
- * ACCURACY:
42
- *
43
- * Tested at random points (a, b, x), all three variables
44
- * ranging from 0 to 30.
45
- * Relative error:
46
- * arithmetic domain # trials peak rms
47
- * IEEE 0,30 30000 1.8e-14 1.1e-15
48
- *
49
- * Larger errors can be observed when b is near a negative
50
- * integer or zero. Certain combinations of arguments yield
51
- * serious cancellation error in the power series summation
52
- * and also are not in the region of near convergence of the
53
- * asymptotic series. An error message is printed if the
54
- * self-estimated relative error is greater than 1.0e-12.
55
- *
56
- */
57
-
58
- /*
59
- * Cephes Math Library Release 2.8: June, 2000
60
- * Copyright 1984, 1987, 1988, 2000 by Stephen L. Moshier
61
- */
62
-
63
- #pragma once
64
-
65
- #include "../config.h"
66
- #include "../error.h"
67
-
68
- #include "const.h"
69
- #include "gamma.h"
70
- #include "rgamma.h"
71
-
72
- namespace xsf {
73
- namespace cephes {
74
-
75
- namespace detail {
76
-
77
- /* the `type` parameter determines what converging factor to use */
78
- XSF_HOST_DEVICE inline double hyp2f0(double a, double b, double x, int type, double *err) {
79
- double a0, alast, t, tlast, maxt;
80
- double n, an, bn, u, sum, temp;
81
-
82
- an = a;
83
- bn = b;
84
- a0 = 1.0e0;
85
- alast = 1.0e0;
86
- sum = 0.0;
87
- n = 1.0e0;
88
- t = 1.0e0;
89
- tlast = 1.0e9;
90
- maxt = 0.0;
91
-
92
- do {
93
- if (an == 0)
94
- goto pdone;
95
- if (bn == 0)
96
- goto pdone;
97
-
98
- u = an * (bn * x / n);
99
-
100
- /* check for blowup */
101
- temp = std::abs(u);
102
- if ((temp > 1.0) && (maxt > (std::numeric_limits<double>::max() / temp)))
103
- goto error;
104
-
105
- a0 *= u;
106
- t = std::abs(a0);
107
-
108
- /* terminating condition for asymptotic series:
109
- * the series is divergent (if a or b is not a negative integer),
110
- * but its leading part can be used as an asymptotic expansion
111
- */
112
- if (t > tlast)
113
- goto ndone;
114
-
115
- tlast = t;
116
- sum += alast; /* the sum is one term behind */
117
- alast = a0;
118
-
119
- if (n > 200)
120
- goto ndone;
121
-
122
- an += 1.0e0;
123
- bn += 1.0e0;
124
- n += 1.0e0;
125
- if (t > maxt)
126
- maxt = t;
127
- } while (t > MACHEP);
128
-
129
- pdone: /* series converged! */
130
-
131
- /* estimate error due to roundoff and cancellation */
132
- *err = std::abs(MACHEP * (n + maxt));
133
-
134
- alast = a0;
135
- goto done;
136
-
137
- ndone: /* series did not converge */
138
-
139
- /* The following "Converging factors" are supposed to improve accuracy,
140
- * but do not actually seem to accomplish very much. */
141
-
142
- n -= 1.0;
143
- x = 1.0 / x;
144
-
145
- switch (type) { /* "type" given as subroutine argument */
146
- case 1:
147
- alast *= (0.5 + (0.125 + 0.25 * b - 0.5 * a + 0.25 * x - 0.25 * n) / x);
148
- break;
149
-
150
- case 2:
151
- alast *= 2.0 / 3.0 - b + 2.0 * a + x - n;
152
- break;
153
-
154
- default:;
155
- }
156
-
157
- /* estimate error due to roundoff, cancellation, and nonconvergence */
158
- *err = MACHEP * (n + maxt) + std::abs(a0);
159
-
160
- done:
161
- sum += alast;
162
- return (sum);
163
-
164
- /* series blew up: */
165
- error:
166
- *err = std::numeric_limits<double>::infinity();
167
- set_error("hyperg", SF_ERROR_NO_RESULT, NULL);
168
- return (sum);
169
- }
170
-
171
- /* asymptotic formula for hypergeometric function:
172
- *
173
- * ( -a
174
- * -- ( |z|
175
- * | (b) ( -------- 2f0( a, 1+a-b, -1/x )
176
- * ( --
177
- * ( | (b-a)
178
- *
179
- *
180
- * x a-b )
181
- * e |x| )
182
- * + -------- 2f0( b-a, 1-a, 1/x ) )
183
- * -- )
184
- * | (a) )
185
- */
186
-
187
- XSF_HOST_DEVICE inline double hy1f1a(double a, double b, double x, double *err) {
188
- double h1, h2, t, u, temp, acanc, asum, err1, err2;
189
-
190
- if (x == 0) {
191
- acanc = 1.0;
192
- asum = std::numeric_limits<double>::infinity();
193
- goto adone;
194
- }
195
- temp = std::log(std::abs(x));
196
- t = x + temp * (a - b);
197
- u = -temp * a;
198
-
199
- if (b > 0) {
200
- temp = xsf::cephes::lgam(b);
201
- t += temp;
202
- u += temp;
203
- }
204
-
205
- h1 = hyp2f0(a, a - b + 1, -1.0 / x, 1, &err1);
206
-
207
- temp = std::exp(u) * xsf::cephes::rgamma(b - a);
208
- h1 *= temp;
209
- err1 *= temp;
210
-
211
- h2 = hyp2f0(b - a, 1.0 - a, 1.0 / x, 2, &err2);
212
-
213
- if (a < 0)
214
- temp = std::exp(t) * xsf::cephes::rgamma(a);
215
- else
216
- temp = std::exp(t - xsf::cephes::lgam(a));
217
-
218
- h2 *= temp;
219
- err2 *= temp;
220
-
221
- if (x < 0.0)
222
- asum = h1;
223
- else
224
- asum = h2;
225
-
226
- acanc = std::abs(err1) + std::abs(err2);
227
-
228
- if (b < 0) {
229
- temp = xsf::cephes::Gamma(b);
230
- asum *= temp;
231
- acanc *= std::abs(temp);
232
- }
233
-
234
- if (asum != 0.0)
235
- acanc /= std::abs(asum);
236
-
237
- if (acanc != acanc)
238
- /* nan */
239
- acanc = 1.0;
240
-
241
- if (std::isinf(asum))
242
- /* infinity */
243
- acanc = 0;
244
-
245
- acanc *= 30.0; /* fudge factor, since error of asymptotic formula
246
- * often seems this much larger than advertised */
247
- adone:
248
- *err = acanc;
249
- return (asum);
250
- }
251
-
252
- /* Power series summation for confluent hypergeometric function */
253
- XSF_HOST_DEVICE inline double hy1f1p(double a, double b, double x, double *err) {
254
- double n, a0, sum, t, u, temp, maxn;
255
- double an, bn, maxt;
256
- double y, c, sumc;
257
-
258
- /* set up for power series summation */
259
- an = a;
260
- bn = b;
261
- a0 = 1.0;
262
- sum = 1.0;
263
- c = 0.0;
264
- n = 1.0;
265
- t = 1.0;
266
- maxt = 0.0;
267
- *err = 1.0;
268
-
269
- maxn = 200.0 + 2 * fabs(a) + 2 * fabs(b);
270
-
271
- while (t > MACHEP) {
272
- if (bn == 0) { /* check bn first since if both */
273
- sf_error("hyperg", SF_ERROR_SINGULAR, NULL);
274
- return (std::numeric_limits<double>::infinity()); /* an and bn are zero it is */
275
- }
276
- if (an == 0) /* a singularity */
277
- return (sum);
278
- if (n > maxn) {
279
- /* too many terms; take the last one as error estimate */
280
- c = std::abs(c) + std::abs(t) * 50.0;
281
- goto pdone;
282
- }
283
- u = x * (an / (bn * n));
284
-
285
- /* check for blowup */
286
- temp = std::abs(u);
287
- if ((temp > 1.0) && (maxt > (std::numeric_limits<double>::max() / temp))) {
288
- *err = 1.0; /* blowup: estimate 100% error */
289
- return sum;
290
- }
291
-
292
- a0 *= u;
293
-
294
- y = a0 - c;
295
- sumc = sum + y;
296
- c = (sumc - sum) - y;
297
- sum = sumc;
298
-
299
- t = std::abs(a0);
300
-
301
- an += 1.0;
302
- bn += 1.0;
303
- n += 1.0;
304
- }
305
-
306
- pdone:
307
-
308
- /* estimate error due to roundoff and cancellation */
309
- if (sum != 0.0) {
310
- *err = std::abs(c / sum);
311
- } else {
312
- *err = std::abs(c);
313
- }
314
-
315
- if (*err != *err) {
316
- /* nan */
317
- *err = 1.0;
318
- }
319
-
320
- return (sum);
321
- }
322
-
323
- } // namespace detail
324
-
325
- XSF_HOST_DEVICE inline double hyperg(double a, double b, double x) {
326
- double asum, psum, acanc, pcanc, temp;
327
-
328
- /* See if a Kummer transformation will help */
329
- temp = b - a;
330
- if (std::abs(temp) < 0.001 * std::abs(a))
331
- return (exp(x) * hyperg(temp, b, -x));
332
-
333
- /* Try power & asymptotic series, starting from the one that is likely OK */
334
- if (std::abs(x) < 10 + std::abs(a) + std::abs(b)) {
335
- psum = detail::hy1f1p(a, b, x, &pcanc);
336
- if (pcanc < 1.0e-15)
337
- goto done;
338
- asum = detail::hy1f1a(a, b, x, &acanc);
339
- } else {
340
- psum = detail::hy1f1a(a, b, x, &pcanc);
341
- if (pcanc < 1.0e-15)
342
- goto done;
343
- asum = detail::hy1f1p(a, b, x, &acanc);
344
- }
345
-
346
- /* Pick the result with less estimated error */
347
-
348
- if (acanc < pcanc) {
349
- pcanc = acanc;
350
- psum = asum;
351
- }
352
-
353
- done:
354
- if (pcanc > 1.0e-12)
355
- set_error("hyperg", SF_ERROR_LOSS, NULL);
356
-
357
- return (psum);
358
- }
359
-
360
- } // namespace cephes
361
- } // namespace xsf
@@ -1,149 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* i0.c
6
- *
7
- * Modified Bessel function of order zero
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double x, y, i0();
14
- *
15
- * y = i0( x );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * Returns modified Bessel function of order zero of the
22
- * argument.
23
- *
24
- * The function is defined as i0(x) = j0( ix ).
25
- *
26
- * The range is partitioned into the two intervals [0,8] and
27
- * (8, infinity). Chebyshev polynomial expansions are employed
28
- * in each interval.
29
- *
30
- *
31
- *
32
- * ACCURACY:
33
- *
34
- * Relative error:
35
- * arithmetic domain # trials peak rms
36
- * IEEE 0,30 30000 5.8e-16 1.4e-16
37
- *
38
- */
39
- /* i0e.c
40
- *
41
- * Modified Bessel function of order zero,
42
- * exponentially scaled
43
- *
44
- *
45
- *
46
- * SYNOPSIS:
47
- *
48
- * double x, y, i0e();
49
- *
50
- * y = i0e( x );
51
- *
52
- *
53
- *
54
- * DESCRIPTION:
55
- *
56
- * Returns exponentially scaled modified Bessel function
57
- * of order zero of the argument.
58
- *
59
- * The function is defined as i0e(x) = exp(-|x|) j0( ix ).
60
- *
61
- *
62
- *
63
- * ACCURACY:
64
- *
65
- * Relative error:
66
- * arithmetic domain # trials peak rms
67
- * IEEE 0,30 30000 5.4e-16 1.2e-16
68
- * See i0().
69
- *
70
- */
71
-
72
- /* i0.c */
73
-
74
- /*
75
- * Cephes Math Library Release 2.8: June, 2000
76
- * Copyright 1984, 1987, 2000 by Stephen L. Moshier
77
- */
78
- #pragma once
79
-
80
- #include "../config.h"
81
- #include "chbevl.h"
82
-
83
- namespace xsf {
84
- namespace cephes {
85
-
86
- namespace detail {
87
-
88
- /* Chebyshev coefficients for exp(-x) I0(x)
89
- * in the interval [0,8].
90
- *
91
- * lim(x->0){ exp(-x) I0(x) } = 1.
92
- */
93
- constexpr double i0_A[] = {
94
- -4.41534164647933937950E-18, 3.33079451882223809783E-17, -2.43127984654795469359E-16,
95
- 1.71539128555513303061E-15, -1.16853328779934516808E-14, 7.67618549860493561688E-14,
96
- -4.85644678311192946090E-13, 2.95505266312963983461E-12, -1.72682629144155570723E-11,
97
- 9.67580903537323691224E-11, -5.18979560163526290666E-10, 2.65982372468238665035E-9,
98
- -1.30002500998624804212E-8, 6.04699502254191894932E-8, -2.67079385394061173391E-7,
99
- 1.11738753912010371815E-6, -4.41673835845875056359E-6, 1.64484480707288970893E-5,
100
- -5.75419501008210370398E-5, 1.88502885095841655729E-4, -5.76375574538582365885E-4,
101
- 1.63947561694133579842E-3, -4.32430999505057594430E-3, 1.05464603945949983183E-2,
102
- -2.37374148058994688156E-2, 4.93052842396707084878E-2, -9.49010970480476444210E-2,
103
- 1.71620901522208775349E-1, -3.04682672343198398683E-1, 6.76795274409476084995E-1};
104
-
105
- /* Chebyshev coefficients for exp(-x) sqrt(x) I0(x)
106
- * in the inverted interval [8,infinity].
107
- *
108
- * lim(x->inf){ exp(-x) sqrt(x) I0(x) } = 1/sqrt(2pi).
109
- */
110
- constexpr double i0_B[] = {
111
- -7.23318048787475395456E-18, -4.83050448594418207126E-18, 4.46562142029675999901E-17,
112
- 3.46122286769746109310E-17, -2.82762398051658348494E-16, -3.42548561967721913462E-16,
113
- 1.77256013305652638360E-15, 3.81168066935262242075E-15, -9.55484669882830764870E-15,
114
- -4.15056934728722208663E-14, 1.54008621752140982691E-14, 3.85277838274214270114E-13,
115
- 7.18012445138366623367E-13, -1.79417853150680611778E-12, -1.32158118404477131188E-11,
116
- -3.14991652796324136454E-11, 1.18891471078464383424E-11, 4.94060238822496958910E-10,
117
- 3.39623202570838634515E-9, 2.26666899049817806459E-8, 2.04891858946906374183E-7,
118
- 2.89137052083475648297E-6, 6.88975834691682398426E-5, 3.36911647825569408990E-3,
119
- 8.04490411014108831608E-1};
120
- } // namespace detail
121
-
122
- XSF_HOST_DEVICE inline double i0(double x) {
123
- double y;
124
-
125
- if (x < 0)
126
- x = -x;
127
- if (x <= 8.0) {
128
- y = (x / 2.0) - 2.0;
129
- return (std::exp(x) * chbevl(y, detail::i0_A, 30));
130
- }
131
-
132
- return (std::exp(x) * chbevl(32.0 / x - 2.0, detail::i0_B, 25) / sqrt(x));
133
- }
134
-
135
- XSF_HOST_DEVICE inline double i0e(double x) {
136
- double y;
137
-
138
- if (x < 0)
139
- x = -x;
140
- if (x <= 8.0) {
141
- y = (x / 2.0) - 2.0;
142
- return (chbevl(y, detail::i0_A, 30));
143
- }
144
-
145
- return (chbevl(32.0 / x - 2.0, detail::i0_B, 25) / std::sqrt(x));
146
- }
147
-
148
- } // namespace cephes
149
- } // namespace xsf
@@ -1,158 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* i1.c
6
- *
7
- * Modified Bessel function of order one
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double x, y, i1();
14
- *
15
- * y = i1( x );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * Returns modified Bessel function of order one of the
22
- * argument.
23
- *
24
- * The function is defined as i1(x) = -i j1( ix ).
25
- *
26
- * The range is partitioned into the two intervals [0,8] and
27
- * (8, infinity). Chebyshev polynomial expansions are employed
28
- * in each interval.
29
- *
30
- *
31
- *
32
- * ACCURACY:
33
- *
34
- * Relative error:
35
- * arithmetic domain # trials peak rms
36
- * IEEE 0, 30 30000 1.9e-15 2.1e-16
37
- *
38
- *
39
- */
40
- /* i1e.c
41
- *
42
- * Modified Bessel function of order one,
43
- * exponentially scaled
44
- *
45
- *
46
- *
47
- * SYNOPSIS:
48
- *
49
- * double x, y, i1e();
50
- *
51
- * y = i1e( x );
52
- *
53
- *
54
- *
55
- * DESCRIPTION:
56
- *
57
- * Returns exponentially scaled modified Bessel function
58
- * of order one of the argument.
59
- *
60
- * The function is defined as i1(x) = -i exp(-|x|) j1( ix ).
61
- *
62
- *
63
- *
64
- * ACCURACY:
65
- *
66
- * Relative error:
67
- * arithmetic domain # trials peak rms
68
- * IEEE 0, 30 30000 2.0e-15 2.0e-16
69
- * See i1().
70
- *
71
- */
72
-
73
- /* i1.c 2 */
74
-
75
- /*
76
- * Cephes Math Library Release 2.8: June, 2000
77
- * Copyright 1985, 1987, 2000 by Stephen L. Moshier
78
- */
79
- #pragma once
80
-
81
- #include "../config.h"
82
- #include "chbevl.h"
83
-
84
- namespace xsf {
85
- namespace cephes {
86
-
87
- namespace detail {
88
-
89
- /* Chebyshev coefficients for exp(-x) I1(x) / x
90
- * in the interval [0,8].
91
- *
92
- * lim(x->0){ exp(-x) I1(x) / x } = 1/2.
93
- */
94
-
95
- constexpr double i1_A[] = {
96
- 2.77791411276104639959E-18, -2.11142121435816608115E-17, 1.55363195773620046921E-16,
97
- -1.10559694773538630805E-15, 7.60068429473540693410E-15, -5.04218550472791168711E-14,
98
- 3.22379336594557470981E-13, -1.98397439776494371520E-12, 1.17361862988909016308E-11,
99
- -6.66348972350202774223E-11, 3.62559028155211703701E-10, -1.88724975172282928790E-9,
100
- 9.38153738649577178388E-9, -4.44505912879632808065E-8, 2.00329475355213526229E-7,
101
- -8.56872026469545474066E-7, 3.47025130813767847674E-6, -1.32731636560394358279E-5,
102
- 4.78156510755005422638E-5, -1.61760815825896745588E-4, 5.12285956168575772895E-4,
103
- -1.51357245063125314899E-3, 4.15642294431288815669E-3, -1.05640848946261981558E-2,
104
- 2.47264490306265168283E-2, -5.29459812080949914269E-2, 1.02643658689847095384E-1,
105
- -1.76416518357834055153E-1, 2.52587186443633654823E-1};
106
-
107
- /* Chebyshev coefficients for exp(-x) sqrt(x) I1(x)
108
- * in the inverted interval [8,infinity].
109
- *
110
- * lim(x->inf){ exp(-x) sqrt(x) I1(x) } = 1/sqrt(2pi).
111
- */
112
- constexpr double i1_B[] = {
113
- 7.51729631084210481353E-18, 4.41434832307170791151E-18, -4.65030536848935832153E-17,
114
- -3.20952592199342395980E-17, 2.96262899764595013876E-16, 3.30820231092092828324E-16,
115
- -1.88035477551078244854E-15, -3.81440307243700780478E-15, 1.04202769841288027642E-14,
116
- 4.27244001671195135429E-14, -2.10154184277266431302E-14, -4.08355111109219731823E-13,
117
- -7.19855177624590851209E-13, 2.03562854414708950722E-12, 1.41258074366137813316E-11,
118
- 3.25260358301548823856E-11, -1.89749581235054123450E-11, -5.58974346219658380687E-10,
119
- -3.83538038596423702205E-9, -2.63146884688951950684E-8, -2.51223623787020892529E-7,
120
- -3.88256480887769039346E-6, -1.10588938762623716291E-4, -9.76109749136146840777E-3,
121
- 7.78576235018280120474E-1};
122
-
123
- } // namespace detail
124
-
125
- XSF_HOST_DEVICE inline double i1(double x) {
126
- double y, z;
127
-
128
- z = std::abs(x);
129
- if (z <= 8.0) {
130
- y = (z / 2.0) - 2.0;
131
- z = chbevl(y, detail::i1_A, 29) * z * std::exp(z);
132
- } else {
133
- z = std::exp(z) * chbevl(32.0 / z - 2.0, detail::i1_B, 25) / std::sqrt(z);
134
- }
135
- if (x < 0.0)
136
- z = -z;
137
- return (z);
138
- }
139
-
140
- /* i1e() */
141
-
142
- XSF_HOST_DEVICE inline double i1e(double x) {
143
- double y, z;
144
-
145
- z = std::abs(x);
146
- if (z <= 8.0) {
147
- y = (z / 2.0) - 2.0;
148
- z = chbevl(y, detail::i1_A, 29) * z;
149
- } else {
150
- z = chbevl(32.0 / z - 2.0, detail::i1_B, 25) / std::sqrt(z);
151
- }
152
- if (x < 0.0)
153
- z = -z;
154
- return (z);
155
- }
156
-
157
- } // namespace cephes
158
- } // namespace xsf