scipy 1.16.1__cp314-cp314-musllinux_1_2_x86_64.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 (1420) hide show
  1. scipy/__config__.py +161 -0
  2. scipy/__init__.py +138 -0
  3. scipy/_cyutility.cpython-314-x86_64-linux-musl.so +0 -0
  4. scipy/_distributor_init.py +18 -0
  5. scipy/_lib/__init__.py +14 -0
  6. scipy/_lib/_array_api.py +931 -0
  7. scipy/_lib/_array_api_compat_vendor.py +9 -0
  8. scipy/_lib/_array_api_no_0d.py +103 -0
  9. scipy/_lib/_bunch.py +229 -0
  10. scipy/_lib/_ccallback.py +251 -0
  11. scipy/_lib/_ccallback_c.cpython-314-x86_64-linux-musl.so +0 -0
  12. scipy/_lib/_disjoint_set.py +254 -0
  13. scipy/_lib/_docscrape.py +761 -0
  14. scipy/_lib/_elementwise_iterative_method.py +346 -0
  15. scipy/_lib/_fpumode.cpython-314-x86_64-linux-musl.so +0 -0
  16. scipy/_lib/_gcutils.py +105 -0
  17. scipy/_lib/_pep440.py +487 -0
  18. scipy/_lib/_sparse.py +41 -0
  19. scipy/_lib/_test_ccallback.cpython-314-x86_64-linux-musl.so +0 -0
  20. scipy/_lib/_test_deprecation_call.cpython-314-x86_64-linux-musl.so +0 -0
  21. scipy/_lib/_test_deprecation_def.cpython-314-x86_64-linux-musl.so +0 -0
  22. scipy/_lib/_testutils.py +373 -0
  23. scipy/_lib/_threadsafety.py +58 -0
  24. scipy/_lib/_tmpdirs.py +86 -0
  25. scipy/_lib/_uarray/LICENSE +29 -0
  26. scipy/_lib/_uarray/__init__.py +116 -0
  27. scipy/_lib/_uarray/_backend.py +707 -0
  28. scipy/_lib/_uarray/_uarray.cpython-314-x86_64-linux-musl.so +0 -0
  29. scipy/_lib/_util.py +1283 -0
  30. scipy/_lib/array_api_compat/__init__.py +22 -0
  31. scipy/_lib/array_api_compat/_internal.py +59 -0
  32. scipy/_lib/array_api_compat/common/__init__.py +1 -0
  33. scipy/_lib/array_api_compat/common/_aliases.py +727 -0
  34. scipy/_lib/array_api_compat/common/_fft.py +213 -0
  35. scipy/_lib/array_api_compat/common/_helpers.py +1058 -0
  36. scipy/_lib/array_api_compat/common/_linalg.py +232 -0
  37. scipy/_lib/array_api_compat/common/_typing.py +192 -0
  38. scipy/_lib/array_api_compat/cupy/__init__.py +13 -0
  39. scipy/_lib/array_api_compat/cupy/_aliases.py +156 -0
  40. scipy/_lib/array_api_compat/cupy/_info.py +336 -0
  41. scipy/_lib/array_api_compat/cupy/_typing.py +31 -0
  42. scipy/_lib/array_api_compat/cupy/fft.py +36 -0
  43. scipy/_lib/array_api_compat/cupy/linalg.py +49 -0
  44. scipy/_lib/array_api_compat/dask/__init__.py +0 -0
  45. scipy/_lib/array_api_compat/dask/array/__init__.py +12 -0
  46. scipy/_lib/array_api_compat/dask/array/_aliases.py +376 -0
  47. scipy/_lib/array_api_compat/dask/array/_info.py +416 -0
  48. scipy/_lib/array_api_compat/dask/array/fft.py +21 -0
  49. scipy/_lib/array_api_compat/dask/array/linalg.py +72 -0
  50. scipy/_lib/array_api_compat/numpy/__init__.py +28 -0
  51. scipy/_lib/array_api_compat/numpy/_aliases.py +190 -0
  52. scipy/_lib/array_api_compat/numpy/_info.py +366 -0
  53. scipy/_lib/array_api_compat/numpy/_typing.py +30 -0
  54. scipy/_lib/array_api_compat/numpy/fft.py +35 -0
  55. scipy/_lib/array_api_compat/numpy/linalg.py +143 -0
  56. scipy/_lib/array_api_compat/torch/__init__.py +22 -0
  57. scipy/_lib/array_api_compat/torch/_aliases.py +855 -0
  58. scipy/_lib/array_api_compat/torch/_info.py +369 -0
  59. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  60. scipy/_lib/array_api_compat/torch/fft.py +85 -0
  61. scipy/_lib/array_api_compat/torch/linalg.py +121 -0
  62. scipy/_lib/array_api_extra/__init__.py +38 -0
  63. scipy/_lib/array_api_extra/_delegation.py +171 -0
  64. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  65. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  66. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  67. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  68. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  69. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  70. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  71. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  72. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  73. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  74. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  75. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  76. scipy/_lib/array_api_extra/testing.py +359 -0
  77. scipy/_lib/cobyqa/__init__.py +20 -0
  78. scipy/_lib/cobyqa/framework.py +1240 -0
  79. scipy/_lib/cobyqa/main.py +1506 -0
  80. scipy/_lib/cobyqa/models.py +1529 -0
  81. scipy/_lib/cobyqa/problem.py +1296 -0
  82. scipy/_lib/cobyqa/settings.py +132 -0
  83. scipy/_lib/cobyqa/subsolvers/__init__.py +14 -0
  84. scipy/_lib/cobyqa/subsolvers/geometry.py +387 -0
  85. scipy/_lib/cobyqa/subsolvers/optim.py +1203 -0
  86. scipy/_lib/cobyqa/utils/__init__.py +18 -0
  87. scipy/_lib/cobyqa/utils/exceptions.py +22 -0
  88. scipy/_lib/cobyqa/utils/math.py +77 -0
  89. scipy/_lib/cobyqa/utils/versions.py +67 -0
  90. scipy/_lib/decorator.py +399 -0
  91. scipy/_lib/deprecation.py +274 -0
  92. scipy/_lib/doccer.py +366 -0
  93. scipy/_lib/messagestream.cpython-314-x86_64-linux-musl.so +0 -0
  94. scipy/_lib/pyprima/__init__.py +212 -0
  95. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  96. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  97. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  98. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  99. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  100. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  101. scipy/_lib/pyprima/cobyla/update.py +289 -0
  102. scipy/_lib/pyprima/common/__init__.py +0 -0
  103. scipy/_lib/pyprima/common/_bounds.py +34 -0
  104. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  105. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  106. scipy/_lib/pyprima/common/_project.py +173 -0
  107. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  108. scipy/_lib/pyprima/common/consts.py +47 -0
  109. scipy/_lib/pyprima/common/evaluate.py +99 -0
  110. scipy/_lib/pyprima/common/history.py +38 -0
  111. scipy/_lib/pyprima/common/infos.py +30 -0
  112. scipy/_lib/pyprima/common/linalg.py +435 -0
  113. scipy/_lib/pyprima/common/message.py +290 -0
  114. scipy/_lib/pyprima/common/powalg.py +131 -0
  115. scipy/_lib/pyprima/common/preproc.py +277 -0
  116. scipy/_lib/pyprima/common/present.py +5 -0
  117. scipy/_lib/pyprima/common/ratio.py +54 -0
  118. scipy/_lib/pyprima/common/redrho.py +47 -0
  119. scipy/_lib/pyprima/common/selectx.py +296 -0
  120. scipy/_lib/tests/__init__.py +0 -0
  121. scipy/_lib/tests/test__gcutils.py +110 -0
  122. scipy/_lib/tests/test__pep440.py +67 -0
  123. scipy/_lib/tests/test__testutils.py +32 -0
  124. scipy/_lib/tests/test__threadsafety.py +51 -0
  125. scipy/_lib/tests/test__util.py +641 -0
  126. scipy/_lib/tests/test_array_api.py +322 -0
  127. scipy/_lib/tests/test_bunch.py +169 -0
  128. scipy/_lib/tests/test_ccallback.py +196 -0
  129. scipy/_lib/tests/test_config.py +45 -0
  130. scipy/_lib/tests/test_deprecation.py +10 -0
  131. scipy/_lib/tests/test_doccer.py +143 -0
  132. scipy/_lib/tests/test_import_cycles.py +18 -0
  133. scipy/_lib/tests/test_public_api.py +482 -0
  134. scipy/_lib/tests/test_scipy_version.py +28 -0
  135. scipy/_lib/tests/test_tmpdirs.py +48 -0
  136. scipy/_lib/tests/test_warnings.py +137 -0
  137. scipy/_lib/uarray.py +31 -0
  138. scipy/cluster/__init__.py +31 -0
  139. scipy/cluster/_hierarchy.cpython-314-x86_64-linux-musl.so +0 -0
  140. scipy/cluster/_optimal_leaf_ordering.cpython-314-x86_64-linux-musl.so +0 -0
  141. scipy/cluster/_vq.cpython-314-x86_64-linux-musl.so +0 -0
  142. scipy/cluster/hierarchy.py +4348 -0
  143. scipy/cluster/tests/__init__.py +0 -0
  144. scipy/cluster/tests/hierarchy_test_data.py +145 -0
  145. scipy/cluster/tests/test_disjoint_set.py +202 -0
  146. scipy/cluster/tests/test_hierarchy.py +1238 -0
  147. scipy/cluster/tests/test_vq.py +434 -0
  148. scipy/cluster/vq.py +832 -0
  149. scipy/conftest.py +683 -0
  150. scipy/constants/__init__.py +358 -0
  151. scipy/constants/_codata.py +2266 -0
  152. scipy/constants/_constants.py +369 -0
  153. scipy/constants/codata.py +21 -0
  154. scipy/constants/constants.py +53 -0
  155. scipy/constants/tests/__init__.py +0 -0
  156. scipy/constants/tests/test_codata.py +78 -0
  157. scipy/constants/tests/test_constants.py +83 -0
  158. scipy/datasets/__init__.py +90 -0
  159. scipy/datasets/_download_all.py +71 -0
  160. scipy/datasets/_fetchers.py +225 -0
  161. scipy/datasets/_registry.py +26 -0
  162. scipy/datasets/_utils.py +81 -0
  163. scipy/datasets/tests/__init__.py +0 -0
  164. scipy/datasets/tests/test_data.py +128 -0
  165. scipy/differentiate/__init__.py +27 -0
  166. scipy/differentiate/_differentiate.py +1129 -0
  167. scipy/differentiate/tests/__init__.py +0 -0
  168. scipy/differentiate/tests/test_differentiate.py +694 -0
  169. scipy/fft/__init__.py +114 -0
  170. scipy/fft/_backend.py +196 -0
  171. scipy/fft/_basic.py +1650 -0
  172. scipy/fft/_basic_backend.py +197 -0
  173. scipy/fft/_debug_backends.py +22 -0
  174. scipy/fft/_fftlog.py +223 -0
  175. scipy/fft/_fftlog_backend.py +200 -0
  176. scipy/fft/_helper.py +348 -0
  177. scipy/fft/_pocketfft/LICENSE.md +25 -0
  178. scipy/fft/_pocketfft/__init__.py +9 -0
  179. scipy/fft/_pocketfft/basic.py +251 -0
  180. scipy/fft/_pocketfft/helper.py +249 -0
  181. scipy/fft/_pocketfft/pypocketfft.cpython-314-x86_64-linux-musl.so +0 -0
  182. scipy/fft/_pocketfft/realtransforms.py +109 -0
  183. scipy/fft/_pocketfft/tests/__init__.py +0 -0
  184. scipy/fft/_pocketfft/tests/test_basic.py +1011 -0
  185. scipy/fft/_pocketfft/tests/test_real_transforms.py +505 -0
  186. scipy/fft/_realtransforms.py +706 -0
  187. scipy/fft/_realtransforms_backend.py +63 -0
  188. scipy/fft/tests/__init__.py +0 -0
  189. scipy/fft/tests/mock_backend.py +96 -0
  190. scipy/fft/tests/test_backend.py +98 -0
  191. scipy/fft/tests/test_basic.py +504 -0
  192. scipy/fft/tests/test_fftlog.py +215 -0
  193. scipy/fft/tests/test_helper.py +558 -0
  194. scipy/fft/tests/test_multithreading.py +84 -0
  195. scipy/fft/tests/test_real_transforms.py +247 -0
  196. scipy/fftpack/__init__.py +103 -0
  197. scipy/fftpack/_basic.py +428 -0
  198. scipy/fftpack/_helper.py +115 -0
  199. scipy/fftpack/_pseudo_diffs.py +554 -0
  200. scipy/fftpack/_realtransforms.py +598 -0
  201. scipy/fftpack/basic.py +20 -0
  202. scipy/fftpack/convolve.cpython-314-x86_64-linux-musl.so +0 -0
  203. scipy/fftpack/helper.py +19 -0
  204. scipy/fftpack/pseudo_diffs.py +22 -0
  205. scipy/fftpack/realtransforms.py +19 -0
  206. scipy/fftpack/tests/__init__.py +0 -0
  207. scipy/fftpack/tests/fftw_double_ref.npz +0 -0
  208. scipy/fftpack/tests/fftw_longdouble_ref.npz +0 -0
  209. scipy/fftpack/tests/fftw_single_ref.npz +0 -0
  210. scipy/fftpack/tests/test.npz +0 -0
  211. scipy/fftpack/tests/test_basic.py +877 -0
  212. scipy/fftpack/tests/test_helper.py +54 -0
  213. scipy/fftpack/tests/test_import.py +33 -0
  214. scipy/fftpack/tests/test_pseudo_diffs.py +388 -0
  215. scipy/fftpack/tests/test_real_transforms.py +836 -0
  216. scipy/integrate/__init__.py +122 -0
  217. scipy/integrate/_bvp.py +1160 -0
  218. scipy/integrate/_cubature.py +729 -0
  219. scipy/integrate/_dop.cpython-314-x86_64-linux-musl.so +0 -0
  220. scipy/integrate/_ivp/__init__.py +8 -0
  221. scipy/integrate/_ivp/base.py +290 -0
  222. scipy/integrate/_ivp/bdf.py +478 -0
  223. scipy/integrate/_ivp/common.py +451 -0
  224. scipy/integrate/_ivp/dop853_coefficients.py +193 -0
  225. scipy/integrate/_ivp/ivp.py +755 -0
  226. scipy/integrate/_ivp/lsoda.py +224 -0
  227. scipy/integrate/_ivp/radau.py +572 -0
  228. scipy/integrate/_ivp/rk.py +601 -0
  229. scipy/integrate/_ivp/tests/__init__.py +0 -0
  230. scipy/integrate/_ivp/tests/test_ivp.py +1287 -0
  231. scipy/integrate/_ivp/tests/test_rk.py +37 -0
  232. scipy/integrate/_lebedev.py +5450 -0
  233. scipy/integrate/_lsoda.cpython-314-x86_64-linux-musl.so +0 -0
  234. scipy/integrate/_ode.py +1395 -0
  235. scipy/integrate/_odepack.cpython-314-x86_64-linux-musl.so +0 -0
  236. scipy/integrate/_odepack_py.py +273 -0
  237. scipy/integrate/_quad_vec.py +674 -0
  238. scipy/integrate/_quadpack.cpython-314-x86_64-linux-musl.so +0 -0
  239. scipy/integrate/_quadpack_py.py +1283 -0
  240. scipy/integrate/_quadrature.py +1336 -0
  241. scipy/integrate/_rules/__init__.py +12 -0
  242. scipy/integrate/_rules/_base.py +518 -0
  243. scipy/integrate/_rules/_gauss_kronrod.py +202 -0
  244. scipy/integrate/_rules/_gauss_legendre.py +62 -0
  245. scipy/integrate/_rules/_genz_malik.py +210 -0
  246. scipy/integrate/_tanhsinh.py +1385 -0
  247. scipy/integrate/_test_multivariate.cpython-314-x86_64-linux-musl.so +0 -0
  248. scipy/integrate/_test_odeint_banded.cpython-314-x86_64-linux-musl.so +0 -0
  249. scipy/integrate/_vode.cpython-314-x86_64-linux-musl.so +0 -0
  250. scipy/integrate/dop.py +15 -0
  251. scipy/integrate/lsoda.py +15 -0
  252. scipy/integrate/odepack.py +17 -0
  253. scipy/integrate/quadpack.py +23 -0
  254. scipy/integrate/tests/__init__.py +0 -0
  255. scipy/integrate/tests/test__quad_vec.py +211 -0
  256. scipy/integrate/tests/test_banded_ode_solvers.py +305 -0
  257. scipy/integrate/tests/test_bvp.py +714 -0
  258. scipy/integrate/tests/test_cubature.py +1375 -0
  259. scipy/integrate/tests/test_integrate.py +840 -0
  260. scipy/integrate/tests/test_odeint_jac.py +74 -0
  261. scipy/integrate/tests/test_quadpack.py +680 -0
  262. scipy/integrate/tests/test_quadrature.py +730 -0
  263. scipy/integrate/tests/test_tanhsinh.py +1171 -0
  264. scipy/integrate/vode.py +15 -0
  265. scipy/interpolate/__init__.py +228 -0
  266. scipy/interpolate/_bary_rational.py +715 -0
  267. scipy/interpolate/_bsplines.py +2469 -0
  268. scipy/interpolate/_cubic.py +973 -0
  269. scipy/interpolate/_dfitpack.cpython-314-x86_64-linux-musl.so +0 -0
  270. scipy/interpolate/_dierckx.cpython-314-x86_64-linux-musl.so +0 -0
  271. scipy/interpolate/_fitpack.cpython-314-x86_64-linux-musl.so +0 -0
  272. scipy/interpolate/_fitpack2.py +2397 -0
  273. scipy/interpolate/_fitpack_impl.py +811 -0
  274. scipy/interpolate/_fitpack_py.py +898 -0
  275. scipy/interpolate/_fitpack_repro.py +996 -0
  276. scipy/interpolate/_interpnd.cpython-314-x86_64-linux-musl.so +0 -0
  277. scipy/interpolate/_interpolate.py +2266 -0
  278. scipy/interpolate/_ndbspline.py +415 -0
  279. scipy/interpolate/_ndgriddata.py +329 -0
  280. scipy/interpolate/_pade.py +67 -0
  281. scipy/interpolate/_polyint.py +1025 -0
  282. scipy/interpolate/_ppoly.cpython-314-x86_64-linux-musl.so +0 -0
  283. scipy/interpolate/_rbf.py +290 -0
  284. scipy/interpolate/_rbfinterp.py +550 -0
  285. scipy/interpolate/_rbfinterp_pythran.cpython-314-x86_64-linux-musl.so +0 -0
  286. scipy/interpolate/_rgi.py +764 -0
  287. scipy/interpolate/_rgi_cython.cpython-314-x86_64-linux-musl.so +0 -0
  288. scipy/interpolate/dfitpack.py +24 -0
  289. scipy/interpolate/fitpack.py +31 -0
  290. scipy/interpolate/fitpack2.py +29 -0
  291. scipy/interpolate/interpnd.py +24 -0
  292. scipy/interpolate/interpolate.py +30 -0
  293. scipy/interpolate/ndgriddata.py +23 -0
  294. scipy/interpolate/polyint.py +24 -0
  295. scipy/interpolate/rbf.py +18 -0
  296. scipy/interpolate/tests/__init__.py +0 -0
  297. scipy/interpolate/tests/data/bug-1310.npz +0 -0
  298. scipy/interpolate/tests/data/estimate_gradients_hang.npy +0 -0
  299. scipy/interpolate/tests/data/gcvspl.npz +0 -0
  300. scipy/interpolate/tests/test_bary_rational.py +368 -0
  301. scipy/interpolate/tests/test_bsplines.py +3754 -0
  302. scipy/interpolate/tests/test_fitpack.py +519 -0
  303. scipy/interpolate/tests/test_fitpack2.py +1431 -0
  304. scipy/interpolate/tests/test_gil.py +64 -0
  305. scipy/interpolate/tests/test_interpnd.py +452 -0
  306. scipy/interpolate/tests/test_interpolate.py +2630 -0
  307. scipy/interpolate/tests/test_ndgriddata.py +308 -0
  308. scipy/interpolate/tests/test_pade.py +107 -0
  309. scipy/interpolate/tests/test_polyint.py +972 -0
  310. scipy/interpolate/tests/test_rbf.py +246 -0
  311. scipy/interpolate/tests/test_rbfinterp.py +534 -0
  312. scipy/interpolate/tests/test_rgi.py +1151 -0
  313. scipy/io/__init__.py +116 -0
  314. scipy/io/_fast_matrix_market/__init__.py +600 -0
  315. scipy/io/_fast_matrix_market/_fmm_core.cpython-314-x86_64-linux-musl.so +0 -0
  316. scipy/io/_fortran.py +354 -0
  317. scipy/io/_harwell_boeing/__init__.py +7 -0
  318. scipy/io/_harwell_boeing/_fortran_format_parser.py +316 -0
  319. scipy/io/_harwell_boeing/hb.py +571 -0
  320. scipy/io/_harwell_boeing/tests/__init__.py +0 -0
  321. scipy/io/_harwell_boeing/tests/test_fortran_format.py +74 -0
  322. scipy/io/_harwell_boeing/tests/test_hb.py +70 -0
  323. scipy/io/_idl.py +917 -0
  324. scipy/io/_mmio.py +968 -0
  325. scipy/io/_netcdf.py +1104 -0
  326. scipy/io/_test_fortran.cpython-314-x86_64-linux-musl.so +0 -0
  327. scipy/io/arff/__init__.py +28 -0
  328. scipy/io/arff/_arffread.py +873 -0
  329. scipy/io/arff/arffread.py +19 -0
  330. scipy/io/arff/tests/__init__.py +0 -0
  331. scipy/io/arff/tests/data/iris.arff +225 -0
  332. scipy/io/arff/tests/data/missing.arff +8 -0
  333. scipy/io/arff/tests/data/nodata.arff +11 -0
  334. scipy/io/arff/tests/data/quoted_nominal.arff +13 -0
  335. scipy/io/arff/tests/data/quoted_nominal_spaces.arff +13 -0
  336. scipy/io/arff/tests/data/test1.arff +10 -0
  337. scipy/io/arff/tests/data/test10.arff +8 -0
  338. scipy/io/arff/tests/data/test11.arff +11 -0
  339. scipy/io/arff/tests/data/test2.arff +15 -0
  340. scipy/io/arff/tests/data/test3.arff +6 -0
  341. scipy/io/arff/tests/data/test4.arff +11 -0
  342. scipy/io/arff/tests/data/test5.arff +26 -0
  343. scipy/io/arff/tests/data/test6.arff +12 -0
  344. scipy/io/arff/tests/data/test7.arff +15 -0
  345. scipy/io/arff/tests/data/test8.arff +12 -0
  346. scipy/io/arff/tests/data/test9.arff +14 -0
  347. scipy/io/arff/tests/test_arffread.py +421 -0
  348. scipy/io/harwell_boeing.py +17 -0
  349. scipy/io/idl.py +17 -0
  350. scipy/io/matlab/__init__.py +66 -0
  351. scipy/io/matlab/_byteordercodes.py +75 -0
  352. scipy/io/matlab/_mio.py +375 -0
  353. scipy/io/matlab/_mio4.py +632 -0
  354. scipy/io/matlab/_mio5.py +901 -0
  355. scipy/io/matlab/_mio5_params.py +281 -0
  356. scipy/io/matlab/_mio5_utils.cpython-314-x86_64-linux-musl.so +0 -0
  357. scipy/io/matlab/_mio_utils.cpython-314-x86_64-linux-musl.so +0 -0
  358. scipy/io/matlab/_miobase.py +435 -0
  359. scipy/io/matlab/_streams.cpython-314-x86_64-linux-musl.so +0 -0
  360. scipy/io/matlab/byteordercodes.py +17 -0
  361. scipy/io/matlab/mio.py +16 -0
  362. scipy/io/matlab/mio4.py +17 -0
  363. scipy/io/matlab/mio5.py +19 -0
  364. scipy/io/matlab/mio5_params.py +18 -0
  365. scipy/io/matlab/mio5_utils.py +17 -0
  366. scipy/io/matlab/mio_utils.py +17 -0
  367. scipy/io/matlab/miobase.py +16 -0
  368. scipy/io/matlab/streams.py +16 -0
  369. scipy/io/matlab/tests/__init__.py +0 -0
  370. scipy/io/matlab/tests/data/bad_miuint32.mat +0 -0
  371. scipy/io/matlab/tests/data/bad_miutf8_array_name.mat +0 -0
  372. scipy/io/matlab/tests/data/big_endian.mat +0 -0
  373. scipy/io/matlab/tests/data/broken_utf8.mat +0 -0
  374. scipy/io/matlab/tests/data/corrupted_zlib_checksum.mat +0 -0
  375. scipy/io/matlab/tests/data/corrupted_zlib_data.mat +0 -0
  376. scipy/io/matlab/tests/data/debigged_m4.mat +0 -0
  377. scipy/io/matlab/tests/data/japanese_utf8.txt +5 -0
  378. scipy/io/matlab/tests/data/little_endian.mat +0 -0
  379. scipy/io/matlab/tests/data/logical_sparse.mat +0 -0
  380. scipy/io/matlab/tests/data/malformed1.mat +0 -0
  381. scipy/io/matlab/tests/data/miuint32_for_miint32.mat +0 -0
  382. scipy/io/matlab/tests/data/miutf8_array_name.mat +0 -0
  383. scipy/io/matlab/tests/data/nasty_duplicate_fieldnames.mat +0 -0
  384. scipy/io/matlab/tests/data/one_by_zero_char.mat +0 -0
  385. scipy/io/matlab/tests/data/parabola.mat +0 -0
  386. scipy/io/matlab/tests/data/single_empty_string.mat +0 -0
  387. scipy/io/matlab/tests/data/some_functions.mat +0 -0
  388. scipy/io/matlab/tests/data/sqr.mat +0 -0
  389. scipy/io/matlab/tests/data/test3dmatrix_6.1_SOL2.mat +0 -0
  390. scipy/io/matlab/tests/data/test3dmatrix_6.5.1_GLNX86.mat +0 -0
  391. scipy/io/matlab/tests/data/test3dmatrix_7.1_GLNX86.mat +0 -0
  392. scipy/io/matlab/tests/data/test3dmatrix_7.4_GLNX86.mat +0 -0
  393. scipy/io/matlab/tests/data/test_empty_struct.mat +0 -0
  394. scipy/io/matlab/tests/data/test_mat4_le_floats.mat +0 -0
  395. scipy/io/matlab/tests/data/test_skip_variable.mat +0 -0
  396. scipy/io/matlab/tests/data/testbool_8_WIN64.mat +0 -0
  397. scipy/io/matlab/tests/data/testcell_6.1_SOL2.mat +0 -0
  398. scipy/io/matlab/tests/data/testcell_6.5.1_GLNX86.mat +0 -0
  399. scipy/io/matlab/tests/data/testcell_7.1_GLNX86.mat +0 -0
  400. scipy/io/matlab/tests/data/testcell_7.4_GLNX86.mat +0 -0
  401. scipy/io/matlab/tests/data/testcellnest_6.1_SOL2.mat +0 -0
  402. scipy/io/matlab/tests/data/testcellnest_6.5.1_GLNX86.mat +0 -0
  403. scipy/io/matlab/tests/data/testcellnest_7.1_GLNX86.mat +0 -0
  404. scipy/io/matlab/tests/data/testcellnest_7.4_GLNX86.mat +0 -0
  405. scipy/io/matlab/tests/data/testcomplex_4.2c_SOL2.mat +0 -0
  406. scipy/io/matlab/tests/data/testcomplex_6.1_SOL2.mat +0 -0
  407. scipy/io/matlab/tests/data/testcomplex_6.5.1_GLNX86.mat +0 -0
  408. scipy/io/matlab/tests/data/testcomplex_7.1_GLNX86.mat +0 -0
  409. scipy/io/matlab/tests/data/testcomplex_7.4_GLNX86.mat +0 -0
  410. scipy/io/matlab/tests/data/testdouble_4.2c_SOL2.mat +0 -0
  411. scipy/io/matlab/tests/data/testdouble_6.1_SOL2.mat +0 -0
  412. scipy/io/matlab/tests/data/testdouble_6.5.1_GLNX86.mat +0 -0
  413. scipy/io/matlab/tests/data/testdouble_7.1_GLNX86.mat +0 -0
  414. scipy/io/matlab/tests/data/testdouble_7.4_GLNX86.mat +0 -0
  415. scipy/io/matlab/tests/data/testemptycell_5.3_SOL2.mat +0 -0
  416. scipy/io/matlab/tests/data/testemptycell_6.5.1_GLNX86.mat +0 -0
  417. scipy/io/matlab/tests/data/testemptycell_7.1_GLNX86.mat +0 -0
  418. scipy/io/matlab/tests/data/testemptycell_7.4_GLNX86.mat +0 -0
  419. scipy/io/matlab/tests/data/testfunc_7.4_GLNX86.mat +0 -0
  420. scipy/io/matlab/tests/data/testhdf5_7.4_GLNX86.mat +0 -0
  421. scipy/io/matlab/tests/data/testmatrix_4.2c_SOL2.mat +0 -0
  422. scipy/io/matlab/tests/data/testmatrix_6.1_SOL2.mat +0 -0
  423. scipy/io/matlab/tests/data/testmatrix_6.5.1_GLNX86.mat +0 -0
  424. scipy/io/matlab/tests/data/testmatrix_7.1_GLNX86.mat +0 -0
  425. scipy/io/matlab/tests/data/testmatrix_7.4_GLNX86.mat +0 -0
  426. scipy/io/matlab/tests/data/testminus_4.2c_SOL2.mat +0 -0
  427. scipy/io/matlab/tests/data/testminus_6.1_SOL2.mat +0 -0
  428. scipy/io/matlab/tests/data/testminus_6.5.1_GLNX86.mat +0 -0
  429. scipy/io/matlab/tests/data/testminus_7.1_GLNX86.mat +0 -0
  430. scipy/io/matlab/tests/data/testminus_7.4_GLNX86.mat +0 -0
  431. scipy/io/matlab/tests/data/testmulti_4.2c_SOL2.mat +0 -0
  432. scipy/io/matlab/tests/data/testmulti_7.1_GLNX86.mat +0 -0
  433. scipy/io/matlab/tests/data/testmulti_7.4_GLNX86.mat +0 -0
  434. scipy/io/matlab/tests/data/testobject_6.1_SOL2.mat +0 -0
  435. scipy/io/matlab/tests/data/testobject_6.5.1_GLNX86.mat +0 -0
  436. scipy/io/matlab/tests/data/testobject_7.1_GLNX86.mat +0 -0
  437. scipy/io/matlab/tests/data/testobject_7.4_GLNX86.mat +0 -0
  438. scipy/io/matlab/tests/data/testonechar_4.2c_SOL2.mat +0 -0
  439. scipy/io/matlab/tests/data/testonechar_6.1_SOL2.mat +0 -0
  440. scipy/io/matlab/tests/data/testonechar_6.5.1_GLNX86.mat +0 -0
  441. scipy/io/matlab/tests/data/testonechar_7.1_GLNX86.mat +0 -0
  442. scipy/io/matlab/tests/data/testonechar_7.4_GLNX86.mat +0 -0
  443. scipy/io/matlab/tests/data/testscalarcell_7.4_GLNX86.mat +0 -0
  444. scipy/io/matlab/tests/data/testsimplecell.mat +0 -0
  445. scipy/io/matlab/tests/data/testsparse_4.2c_SOL2.mat +0 -0
  446. scipy/io/matlab/tests/data/testsparse_6.1_SOL2.mat +0 -0
  447. scipy/io/matlab/tests/data/testsparse_6.5.1_GLNX86.mat +0 -0
  448. scipy/io/matlab/tests/data/testsparse_7.1_GLNX86.mat +0 -0
  449. scipy/io/matlab/tests/data/testsparse_7.4_GLNX86.mat +0 -0
  450. scipy/io/matlab/tests/data/testsparsecomplex_4.2c_SOL2.mat +0 -0
  451. scipy/io/matlab/tests/data/testsparsecomplex_6.1_SOL2.mat +0 -0
  452. scipy/io/matlab/tests/data/testsparsecomplex_6.5.1_GLNX86.mat +0 -0
  453. scipy/io/matlab/tests/data/testsparsecomplex_7.1_GLNX86.mat +0 -0
  454. scipy/io/matlab/tests/data/testsparsecomplex_7.4_GLNX86.mat +0 -0
  455. scipy/io/matlab/tests/data/testsparsefloat_7.4_GLNX86.mat +0 -0
  456. scipy/io/matlab/tests/data/teststring_4.2c_SOL2.mat +0 -0
  457. scipy/io/matlab/tests/data/teststring_6.1_SOL2.mat +0 -0
  458. scipy/io/matlab/tests/data/teststring_6.5.1_GLNX86.mat +0 -0
  459. scipy/io/matlab/tests/data/teststring_7.1_GLNX86.mat +0 -0
  460. scipy/io/matlab/tests/data/teststring_7.4_GLNX86.mat +0 -0
  461. scipy/io/matlab/tests/data/teststringarray_4.2c_SOL2.mat +0 -0
  462. scipy/io/matlab/tests/data/teststringarray_6.1_SOL2.mat +0 -0
  463. scipy/io/matlab/tests/data/teststringarray_6.5.1_GLNX86.mat +0 -0
  464. scipy/io/matlab/tests/data/teststringarray_7.1_GLNX86.mat +0 -0
  465. scipy/io/matlab/tests/data/teststringarray_7.4_GLNX86.mat +0 -0
  466. scipy/io/matlab/tests/data/teststruct_6.1_SOL2.mat +0 -0
  467. scipy/io/matlab/tests/data/teststruct_6.5.1_GLNX86.mat +0 -0
  468. scipy/io/matlab/tests/data/teststruct_7.1_GLNX86.mat +0 -0
  469. scipy/io/matlab/tests/data/teststruct_7.4_GLNX86.mat +0 -0
  470. scipy/io/matlab/tests/data/teststructarr_6.1_SOL2.mat +0 -0
  471. scipy/io/matlab/tests/data/teststructarr_6.5.1_GLNX86.mat +0 -0
  472. scipy/io/matlab/tests/data/teststructarr_7.1_GLNX86.mat +0 -0
  473. scipy/io/matlab/tests/data/teststructarr_7.4_GLNX86.mat +0 -0
  474. scipy/io/matlab/tests/data/teststructnest_6.1_SOL2.mat +0 -0
  475. scipy/io/matlab/tests/data/teststructnest_6.5.1_GLNX86.mat +0 -0
  476. scipy/io/matlab/tests/data/teststructnest_7.1_GLNX86.mat +0 -0
  477. scipy/io/matlab/tests/data/teststructnest_7.4_GLNX86.mat +0 -0
  478. scipy/io/matlab/tests/data/testunicode_7.1_GLNX86.mat +0 -0
  479. scipy/io/matlab/tests/data/testunicode_7.4_GLNX86.mat +0 -0
  480. scipy/io/matlab/tests/data/testvec_4_GLNX86.mat +0 -0
  481. scipy/io/matlab/tests/test_byteordercodes.py +29 -0
  482. scipy/io/matlab/tests/test_mio.py +1399 -0
  483. scipy/io/matlab/tests/test_mio5_utils.py +179 -0
  484. scipy/io/matlab/tests/test_mio_funcs.py +51 -0
  485. scipy/io/matlab/tests/test_mio_utils.py +45 -0
  486. scipy/io/matlab/tests/test_miobase.py +32 -0
  487. scipy/io/matlab/tests/test_pathological.py +33 -0
  488. scipy/io/matlab/tests/test_streams.py +241 -0
  489. scipy/io/mmio.py +17 -0
  490. scipy/io/netcdf.py +17 -0
  491. scipy/io/tests/__init__.py +0 -0
  492. scipy/io/tests/data/Transparent Busy.ani +0 -0
  493. scipy/io/tests/data/array_float32_1d.sav +0 -0
  494. scipy/io/tests/data/array_float32_2d.sav +0 -0
  495. scipy/io/tests/data/array_float32_3d.sav +0 -0
  496. scipy/io/tests/data/array_float32_4d.sav +0 -0
  497. scipy/io/tests/data/array_float32_5d.sav +0 -0
  498. scipy/io/tests/data/array_float32_6d.sav +0 -0
  499. scipy/io/tests/data/array_float32_7d.sav +0 -0
  500. scipy/io/tests/data/array_float32_8d.sav +0 -0
  501. scipy/io/tests/data/array_float32_pointer_1d.sav +0 -0
  502. scipy/io/tests/data/array_float32_pointer_2d.sav +0 -0
  503. scipy/io/tests/data/array_float32_pointer_3d.sav +0 -0
  504. scipy/io/tests/data/array_float32_pointer_4d.sav +0 -0
  505. scipy/io/tests/data/array_float32_pointer_5d.sav +0 -0
  506. scipy/io/tests/data/array_float32_pointer_6d.sav +0 -0
  507. scipy/io/tests/data/array_float32_pointer_7d.sav +0 -0
  508. scipy/io/tests/data/array_float32_pointer_8d.sav +0 -0
  509. scipy/io/tests/data/example_1.nc +0 -0
  510. scipy/io/tests/data/example_2.nc +0 -0
  511. scipy/io/tests/data/example_3_maskedvals.nc +0 -0
  512. scipy/io/tests/data/fortran-3x3d-2i.dat +0 -0
  513. scipy/io/tests/data/fortran-mixed.dat +0 -0
  514. scipy/io/tests/data/fortran-sf8-11x1x10.dat +0 -0
  515. scipy/io/tests/data/fortran-sf8-15x10x22.dat +0 -0
  516. scipy/io/tests/data/fortran-sf8-1x1x1.dat +0 -0
  517. scipy/io/tests/data/fortran-sf8-1x1x5.dat +0 -0
  518. scipy/io/tests/data/fortran-sf8-1x1x7.dat +0 -0
  519. scipy/io/tests/data/fortran-sf8-1x3x5.dat +0 -0
  520. scipy/io/tests/data/fortran-si4-11x1x10.dat +0 -0
  521. scipy/io/tests/data/fortran-si4-15x10x22.dat +0 -0
  522. scipy/io/tests/data/fortran-si4-1x1x1.dat +0 -0
  523. scipy/io/tests/data/fortran-si4-1x1x5.dat +0 -0
  524. scipy/io/tests/data/fortran-si4-1x1x7.dat +0 -0
  525. scipy/io/tests/data/fortran-si4-1x3x5.dat +0 -0
  526. scipy/io/tests/data/invalid_pointer.sav +0 -0
  527. scipy/io/tests/data/null_pointer.sav +0 -0
  528. scipy/io/tests/data/scalar_byte.sav +0 -0
  529. scipy/io/tests/data/scalar_byte_descr.sav +0 -0
  530. scipy/io/tests/data/scalar_complex32.sav +0 -0
  531. scipy/io/tests/data/scalar_complex64.sav +0 -0
  532. scipy/io/tests/data/scalar_float32.sav +0 -0
  533. scipy/io/tests/data/scalar_float64.sav +0 -0
  534. scipy/io/tests/data/scalar_heap_pointer.sav +0 -0
  535. scipy/io/tests/data/scalar_int16.sav +0 -0
  536. scipy/io/tests/data/scalar_int32.sav +0 -0
  537. scipy/io/tests/data/scalar_int64.sav +0 -0
  538. scipy/io/tests/data/scalar_string.sav +0 -0
  539. scipy/io/tests/data/scalar_uint16.sav +0 -0
  540. scipy/io/tests/data/scalar_uint32.sav +0 -0
  541. scipy/io/tests/data/scalar_uint64.sav +0 -0
  542. scipy/io/tests/data/struct_arrays.sav +0 -0
  543. scipy/io/tests/data/struct_arrays_byte_idl80.sav +0 -0
  544. scipy/io/tests/data/struct_arrays_replicated.sav +0 -0
  545. scipy/io/tests/data/struct_arrays_replicated_3d.sav +0 -0
  546. scipy/io/tests/data/struct_inherit.sav +0 -0
  547. scipy/io/tests/data/struct_pointer_arrays.sav +0 -0
  548. scipy/io/tests/data/struct_pointer_arrays_replicated.sav +0 -0
  549. scipy/io/tests/data/struct_pointer_arrays_replicated_3d.sav +0 -0
  550. scipy/io/tests/data/struct_pointers.sav +0 -0
  551. scipy/io/tests/data/struct_pointers_replicated.sav +0 -0
  552. scipy/io/tests/data/struct_pointers_replicated_3d.sav +0 -0
  553. scipy/io/tests/data/struct_scalars.sav +0 -0
  554. scipy/io/tests/data/struct_scalars_replicated.sav +0 -0
  555. scipy/io/tests/data/struct_scalars_replicated_3d.sav +0 -0
  556. scipy/io/tests/data/test-1234Hz-le-1ch-10S-20bit-extra.wav +0 -0
  557. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-be.wav +0 -0
  558. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-le.wav +0 -0
  559. scipy/io/tests/data/test-44100Hz-be-1ch-4bytes.wav +0 -0
  560. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof-no-data.wav +0 -0
  561. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof.wav +0 -0
  562. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wav +0 -0
  563. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-rf64.wav +0 -0
  564. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes.wav +0 -0
  565. scipy/io/tests/data/test-48000Hz-2ch-64bit-float-le-wavex.wav +0 -0
  566. scipy/io/tests/data/test-8000Hz-be-3ch-5S-24bit.wav +0 -0
  567. scipy/io/tests/data/test-8000Hz-le-1ch-1byte-ulaw.wav +0 -0
  568. scipy/io/tests/data/test-8000Hz-le-2ch-1byteu.wav +0 -0
  569. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-inconsistent.wav +0 -0
  570. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-rf64.wav +0 -0
  571. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit.wav +0 -0
  572. scipy/io/tests/data/test-8000Hz-le-3ch-5S-36bit.wav +0 -0
  573. scipy/io/tests/data/test-8000Hz-le-3ch-5S-45bit.wav +0 -0
  574. scipy/io/tests/data/test-8000Hz-le-3ch-5S-53bit.wav +0 -0
  575. scipy/io/tests/data/test-8000Hz-le-3ch-5S-64bit.wav +0 -0
  576. scipy/io/tests/data/test-8000Hz-le-4ch-9S-12bit.wav +0 -0
  577. scipy/io/tests/data/test-8000Hz-le-5ch-9S-5bit.wav +0 -0
  578. scipy/io/tests/data/various_compressed.sav +0 -0
  579. scipy/io/tests/test_fortran.py +264 -0
  580. scipy/io/tests/test_idl.py +483 -0
  581. scipy/io/tests/test_mmio.py +831 -0
  582. scipy/io/tests/test_netcdf.py +550 -0
  583. scipy/io/tests/test_paths.py +93 -0
  584. scipy/io/tests/test_wavfile.py +501 -0
  585. scipy/io/wavfile.py +938 -0
  586. scipy/linalg/__init__.pxd +1 -0
  587. scipy/linalg/__init__.py +236 -0
  588. scipy/linalg/_basic.py +2146 -0
  589. scipy/linalg/_blas_subroutines.h +164 -0
  590. scipy/linalg/_cythonized_array_utils.cpython-314-x86_64-linux-musl.so +0 -0
  591. scipy/linalg/_cythonized_array_utils.pxd +40 -0
  592. scipy/linalg/_cythonized_array_utils.pyi +16 -0
  593. scipy/linalg/_decomp.py +1645 -0
  594. scipy/linalg/_decomp_cholesky.py +413 -0
  595. scipy/linalg/_decomp_cossin.py +236 -0
  596. scipy/linalg/_decomp_interpolative.cpython-314-x86_64-linux-musl.so +0 -0
  597. scipy/linalg/_decomp_ldl.py +356 -0
  598. scipy/linalg/_decomp_lu.py +401 -0
  599. scipy/linalg/_decomp_lu_cython.cpython-314-x86_64-linux-musl.so +0 -0
  600. scipy/linalg/_decomp_lu_cython.pyi +6 -0
  601. scipy/linalg/_decomp_polar.py +113 -0
  602. scipy/linalg/_decomp_qr.py +494 -0
  603. scipy/linalg/_decomp_qz.py +452 -0
  604. scipy/linalg/_decomp_schur.py +336 -0
  605. scipy/linalg/_decomp_svd.py +545 -0
  606. scipy/linalg/_decomp_update.cpython-314-x86_64-linux-musl.so +0 -0
  607. scipy/linalg/_expm_frechet.py +417 -0
  608. scipy/linalg/_fblas.cpython-314-x86_64-linux-musl.so +0 -0
  609. scipy/linalg/_flapack.cpython-314-x86_64-linux-musl.so +0 -0
  610. scipy/linalg/_lapack_subroutines.h +1521 -0
  611. scipy/linalg/_linalg_pythran.cpython-314-x86_64-linux-musl.so +0 -0
  612. scipy/linalg/_matfuncs.py +1050 -0
  613. scipy/linalg/_matfuncs_expm.cpython-314-x86_64-linux-musl.so +0 -0
  614. scipy/linalg/_matfuncs_expm.pyi +6 -0
  615. scipy/linalg/_matfuncs_inv_ssq.py +886 -0
  616. scipy/linalg/_matfuncs_schur_sqrtm.cpython-314-x86_64-linux-musl.so +0 -0
  617. scipy/linalg/_matfuncs_sqrtm.py +107 -0
  618. scipy/linalg/_matfuncs_sqrtm_triu.cpython-314-x86_64-linux-musl.so +0 -0
  619. scipy/linalg/_misc.py +191 -0
  620. scipy/linalg/_procrustes.py +113 -0
  621. scipy/linalg/_sketches.py +189 -0
  622. scipy/linalg/_solve_toeplitz.cpython-314-x86_64-linux-musl.so +0 -0
  623. scipy/linalg/_solvers.py +862 -0
  624. scipy/linalg/_special_matrices.py +1322 -0
  625. scipy/linalg/_testutils.py +65 -0
  626. scipy/linalg/basic.py +23 -0
  627. scipy/linalg/blas.py +495 -0
  628. scipy/linalg/cython_blas.cpython-314-x86_64-linux-musl.so +0 -0
  629. scipy/linalg/cython_blas.pxd +169 -0
  630. scipy/linalg/cython_blas.pyx +1432 -0
  631. scipy/linalg/cython_lapack.cpython-314-x86_64-linux-musl.so +0 -0
  632. scipy/linalg/cython_lapack.pxd +1528 -0
  633. scipy/linalg/cython_lapack.pyx +12045 -0
  634. scipy/linalg/decomp.py +23 -0
  635. scipy/linalg/decomp_cholesky.py +21 -0
  636. scipy/linalg/decomp_lu.py +21 -0
  637. scipy/linalg/decomp_qr.py +20 -0
  638. scipy/linalg/decomp_schur.py +21 -0
  639. scipy/linalg/decomp_svd.py +21 -0
  640. scipy/linalg/interpolative.py +989 -0
  641. scipy/linalg/lapack.py +1081 -0
  642. scipy/linalg/matfuncs.py +23 -0
  643. scipy/linalg/misc.py +21 -0
  644. scipy/linalg/special_matrices.py +22 -0
  645. scipy/linalg/tests/__init__.py +0 -0
  646. scipy/linalg/tests/_cython_examples/extending.pyx +23 -0
  647. scipy/linalg/tests/_cython_examples/meson.build +34 -0
  648. scipy/linalg/tests/data/carex_15_data.npz +0 -0
  649. scipy/linalg/tests/data/carex_18_data.npz +0 -0
  650. scipy/linalg/tests/data/carex_19_data.npz +0 -0
  651. scipy/linalg/tests/data/carex_20_data.npz +0 -0
  652. scipy/linalg/tests/data/carex_6_data.npz +0 -0
  653. scipy/linalg/tests/data/gendare_20170120_data.npz +0 -0
  654. scipy/linalg/tests/test_basic.py +2074 -0
  655. scipy/linalg/tests/test_batch.py +588 -0
  656. scipy/linalg/tests/test_blas.py +1127 -0
  657. scipy/linalg/tests/test_cython_blas.py +118 -0
  658. scipy/linalg/tests/test_cython_lapack.py +22 -0
  659. scipy/linalg/tests/test_cythonized_array_utils.py +130 -0
  660. scipy/linalg/tests/test_decomp.py +3189 -0
  661. scipy/linalg/tests/test_decomp_cholesky.py +268 -0
  662. scipy/linalg/tests/test_decomp_cossin.py +314 -0
  663. scipy/linalg/tests/test_decomp_ldl.py +137 -0
  664. scipy/linalg/tests/test_decomp_lu.py +308 -0
  665. scipy/linalg/tests/test_decomp_polar.py +110 -0
  666. scipy/linalg/tests/test_decomp_update.py +1701 -0
  667. scipy/linalg/tests/test_extending.py +46 -0
  668. scipy/linalg/tests/test_fblas.py +607 -0
  669. scipy/linalg/tests/test_interpolative.py +232 -0
  670. scipy/linalg/tests/test_lapack.py +3616 -0
  671. scipy/linalg/tests/test_matfuncs.py +1125 -0
  672. scipy/linalg/tests/test_matmul_toeplitz.py +136 -0
  673. scipy/linalg/tests/test_procrustes.py +214 -0
  674. scipy/linalg/tests/test_sketches.py +118 -0
  675. scipy/linalg/tests/test_solve_toeplitz.py +150 -0
  676. scipy/linalg/tests/test_solvers.py +844 -0
  677. scipy/linalg/tests/test_special_matrices.py +636 -0
  678. scipy/misc/__init__.py +6 -0
  679. scipy/misc/common.py +6 -0
  680. scipy/misc/doccer.py +6 -0
  681. scipy/ndimage/__init__.py +174 -0
  682. scipy/ndimage/_ctest.cpython-314-x86_64-linux-musl.so +0 -0
  683. scipy/ndimage/_cytest.cpython-314-x86_64-linux-musl.so +0 -0
  684. scipy/ndimage/_delegators.py +303 -0
  685. scipy/ndimage/_filters.py +2422 -0
  686. scipy/ndimage/_fourier.py +306 -0
  687. scipy/ndimage/_interpolation.py +1033 -0
  688. scipy/ndimage/_measurements.py +1689 -0
  689. scipy/ndimage/_morphology.py +2634 -0
  690. scipy/ndimage/_nd_image.cpython-314-x86_64-linux-musl.so +0 -0
  691. scipy/ndimage/_ndimage_api.py +16 -0
  692. scipy/ndimage/_ni_docstrings.py +214 -0
  693. scipy/ndimage/_ni_label.cpython-314-x86_64-linux-musl.so +0 -0
  694. scipy/ndimage/_ni_support.py +139 -0
  695. scipy/ndimage/_rank_filter_1d.cpython-314-x86_64-linux-musl.so +0 -0
  696. scipy/ndimage/_support_alternative_backends.py +84 -0
  697. scipy/ndimage/filters.py +27 -0
  698. scipy/ndimage/fourier.py +21 -0
  699. scipy/ndimage/interpolation.py +22 -0
  700. scipy/ndimage/measurements.py +24 -0
  701. scipy/ndimage/morphology.py +27 -0
  702. scipy/ndimage/tests/__init__.py +12 -0
  703. scipy/ndimage/tests/data/label_inputs.txt +21 -0
  704. scipy/ndimage/tests/data/label_results.txt +294 -0
  705. scipy/ndimage/tests/data/label_strels.txt +42 -0
  706. scipy/ndimage/tests/dots.png +0 -0
  707. scipy/ndimage/tests/test_c_api.py +102 -0
  708. scipy/ndimage/tests/test_datatypes.py +67 -0
  709. scipy/ndimage/tests/test_filters.py +3083 -0
  710. scipy/ndimage/tests/test_fourier.py +187 -0
  711. scipy/ndimage/tests/test_interpolation.py +1491 -0
  712. scipy/ndimage/tests/test_measurements.py +1592 -0
  713. scipy/ndimage/tests/test_morphology.py +2950 -0
  714. scipy/ndimage/tests/test_ni_support.py +78 -0
  715. scipy/ndimage/tests/test_splines.py +70 -0
  716. scipy/odr/__init__.py +131 -0
  717. scipy/odr/__odrpack.cpython-314-x86_64-linux-musl.so +0 -0
  718. scipy/odr/_add_newdocs.py +34 -0
  719. scipy/odr/_models.py +315 -0
  720. scipy/odr/_odrpack.py +1154 -0
  721. scipy/odr/models.py +20 -0
  722. scipy/odr/odrpack.py +21 -0
  723. scipy/odr/tests/__init__.py +0 -0
  724. scipy/odr/tests/test_odr.py +607 -0
  725. scipy/optimize/__init__.pxd +1 -0
  726. scipy/optimize/__init__.py +460 -0
  727. scipy/optimize/_basinhopping.py +741 -0
  728. scipy/optimize/_bglu_dense.cpython-314-x86_64-linux-musl.so +0 -0
  729. scipy/optimize/_bracket.py +706 -0
  730. scipy/optimize/_chandrupatla.py +551 -0
  731. scipy/optimize/_cobyla_py.py +297 -0
  732. scipy/optimize/_cobyqa_py.py +72 -0
  733. scipy/optimize/_constraints.py +598 -0
  734. scipy/optimize/_dcsrch.py +728 -0
  735. scipy/optimize/_differentiable_functions.py +835 -0
  736. scipy/optimize/_differentialevolution.py +1970 -0
  737. scipy/optimize/_direct.cpython-314-x86_64-linux-musl.so +0 -0
  738. scipy/optimize/_direct_py.py +280 -0
  739. scipy/optimize/_dual_annealing.py +732 -0
  740. scipy/optimize/_elementwise.py +798 -0
  741. scipy/optimize/_group_columns.cpython-314-x86_64-linux-musl.so +0 -0
  742. scipy/optimize/_hessian_update_strategy.py +479 -0
  743. scipy/optimize/_highspy/__init__.py +0 -0
  744. scipy/optimize/_highspy/_core.cpython-314-x86_64-linux-musl.so +0 -0
  745. scipy/optimize/_highspy/_highs_options.cpython-314-x86_64-linux-musl.so +0 -0
  746. scipy/optimize/_highspy/_highs_wrapper.py +338 -0
  747. scipy/optimize/_isotonic.py +157 -0
  748. scipy/optimize/_lbfgsb.cpython-314-x86_64-linux-musl.so +0 -0
  749. scipy/optimize/_lbfgsb_py.py +634 -0
  750. scipy/optimize/_linesearch.py +896 -0
  751. scipy/optimize/_linprog.py +733 -0
  752. scipy/optimize/_linprog_doc.py +1434 -0
  753. scipy/optimize/_linprog_highs.py +422 -0
  754. scipy/optimize/_linprog_ip.py +1141 -0
  755. scipy/optimize/_linprog_rs.py +572 -0
  756. scipy/optimize/_linprog_simplex.py +663 -0
  757. scipy/optimize/_linprog_util.py +1521 -0
  758. scipy/optimize/_lsap.cpython-314-x86_64-linux-musl.so +0 -0
  759. scipy/optimize/_lsq/__init__.py +5 -0
  760. scipy/optimize/_lsq/bvls.py +183 -0
  761. scipy/optimize/_lsq/common.py +731 -0
  762. scipy/optimize/_lsq/dogbox.py +345 -0
  763. scipy/optimize/_lsq/givens_elimination.cpython-314-x86_64-linux-musl.so +0 -0
  764. scipy/optimize/_lsq/least_squares.py +1044 -0
  765. scipy/optimize/_lsq/lsq_linear.py +361 -0
  766. scipy/optimize/_lsq/trf.py +587 -0
  767. scipy/optimize/_lsq/trf_linear.py +249 -0
  768. scipy/optimize/_milp.py +394 -0
  769. scipy/optimize/_minimize.py +1199 -0
  770. scipy/optimize/_minpack.cpython-314-x86_64-linux-musl.so +0 -0
  771. scipy/optimize/_minpack_py.py +1178 -0
  772. scipy/optimize/_moduleTNC.cpython-314-x86_64-linux-musl.so +0 -0
  773. scipy/optimize/_nnls.py +96 -0
  774. scipy/optimize/_nonlin.py +1634 -0
  775. scipy/optimize/_numdiff.py +963 -0
  776. scipy/optimize/_optimize.py +4169 -0
  777. scipy/optimize/_pava_pybind.cpython-314-x86_64-linux-musl.so +0 -0
  778. scipy/optimize/_qap.py +760 -0
  779. scipy/optimize/_remove_redundancy.py +522 -0
  780. scipy/optimize/_root.py +732 -0
  781. scipy/optimize/_root_scalar.py +538 -0
  782. scipy/optimize/_shgo.py +1606 -0
  783. scipy/optimize/_shgo_lib/__init__.py +0 -0
  784. scipy/optimize/_shgo_lib/_complex.py +1225 -0
  785. scipy/optimize/_shgo_lib/_vertex.py +460 -0
  786. scipy/optimize/_slsqp_py.py +603 -0
  787. scipy/optimize/_slsqplib.cpython-314-x86_64-linux-musl.so +0 -0
  788. scipy/optimize/_spectral.py +260 -0
  789. scipy/optimize/_tnc.py +438 -0
  790. scipy/optimize/_trlib/__init__.py +12 -0
  791. scipy/optimize/_trlib/_trlib.cpython-314-x86_64-linux-musl.so +0 -0
  792. scipy/optimize/_trustregion.py +318 -0
  793. scipy/optimize/_trustregion_constr/__init__.py +6 -0
  794. scipy/optimize/_trustregion_constr/canonical_constraint.py +390 -0
  795. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +231 -0
  796. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +584 -0
  797. scipy/optimize/_trustregion_constr/projections.py +411 -0
  798. scipy/optimize/_trustregion_constr/qp_subproblem.py +637 -0
  799. scipy/optimize/_trustregion_constr/report.py +49 -0
  800. scipy/optimize/_trustregion_constr/tests/__init__.py +0 -0
  801. scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py +296 -0
  802. scipy/optimize/_trustregion_constr/tests/test_nested_minimize.py +39 -0
  803. scipy/optimize/_trustregion_constr/tests/test_projections.py +214 -0
  804. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +645 -0
  805. scipy/optimize/_trustregion_constr/tests/test_report.py +34 -0
  806. scipy/optimize/_trustregion_constr/tr_interior_point.py +361 -0
  807. scipy/optimize/_trustregion_dogleg.py +122 -0
  808. scipy/optimize/_trustregion_exact.py +437 -0
  809. scipy/optimize/_trustregion_krylov.py +65 -0
  810. scipy/optimize/_trustregion_ncg.py +126 -0
  811. scipy/optimize/_tstutils.py +972 -0
  812. scipy/optimize/_zeros.cpython-314-x86_64-linux-musl.so +0 -0
  813. scipy/optimize/_zeros_py.py +1475 -0
  814. scipy/optimize/cobyla.py +19 -0
  815. scipy/optimize/cython_optimize/__init__.py +133 -0
  816. scipy/optimize/cython_optimize/_zeros.cpython-314-x86_64-linux-musl.so +0 -0
  817. scipy/optimize/cython_optimize/_zeros.pxd +33 -0
  818. scipy/optimize/cython_optimize/c_zeros.pxd +26 -0
  819. scipy/optimize/cython_optimize.pxd +11 -0
  820. scipy/optimize/elementwise.py +38 -0
  821. scipy/optimize/lbfgsb.py +23 -0
  822. scipy/optimize/linesearch.py +18 -0
  823. scipy/optimize/minpack.py +27 -0
  824. scipy/optimize/minpack2.py +17 -0
  825. scipy/optimize/moduleTNC.py +19 -0
  826. scipy/optimize/nonlin.py +29 -0
  827. scipy/optimize/optimize.py +40 -0
  828. scipy/optimize/slsqp.py +22 -0
  829. scipy/optimize/tests/__init__.py +0 -0
  830. scipy/optimize/tests/_cython_examples/extending.pyx +43 -0
  831. scipy/optimize/tests/_cython_examples/meson.build +32 -0
  832. scipy/optimize/tests/test__basinhopping.py +535 -0
  833. scipy/optimize/tests/test__differential_evolution.py +1703 -0
  834. scipy/optimize/tests/test__dual_annealing.py +416 -0
  835. scipy/optimize/tests/test__linprog_clean_inputs.py +312 -0
  836. scipy/optimize/tests/test__numdiff.py +885 -0
  837. scipy/optimize/tests/test__remove_redundancy.py +228 -0
  838. scipy/optimize/tests/test__root.py +124 -0
  839. scipy/optimize/tests/test__shgo.py +1164 -0
  840. scipy/optimize/tests/test__spectral.py +226 -0
  841. scipy/optimize/tests/test_bracket.py +896 -0
  842. scipy/optimize/tests/test_chandrupatla.py +982 -0
  843. scipy/optimize/tests/test_cobyla.py +195 -0
  844. scipy/optimize/tests/test_cobyqa.py +252 -0
  845. scipy/optimize/tests/test_constraint_conversion.py +286 -0
  846. scipy/optimize/tests/test_constraints.py +255 -0
  847. scipy/optimize/tests/test_cython_optimize.py +92 -0
  848. scipy/optimize/tests/test_differentiable_functions.py +1025 -0
  849. scipy/optimize/tests/test_direct.py +321 -0
  850. scipy/optimize/tests/test_extending.py +28 -0
  851. scipy/optimize/tests/test_hessian_update_strategy.py +300 -0
  852. scipy/optimize/tests/test_isotonic_regression.py +167 -0
  853. scipy/optimize/tests/test_lbfgsb_hessinv.py +65 -0
  854. scipy/optimize/tests/test_lbfgsb_setulb.py +122 -0
  855. scipy/optimize/tests/test_least_squares.py +986 -0
  856. scipy/optimize/tests/test_linear_assignment.py +116 -0
  857. scipy/optimize/tests/test_linesearch.py +328 -0
  858. scipy/optimize/tests/test_linprog.py +2577 -0
  859. scipy/optimize/tests/test_lsq_common.py +297 -0
  860. scipy/optimize/tests/test_lsq_linear.py +287 -0
  861. scipy/optimize/tests/test_milp.py +459 -0
  862. scipy/optimize/tests/test_minimize_constrained.py +845 -0
  863. scipy/optimize/tests/test_minpack.py +1194 -0
  864. scipy/optimize/tests/test_nnls.py +469 -0
  865. scipy/optimize/tests/test_nonlin.py +572 -0
  866. scipy/optimize/tests/test_optimize.py +3335 -0
  867. scipy/optimize/tests/test_quadratic_assignment.py +455 -0
  868. scipy/optimize/tests/test_regression.py +40 -0
  869. scipy/optimize/tests/test_slsqp.py +645 -0
  870. scipy/optimize/tests/test_tnc.py +345 -0
  871. scipy/optimize/tests/test_trustregion.py +110 -0
  872. scipy/optimize/tests/test_trustregion_exact.py +351 -0
  873. scipy/optimize/tests/test_trustregion_krylov.py +170 -0
  874. scipy/optimize/tests/test_zeros.py +998 -0
  875. scipy/optimize/tnc.py +22 -0
  876. scipy/optimize/zeros.py +26 -0
  877. scipy/signal/__init__.py +316 -0
  878. scipy/signal/_arraytools.py +264 -0
  879. scipy/signal/_czt.py +575 -0
  880. scipy/signal/_delegators.py +568 -0
  881. scipy/signal/_filter_design.py +5893 -0
  882. scipy/signal/_fir_filter_design.py +1458 -0
  883. scipy/signal/_lti_conversion.py +534 -0
  884. scipy/signal/_ltisys.py +3546 -0
  885. scipy/signal/_max_len_seq.py +139 -0
  886. scipy/signal/_max_len_seq_inner.cpython-314-x86_64-linux-musl.so +0 -0
  887. scipy/signal/_peak_finding.py +1310 -0
  888. scipy/signal/_peak_finding_utils.cpython-314-x86_64-linux-musl.so +0 -0
  889. scipy/signal/_polyutils.py +172 -0
  890. scipy/signal/_savitzky_golay.py +357 -0
  891. scipy/signal/_short_time_fft.py +2187 -0
  892. scipy/signal/_signal_api.py +30 -0
  893. scipy/signal/_signaltools.py +5309 -0
  894. scipy/signal/_sigtools.cpython-314-x86_64-linux-musl.so +0 -0
  895. scipy/signal/_sosfilt.cpython-314-x86_64-linux-musl.so +0 -0
  896. scipy/signal/_spectral_py.py +2471 -0
  897. scipy/signal/_spline.cpython-314-x86_64-linux-musl.so +0 -0
  898. scipy/signal/_spline.pyi +34 -0
  899. scipy/signal/_spline_filters.py +848 -0
  900. scipy/signal/_support_alternative_backends.py +73 -0
  901. scipy/signal/_upfirdn.py +219 -0
  902. scipy/signal/_upfirdn_apply.cpython-314-x86_64-linux-musl.so +0 -0
  903. scipy/signal/_waveforms.py +687 -0
  904. scipy/signal/_wavelets.py +29 -0
  905. scipy/signal/bsplines.py +21 -0
  906. scipy/signal/filter_design.py +28 -0
  907. scipy/signal/fir_filter_design.py +21 -0
  908. scipy/signal/lti_conversion.py +20 -0
  909. scipy/signal/ltisys.py +25 -0
  910. scipy/signal/signaltools.py +27 -0
  911. scipy/signal/spectral.py +21 -0
  912. scipy/signal/spline.py +18 -0
  913. scipy/signal/tests/__init__.py +0 -0
  914. scipy/signal/tests/_scipy_spectral_test_shim.py +311 -0
  915. scipy/signal/tests/mpsig.py +122 -0
  916. scipy/signal/tests/test_array_tools.py +111 -0
  917. scipy/signal/tests/test_bsplines.py +365 -0
  918. scipy/signal/tests/test_cont2discrete.py +424 -0
  919. scipy/signal/tests/test_czt.py +221 -0
  920. scipy/signal/tests/test_dltisys.py +599 -0
  921. scipy/signal/tests/test_filter_design.py +4744 -0
  922. scipy/signal/tests/test_fir_filter_design.py +851 -0
  923. scipy/signal/tests/test_ltisys.py +1225 -0
  924. scipy/signal/tests/test_max_len_seq.py +71 -0
  925. scipy/signal/tests/test_peak_finding.py +915 -0
  926. scipy/signal/tests/test_result_type.py +51 -0
  927. scipy/signal/tests/test_savitzky_golay.py +363 -0
  928. scipy/signal/tests/test_short_time_fft.py +1098 -0
  929. scipy/signal/tests/test_signaltools.py +4729 -0
  930. scipy/signal/tests/test_spectral.py +2103 -0
  931. scipy/signal/tests/test_splines.py +427 -0
  932. scipy/signal/tests/test_upfirdn.py +322 -0
  933. scipy/signal/tests/test_waveforms.py +400 -0
  934. scipy/signal/tests/test_wavelets.py +59 -0
  935. scipy/signal/tests/test_windows.py +987 -0
  936. scipy/signal/waveforms.py +20 -0
  937. scipy/signal/wavelets.py +17 -0
  938. scipy/signal/windows/__init__.py +52 -0
  939. scipy/signal/windows/_windows.py +2513 -0
  940. scipy/signal/windows/windows.py +23 -0
  941. scipy/sparse/__init__.py +350 -0
  942. scipy/sparse/_base.py +1613 -0
  943. scipy/sparse/_bsr.py +880 -0
  944. scipy/sparse/_compressed.py +1328 -0
  945. scipy/sparse/_construct.py +1454 -0
  946. scipy/sparse/_coo.py +1581 -0
  947. scipy/sparse/_csc.py +367 -0
  948. scipy/sparse/_csparsetools.cpython-314-x86_64-linux-musl.so +0 -0
  949. scipy/sparse/_csr.py +558 -0
  950. scipy/sparse/_data.py +569 -0
  951. scipy/sparse/_dia.py +677 -0
  952. scipy/sparse/_dok.py +669 -0
  953. scipy/sparse/_extract.py +178 -0
  954. scipy/sparse/_index.py +444 -0
  955. scipy/sparse/_lil.py +632 -0
  956. scipy/sparse/_matrix.py +169 -0
  957. scipy/sparse/_matrix_io.py +167 -0
  958. scipy/sparse/_sparsetools.cpython-314-x86_64-linux-musl.so +0 -0
  959. scipy/sparse/_spfuncs.py +76 -0
  960. scipy/sparse/_sputils.py +632 -0
  961. scipy/sparse/base.py +24 -0
  962. scipy/sparse/bsr.py +22 -0
  963. scipy/sparse/compressed.py +20 -0
  964. scipy/sparse/construct.py +38 -0
  965. scipy/sparse/coo.py +23 -0
  966. scipy/sparse/csc.py +22 -0
  967. scipy/sparse/csgraph/__init__.py +210 -0
  968. scipy/sparse/csgraph/_flow.cpython-314-x86_64-linux-musl.so +0 -0
  969. scipy/sparse/csgraph/_laplacian.py +563 -0
  970. scipy/sparse/csgraph/_matching.cpython-314-x86_64-linux-musl.so +0 -0
  971. scipy/sparse/csgraph/_min_spanning_tree.cpython-314-x86_64-linux-musl.so +0 -0
  972. scipy/sparse/csgraph/_reordering.cpython-314-x86_64-linux-musl.so +0 -0
  973. scipy/sparse/csgraph/_shortest_path.cpython-314-x86_64-linux-musl.so +0 -0
  974. scipy/sparse/csgraph/_tools.cpython-314-x86_64-linux-musl.so +0 -0
  975. scipy/sparse/csgraph/_traversal.cpython-314-x86_64-linux-musl.so +0 -0
  976. scipy/sparse/csgraph/_validation.py +66 -0
  977. scipy/sparse/csgraph/tests/__init__.py +0 -0
  978. scipy/sparse/csgraph/tests/test_connected_components.py +119 -0
  979. scipy/sparse/csgraph/tests/test_conversions.py +61 -0
  980. scipy/sparse/csgraph/tests/test_flow.py +209 -0
  981. scipy/sparse/csgraph/tests/test_graph_laplacian.py +368 -0
  982. scipy/sparse/csgraph/tests/test_matching.py +307 -0
  983. scipy/sparse/csgraph/tests/test_pydata_sparse.py +197 -0
  984. scipy/sparse/csgraph/tests/test_reordering.py +70 -0
  985. scipy/sparse/csgraph/tests/test_shortest_path.py +540 -0
  986. scipy/sparse/csgraph/tests/test_spanning_tree.py +66 -0
  987. scipy/sparse/csgraph/tests/test_traversal.py +148 -0
  988. scipy/sparse/csr.py +22 -0
  989. scipy/sparse/data.py +18 -0
  990. scipy/sparse/dia.py +22 -0
  991. scipy/sparse/dok.py +22 -0
  992. scipy/sparse/extract.py +23 -0
  993. scipy/sparse/lil.py +22 -0
  994. scipy/sparse/linalg/__init__.py +148 -0
  995. scipy/sparse/linalg/_dsolve/__init__.py +71 -0
  996. scipy/sparse/linalg/_dsolve/_add_newdocs.py +147 -0
  997. scipy/sparse/linalg/_dsolve/_superlu.cpython-314-x86_64-linux-musl.so +0 -0
  998. scipy/sparse/linalg/_dsolve/linsolve.py +882 -0
  999. scipy/sparse/linalg/_dsolve/tests/__init__.py +0 -0
  1000. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +928 -0
  1001. scipy/sparse/linalg/_eigen/__init__.py +22 -0
  1002. scipy/sparse/linalg/_eigen/_svds.py +540 -0
  1003. scipy/sparse/linalg/_eigen/_svds_doc.py +382 -0
  1004. scipy/sparse/linalg/_eigen/arpack/COPYING +45 -0
  1005. scipy/sparse/linalg/_eigen/arpack/__init__.py +20 -0
  1006. scipy/sparse/linalg/_eigen/arpack/_arpack.cpython-314-x86_64-linux-musl.so +0 -0
  1007. scipy/sparse/linalg/_eigen/arpack/arpack.py +1706 -0
  1008. scipy/sparse/linalg/_eigen/arpack/tests/__init__.py +0 -0
  1009. scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py +717 -0
  1010. scipy/sparse/linalg/_eigen/lobpcg/__init__.py +16 -0
  1011. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +1110 -0
  1012. scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py +0 -0
  1013. scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py +725 -0
  1014. scipy/sparse/linalg/_eigen/tests/__init__.py +0 -0
  1015. scipy/sparse/linalg/_eigen/tests/test_svds.py +886 -0
  1016. scipy/sparse/linalg/_expm_multiply.py +816 -0
  1017. scipy/sparse/linalg/_interface.py +920 -0
  1018. scipy/sparse/linalg/_isolve/__init__.py +20 -0
  1019. scipy/sparse/linalg/_isolve/_gcrotmk.py +503 -0
  1020. scipy/sparse/linalg/_isolve/iterative.py +1051 -0
  1021. scipy/sparse/linalg/_isolve/lgmres.py +230 -0
  1022. scipy/sparse/linalg/_isolve/lsmr.py +486 -0
  1023. scipy/sparse/linalg/_isolve/lsqr.py +589 -0
  1024. scipy/sparse/linalg/_isolve/minres.py +372 -0
  1025. scipy/sparse/linalg/_isolve/tests/__init__.py +0 -0
  1026. scipy/sparse/linalg/_isolve/tests/test_gcrotmk.py +183 -0
  1027. scipy/sparse/linalg/_isolve/tests/test_iterative.py +809 -0
  1028. scipy/sparse/linalg/_isolve/tests/test_lgmres.py +225 -0
  1029. scipy/sparse/linalg/_isolve/tests/test_lsmr.py +185 -0
  1030. scipy/sparse/linalg/_isolve/tests/test_lsqr.py +120 -0
  1031. scipy/sparse/linalg/_isolve/tests/test_minres.py +97 -0
  1032. scipy/sparse/linalg/_isolve/tests/test_utils.py +9 -0
  1033. scipy/sparse/linalg/_isolve/tfqmr.py +179 -0
  1034. scipy/sparse/linalg/_isolve/utils.py +121 -0
  1035. scipy/sparse/linalg/_matfuncs.py +940 -0
  1036. scipy/sparse/linalg/_norm.py +195 -0
  1037. scipy/sparse/linalg/_onenormest.py +467 -0
  1038. scipy/sparse/linalg/_propack/_cpropack.cpython-314-x86_64-linux-musl.so +0 -0
  1039. scipy/sparse/linalg/_propack/_dpropack.cpython-314-x86_64-linux-musl.so +0 -0
  1040. scipy/sparse/linalg/_propack/_spropack.cpython-314-x86_64-linux-musl.so +0 -0
  1041. scipy/sparse/linalg/_propack/_zpropack.cpython-314-x86_64-linux-musl.so +0 -0
  1042. scipy/sparse/linalg/_special_sparse_arrays.py +949 -0
  1043. scipy/sparse/linalg/_svdp.py +309 -0
  1044. scipy/sparse/linalg/dsolve.py +22 -0
  1045. scipy/sparse/linalg/eigen.py +21 -0
  1046. scipy/sparse/linalg/interface.py +20 -0
  1047. scipy/sparse/linalg/isolve.py +22 -0
  1048. scipy/sparse/linalg/matfuncs.py +18 -0
  1049. scipy/sparse/linalg/tests/__init__.py +0 -0
  1050. scipy/sparse/linalg/tests/propack_test_data.npz +0 -0
  1051. scipy/sparse/linalg/tests/test_expm_multiply.py +367 -0
  1052. scipy/sparse/linalg/tests/test_interface.py +561 -0
  1053. scipy/sparse/linalg/tests/test_matfuncs.py +592 -0
  1054. scipy/sparse/linalg/tests/test_norm.py +154 -0
  1055. scipy/sparse/linalg/tests/test_onenormest.py +252 -0
  1056. scipy/sparse/linalg/tests/test_propack.py +165 -0
  1057. scipy/sparse/linalg/tests/test_pydata_sparse.py +272 -0
  1058. scipy/sparse/linalg/tests/test_special_sparse_arrays.py +337 -0
  1059. scipy/sparse/sparsetools.py +17 -0
  1060. scipy/sparse/spfuncs.py +17 -0
  1061. scipy/sparse/sputils.py +17 -0
  1062. scipy/sparse/tests/__init__.py +0 -0
  1063. scipy/sparse/tests/data/csc_py2.npz +0 -0
  1064. scipy/sparse/tests/data/csc_py3.npz +0 -0
  1065. scipy/sparse/tests/test_arithmetic1d.py +341 -0
  1066. scipy/sparse/tests/test_array_api.py +561 -0
  1067. scipy/sparse/tests/test_base.py +5870 -0
  1068. scipy/sparse/tests/test_common1d.py +447 -0
  1069. scipy/sparse/tests/test_construct.py +872 -0
  1070. scipy/sparse/tests/test_coo.py +1119 -0
  1071. scipy/sparse/tests/test_csc.py +98 -0
  1072. scipy/sparse/tests/test_csr.py +214 -0
  1073. scipy/sparse/tests/test_dok.py +209 -0
  1074. scipy/sparse/tests/test_extract.py +51 -0
  1075. scipy/sparse/tests/test_indexing1d.py +603 -0
  1076. scipy/sparse/tests/test_matrix_io.py +109 -0
  1077. scipy/sparse/tests/test_minmax1d.py +128 -0
  1078. scipy/sparse/tests/test_sparsetools.py +344 -0
  1079. scipy/sparse/tests/test_spfuncs.py +97 -0
  1080. scipy/sparse/tests/test_sputils.py +424 -0
  1081. scipy/spatial/__init__.py +129 -0
  1082. scipy/spatial/_ckdtree.cpython-314-x86_64-linux-musl.so +0 -0
  1083. scipy/spatial/_distance_pybind.cpython-314-x86_64-linux-musl.so +0 -0
  1084. scipy/spatial/_distance_wrap.cpython-314-x86_64-linux-musl.so +0 -0
  1085. scipy/spatial/_geometric_slerp.py +238 -0
  1086. scipy/spatial/_hausdorff.cpython-314-x86_64-linux-musl.so +0 -0
  1087. scipy/spatial/_kdtree.py +920 -0
  1088. scipy/spatial/_plotutils.py +274 -0
  1089. scipy/spatial/_procrustes.py +132 -0
  1090. scipy/spatial/_qhull.cpython-314-x86_64-linux-musl.so +0 -0
  1091. scipy/spatial/_qhull.pyi +213 -0
  1092. scipy/spatial/_spherical_voronoi.py +341 -0
  1093. scipy/spatial/_voronoi.cpython-314-x86_64-linux-musl.so +0 -0
  1094. scipy/spatial/_voronoi.pyi +4 -0
  1095. scipy/spatial/ckdtree.py +18 -0
  1096. scipy/spatial/distance.py +3147 -0
  1097. scipy/spatial/distance.pyi +210 -0
  1098. scipy/spatial/kdtree.py +25 -0
  1099. scipy/spatial/qhull.py +25 -0
  1100. scipy/spatial/tests/__init__.py +0 -0
  1101. scipy/spatial/tests/data/cdist-X1.txt +10 -0
  1102. scipy/spatial/tests/data/cdist-X2.txt +20 -0
  1103. scipy/spatial/tests/data/degenerate_pointset.npz +0 -0
  1104. scipy/spatial/tests/data/iris.txt +150 -0
  1105. scipy/spatial/tests/data/pdist-boolean-inp.txt +20 -0
  1106. scipy/spatial/tests/data/pdist-chebyshev-ml-iris.txt +1 -0
  1107. scipy/spatial/tests/data/pdist-chebyshev-ml.txt +1 -0
  1108. scipy/spatial/tests/data/pdist-cityblock-ml-iris.txt +1 -0
  1109. scipy/spatial/tests/data/pdist-cityblock-ml.txt +1 -0
  1110. scipy/spatial/tests/data/pdist-correlation-ml-iris.txt +1 -0
  1111. scipy/spatial/tests/data/pdist-correlation-ml.txt +1 -0
  1112. scipy/spatial/tests/data/pdist-cosine-ml-iris.txt +1 -0
  1113. scipy/spatial/tests/data/pdist-cosine-ml.txt +1 -0
  1114. scipy/spatial/tests/data/pdist-double-inp.txt +20 -0
  1115. scipy/spatial/tests/data/pdist-euclidean-ml-iris.txt +1 -0
  1116. scipy/spatial/tests/data/pdist-euclidean-ml.txt +1 -0
  1117. scipy/spatial/tests/data/pdist-hamming-ml.txt +1 -0
  1118. scipy/spatial/tests/data/pdist-jaccard-ml.txt +1 -0
  1119. scipy/spatial/tests/data/pdist-jensenshannon-ml-iris.txt +1 -0
  1120. scipy/spatial/tests/data/pdist-jensenshannon-ml.txt +1 -0
  1121. scipy/spatial/tests/data/pdist-minkowski-3.2-ml-iris.txt +1 -0
  1122. scipy/spatial/tests/data/pdist-minkowski-3.2-ml.txt +1 -0
  1123. scipy/spatial/tests/data/pdist-minkowski-5.8-ml-iris.txt +1 -0
  1124. scipy/spatial/tests/data/pdist-seuclidean-ml-iris.txt +1 -0
  1125. scipy/spatial/tests/data/pdist-seuclidean-ml.txt +1 -0
  1126. scipy/spatial/tests/data/pdist-spearman-ml.txt +1 -0
  1127. scipy/spatial/tests/data/random-bool-data.txt +100 -0
  1128. scipy/spatial/tests/data/random-double-data.txt +100 -0
  1129. scipy/spatial/tests/data/random-int-data.txt +100 -0
  1130. scipy/spatial/tests/data/random-uint-data.txt +100 -0
  1131. scipy/spatial/tests/data/selfdual-4d-polytope.txt +27 -0
  1132. scipy/spatial/tests/test__plotutils.py +91 -0
  1133. scipy/spatial/tests/test__procrustes.py +116 -0
  1134. scipy/spatial/tests/test_distance.py +2388 -0
  1135. scipy/spatial/tests/test_hausdorff.py +199 -0
  1136. scipy/spatial/tests/test_kdtree.py +1536 -0
  1137. scipy/spatial/tests/test_qhull.py +1313 -0
  1138. scipy/spatial/tests/test_slerp.py +417 -0
  1139. scipy/spatial/tests/test_spherical_voronoi.py +358 -0
  1140. scipy/spatial/transform/__init__.py +31 -0
  1141. scipy/spatial/transform/_rigid_transform.cpython-314-x86_64-linux-musl.so +0 -0
  1142. scipy/spatial/transform/_rotation.cpython-314-x86_64-linux-musl.so +0 -0
  1143. scipy/spatial/transform/_rotation_groups.py +140 -0
  1144. scipy/spatial/transform/_rotation_spline.py +460 -0
  1145. scipy/spatial/transform/rotation.py +21 -0
  1146. scipy/spatial/transform/tests/__init__.py +0 -0
  1147. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  1148. scipy/spatial/transform/tests/test_rotation.py +2569 -0
  1149. scipy/spatial/transform/tests/test_rotation_groups.py +169 -0
  1150. scipy/spatial/transform/tests/test_rotation_spline.py +183 -0
  1151. scipy/special/__init__.pxd +1 -0
  1152. scipy/special/__init__.py +841 -0
  1153. scipy/special/_add_newdocs.py +9961 -0
  1154. scipy/special/_basic.py +3576 -0
  1155. scipy/special/_comb.cpython-314-x86_64-linux-musl.so +0 -0
  1156. scipy/special/_ellip_harm.py +214 -0
  1157. scipy/special/_ellip_harm_2.cpython-314-x86_64-linux-musl.so +0 -0
  1158. scipy/special/_gufuncs.cpython-314-x86_64-linux-musl.so +0 -0
  1159. scipy/special/_input_validation.py +17 -0
  1160. scipy/special/_lambertw.py +149 -0
  1161. scipy/special/_logsumexp.py +426 -0
  1162. scipy/special/_mptestutils.py +453 -0
  1163. scipy/special/_multiufuncs.py +610 -0
  1164. scipy/special/_orthogonal.py +2592 -0
  1165. scipy/special/_orthogonal.pyi +330 -0
  1166. scipy/special/_precompute/__init__.py +0 -0
  1167. scipy/special/_precompute/cosine_cdf.py +17 -0
  1168. scipy/special/_precompute/expn_asy.py +54 -0
  1169. scipy/special/_precompute/gammainc_asy.py +116 -0
  1170. scipy/special/_precompute/gammainc_data.py +124 -0
  1171. scipy/special/_precompute/hyp2f1_data.py +484 -0
  1172. scipy/special/_precompute/lambertw.py +68 -0
  1173. scipy/special/_precompute/loggamma.py +43 -0
  1174. scipy/special/_precompute/struve_convergence.py +131 -0
  1175. scipy/special/_precompute/utils.py +38 -0
  1176. scipy/special/_precompute/wright_bessel.py +342 -0
  1177. scipy/special/_precompute/wright_bessel_data.py +152 -0
  1178. scipy/special/_precompute/wrightomega.py +41 -0
  1179. scipy/special/_precompute/zetac.py +27 -0
  1180. scipy/special/_sf_error.py +15 -0
  1181. scipy/special/_specfun.cpython-314-x86_64-linux-musl.so +0 -0
  1182. scipy/special/_special_ufuncs.cpython-314-x86_64-linux-musl.so +0 -0
  1183. scipy/special/_spfun_stats.py +106 -0
  1184. scipy/special/_spherical_bessel.py +397 -0
  1185. scipy/special/_support_alternative_backends.py +295 -0
  1186. scipy/special/_test_internal.cpython-314-x86_64-linux-musl.so +0 -0
  1187. scipy/special/_test_internal.pyi +9 -0
  1188. scipy/special/_testutils.py +321 -0
  1189. scipy/special/_ufuncs.cpython-314-x86_64-linux-musl.so +0 -0
  1190. scipy/special/_ufuncs.pyi +522 -0
  1191. scipy/special/_ufuncs.pyx +13173 -0
  1192. scipy/special/_ufuncs_cxx.cpython-314-x86_64-linux-musl.so +0 -0
  1193. scipy/special/_ufuncs_cxx.pxd +142 -0
  1194. scipy/special/_ufuncs_cxx.pyx +427 -0
  1195. scipy/special/_ufuncs_cxx_defs.h +147 -0
  1196. scipy/special/_ufuncs_defs.h +57 -0
  1197. scipy/special/add_newdocs.py +15 -0
  1198. scipy/special/basic.py +87 -0
  1199. scipy/special/cython_special.cpython-314-x86_64-linux-musl.so +0 -0
  1200. scipy/special/cython_special.pxd +259 -0
  1201. scipy/special/cython_special.pyi +3 -0
  1202. scipy/special/orthogonal.py +45 -0
  1203. scipy/special/sf_error.py +20 -0
  1204. scipy/special/specfun.py +24 -0
  1205. scipy/special/spfun_stats.py +17 -0
  1206. scipy/special/tests/__init__.py +0 -0
  1207. scipy/special/tests/_cython_examples/extending.pyx +12 -0
  1208. scipy/special/tests/_cython_examples/meson.build +34 -0
  1209. scipy/special/tests/data/__init__.py +0 -0
  1210. scipy/special/tests/data/boost.npz +0 -0
  1211. scipy/special/tests/data/gsl.npz +0 -0
  1212. scipy/special/tests/data/local.npz +0 -0
  1213. scipy/special/tests/test_basic.py +4815 -0
  1214. scipy/special/tests/test_bdtr.py +112 -0
  1215. scipy/special/tests/test_boost_ufuncs.py +64 -0
  1216. scipy/special/tests/test_boxcox.py +125 -0
  1217. scipy/special/tests/test_cdflib.py +712 -0
  1218. scipy/special/tests/test_cdft_asymptotic.py +49 -0
  1219. scipy/special/tests/test_cephes_intp_cast.py +29 -0
  1220. scipy/special/tests/test_cosine_distr.py +83 -0
  1221. scipy/special/tests/test_cython_special.py +363 -0
  1222. scipy/special/tests/test_data.py +719 -0
  1223. scipy/special/tests/test_dd.py +42 -0
  1224. scipy/special/tests/test_digamma.py +45 -0
  1225. scipy/special/tests/test_ellip_harm.py +278 -0
  1226. scipy/special/tests/test_erfinv.py +89 -0
  1227. scipy/special/tests/test_exponential_integrals.py +118 -0
  1228. scipy/special/tests/test_extending.py +28 -0
  1229. scipy/special/tests/test_faddeeva.py +85 -0
  1230. scipy/special/tests/test_gamma.py +12 -0
  1231. scipy/special/tests/test_gammainc.py +152 -0
  1232. scipy/special/tests/test_hyp2f1.py +2566 -0
  1233. scipy/special/tests/test_hypergeometric.py +234 -0
  1234. scipy/special/tests/test_iv_ratio.py +249 -0
  1235. scipy/special/tests/test_kolmogorov.py +491 -0
  1236. scipy/special/tests/test_lambertw.py +109 -0
  1237. scipy/special/tests/test_legendre.py +1518 -0
  1238. scipy/special/tests/test_log1mexp.py +85 -0
  1239. scipy/special/tests/test_loggamma.py +70 -0
  1240. scipy/special/tests/test_logit.py +162 -0
  1241. scipy/special/tests/test_logsumexp.py +469 -0
  1242. scipy/special/tests/test_mpmath.py +2293 -0
  1243. scipy/special/tests/test_nan_inputs.py +65 -0
  1244. scipy/special/tests/test_ndtr.py +77 -0
  1245. scipy/special/tests/test_ndtri_exp.py +94 -0
  1246. scipy/special/tests/test_orthogonal.py +821 -0
  1247. scipy/special/tests/test_orthogonal_eval.py +275 -0
  1248. scipy/special/tests/test_owens_t.py +53 -0
  1249. scipy/special/tests/test_pcf.py +24 -0
  1250. scipy/special/tests/test_pdtr.py +48 -0
  1251. scipy/special/tests/test_powm1.py +65 -0
  1252. scipy/special/tests/test_precompute_expn_asy.py +24 -0
  1253. scipy/special/tests/test_precompute_gammainc.py +108 -0
  1254. scipy/special/tests/test_precompute_utils.py +36 -0
  1255. scipy/special/tests/test_round.py +18 -0
  1256. scipy/special/tests/test_sf_error.py +146 -0
  1257. scipy/special/tests/test_sici.py +36 -0
  1258. scipy/special/tests/test_specfun.py +48 -0
  1259. scipy/special/tests/test_spence.py +32 -0
  1260. scipy/special/tests/test_spfun_stats.py +61 -0
  1261. scipy/special/tests/test_sph_harm.py +85 -0
  1262. scipy/special/tests/test_spherical_bessel.py +400 -0
  1263. scipy/special/tests/test_support_alternative_backends.py +248 -0
  1264. scipy/special/tests/test_trig.py +72 -0
  1265. scipy/special/tests/test_ufunc_signatures.py +46 -0
  1266. scipy/special/tests/test_wright_bessel.py +205 -0
  1267. scipy/special/tests/test_wrightomega.py +117 -0
  1268. scipy/special/tests/test_zeta.py +301 -0
  1269. scipy/stats/__init__.py +670 -0
  1270. scipy/stats/_ansari_swilk_statistics.cpython-314-x86_64-linux-musl.so +0 -0
  1271. scipy/stats/_axis_nan_policy.py +692 -0
  1272. scipy/stats/_biasedurn.cpython-314-x86_64-linux-musl.so +0 -0
  1273. scipy/stats/_biasedurn.pxd +27 -0
  1274. scipy/stats/_binned_statistic.py +795 -0
  1275. scipy/stats/_binomtest.py +375 -0
  1276. scipy/stats/_bws_test.py +177 -0
  1277. scipy/stats/_censored_data.py +459 -0
  1278. scipy/stats/_common.py +5 -0
  1279. scipy/stats/_constants.py +42 -0
  1280. scipy/stats/_continued_fraction.py +387 -0
  1281. scipy/stats/_continuous_distns.py +12486 -0
  1282. scipy/stats/_correlation.py +210 -0
  1283. scipy/stats/_covariance.py +636 -0
  1284. scipy/stats/_crosstab.py +204 -0
  1285. scipy/stats/_discrete_distns.py +2098 -0
  1286. scipy/stats/_distn_infrastructure.py +4201 -0
  1287. scipy/stats/_distr_params.py +299 -0
  1288. scipy/stats/_distribution_infrastructure.py +5750 -0
  1289. scipy/stats/_entropy.py +428 -0
  1290. scipy/stats/_finite_differences.py +145 -0
  1291. scipy/stats/_fit.py +1351 -0
  1292. scipy/stats/_hypotests.py +2060 -0
  1293. scipy/stats/_kde.py +732 -0
  1294. scipy/stats/_ksstats.py +600 -0
  1295. scipy/stats/_levy_stable/__init__.py +1231 -0
  1296. scipy/stats/_levy_stable/levyst.cpython-314-x86_64-linux-musl.so +0 -0
  1297. scipy/stats/_mannwhitneyu.py +492 -0
  1298. scipy/stats/_mgc.py +550 -0
  1299. scipy/stats/_morestats.py +4626 -0
  1300. scipy/stats/_mstats_basic.py +3658 -0
  1301. scipy/stats/_mstats_extras.py +521 -0
  1302. scipy/stats/_multicomp.py +449 -0
  1303. scipy/stats/_multivariate.py +7281 -0
  1304. scipy/stats/_new_distributions.py +452 -0
  1305. scipy/stats/_odds_ratio.py +466 -0
  1306. scipy/stats/_page_trend_test.py +486 -0
  1307. scipy/stats/_probability_distribution.py +1964 -0
  1308. scipy/stats/_qmc.py +2956 -0
  1309. scipy/stats/_qmc_cy.cpython-314-x86_64-linux-musl.so +0 -0
  1310. scipy/stats/_qmc_cy.pyi +54 -0
  1311. scipy/stats/_qmvnt.py +454 -0
  1312. scipy/stats/_qmvnt_cy.cpython-314-x86_64-linux-musl.so +0 -0
  1313. scipy/stats/_quantile.py +335 -0
  1314. scipy/stats/_rcont/__init__.py +4 -0
  1315. scipy/stats/_rcont/rcont.cpython-314-x86_64-linux-musl.so +0 -0
  1316. scipy/stats/_relative_risk.py +263 -0
  1317. scipy/stats/_resampling.py +2352 -0
  1318. scipy/stats/_result_classes.py +40 -0
  1319. scipy/stats/_sampling.py +1314 -0
  1320. scipy/stats/_sensitivity_analysis.py +713 -0
  1321. scipy/stats/_sobol.cpython-314-x86_64-linux-musl.so +0 -0
  1322. scipy/stats/_sobol.pyi +54 -0
  1323. scipy/stats/_sobol_direction_numbers.npz +0 -0
  1324. scipy/stats/_stats.cpython-314-x86_64-linux-musl.so +0 -0
  1325. scipy/stats/_stats.pxd +10 -0
  1326. scipy/stats/_stats_mstats_common.py +322 -0
  1327. scipy/stats/_stats_py.py +11089 -0
  1328. scipy/stats/_stats_pythran.cpython-314-x86_64-linux-musl.so +0 -0
  1329. scipy/stats/_survival.py +683 -0
  1330. scipy/stats/_tukeylambda_stats.py +199 -0
  1331. scipy/stats/_unuran/__init__.py +0 -0
  1332. scipy/stats/_unuran/unuran_wrapper.cpython-314-x86_64-linux-musl.so +0 -0
  1333. scipy/stats/_unuran/unuran_wrapper.pyi +179 -0
  1334. scipy/stats/_variation.py +126 -0
  1335. scipy/stats/_warnings_errors.py +38 -0
  1336. scipy/stats/_wilcoxon.py +265 -0
  1337. scipy/stats/biasedurn.py +16 -0
  1338. scipy/stats/contingency.py +521 -0
  1339. scipy/stats/distributions.py +24 -0
  1340. scipy/stats/kde.py +18 -0
  1341. scipy/stats/morestats.py +27 -0
  1342. scipy/stats/mstats.py +140 -0
  1343. scipy/stats/mstats_basic.py +42 -0
  1344. scipy/stats/mstats_extras.py +25 -0
  1345. scipy/stats/mvn.py +17 -0
  1346. scipy/stats/qmc.py +236 -0
  1347. scipy/stats/sampling.py +73 -0
  1348. scipy/stats/stats.py +41 -0
  1349. scipy/stats/tests/__init__.py +0 -0
  1350. scipy/stats/tests/common_tests.py +356 -0
  1351. scipy/stats/tests/data/_mvt.py +171 -0
  1352. scipy/stats/tests/data/fisher_exact_results_from_r.py +607 -0
  1353. scipy/stats/tests/data/jf_skew_t_gamlss_pdf_data.npy +0 -0
  1354. scipy/stats/tests/data/levy_stable/stable-Z1-cdf-sample-data.npy +0 -0
  1355. scipy/stats/tests/data/levy_stable/stable-Z1-pdf-sample-data.npy +0 -0
  1356. scipy/stats/tests/data/levy_stable/stable-loc-scale-sample-data.npy +0 -0
  1357. scipy/stats/tests/data/nist_anova/AtmWtAg.dat +108 -0
  1358. scipy/stats/tests/data/nist_anova/SiRstv.dat +85 -0
  1359. scipy/stats/tests/data/nist_anova/SmLs01.dat +249 -0
  1360. scipy/stats/tests/data/nist_anova/SmLs02.dat +1869 -0
  1361. scipy/stats/tests/data/nist_anova/SmLs03.dat +18069 -0
  1362. scipy/stats/tests/data/nist_anova/SmLs04.dat +249 -0
  1363. scipy/stats/tests/data/nist_anova/SmLs05.dat +1869 -0
  1364. scipy/stats/tests/data/nist_anova/SmLs06.dat +18069 -0
  1365. scipy/stats/tests/data/nist_anova/SmLs07.dat +249 -0
  1366. scipy/stats/tests/data/nist_anova/SmLs08.dat +1869 -0
  1367. scipy/stats/tests/data/nist_anova/SmLs09.dat +18069 -0
  1368. scipy/stats/tests/data/nist_linregress/Norris.dat +97 -0
  1369. scipy/stats/tests/data/rel_breitwigner_pdf_sample_data_ROOT.npy +0 -0
  1370. scipy/stats/tests/data/studentized_range_mpmath_ref.json +1499 -0
  1371. scipy/stats/tests/test_axis_nan_policy.py +1388 -0
  1372. scipy/stats/tests/test_binned_statistic.py +568 -0
  1373. scipy/stats/tests/test_censored_data.py +152 -0
  1374. scipy/stats/tests/test_contingency.py +294 -0
  1375. scipy/stats/tests/test_continued_fraction.py +173 -0
  1376. scipy/stats/tests/test_continuous.py +2198 -0
  1377. scipy/stats/tests/test_continuous_basic.py +1053 -0
  1378. scipy/stats/tests/test_continuous_fit_censored.py +683 -0
  1379. scipy/stats/tests/test_correlation.py +80 -0
  1380. scipy/stats/tests/test_crosstab.py +115 -0
  1381. scipy/stats/tests/test_discrete_basic.py +580 -0
  1382. scipy/stats/tests/test_discrete_distns.py +700 -0
  1383. scipy/stats/tests/test_distributions.py +10413 -0
  1384. scipy/stats/tests/test_entropy.py +322 -0
  1385. scipy/stats/tests/test_fast_gen_inversion.py +435 -0
  1386. scipy/stats/tests/test_fit.py +1090 -0
  1387. scipy/stats/tests/test_hypotests.py +1991 -0
  1388. scipy/stats/tests/test_kdeoth.py +676 -0
  1389. scipy/stats/tests/test_marray.py +289 -0
  1390. scipy/stats/tests/test_mgc.py +217 -0
  1391. scipy/stats/tests/test_morestats.py +3259 -0
  1392. scipy/stats/tests/test_mstats_basic.py +2071 -0
  1393. scipy/stats/tests/test_mstats_extras.py +172 -0
  1394. scipy/stats/tests/test_multicomp.py +405 -0
  1395. scipy/stats/tests/test_multivariate.py +4381 -0
  1396. scipy/stats/tests/test_odds_ratio.py +148 -0
  1397. scipy/stats/tests/test_qmc.py +1492 -0
  1398. scipy/stats/tests/test_quantile.py +199 -0
  1399. scipy/stats/tests/test_rank.py +345 -0
  1400. scipy/stats/tests/test_relative_risk.py +95 -0
  1401. scipy/stats/tests/test_resampling.py +2000 -0
  1402. scipy/stats/tests/test_sampling.py +1450 -0
  1403. scipy/stats/tests/test_sensitivity_analysis.py +310 -0
  1404. scipy/stats/tests/test_stats.py +9707 -0
  1405. scipy/stats/tests/test_survival.py +466 -0
  1406. scipy/stats/tests/test_tukeylambda_stats.py +85 -0
  1407. scipy/stats/tests/test_variation.py +216 -0
  1408. scipy/version.py +12 -0
  1409. scipy-1.16.1.dist-info/LICENSE.txt +934 -0
  1410. scipy-1.16.1.dist-info/METADATA +1083 -0
  1411. scipy-1.16.1.dist-info/RECORD +1420 -0
  1412. scipy-1.16.1.dist-info/WHEEL +5 -0
  1413. scipy.libs/libgcc_s-0cd532bd.so.1 +0 -0
  1414. scipy.libs/libgcc_s-a3a07607-e69b4851.so.1 +0 -0
  1415. scipy.libs/libgfortran-2c33b284.so.5.0.0 +0 -0
  1416. scipy.libs/libgfortran-e686bd2c-8cec572a.so.5.0.0 +0 -0
  1417. scipy.libs/libquadmath-9b5eedf9-101a4297.so.0.0.0 +0 -0
  1418. scipy.libs/libquadmath-bb76a5fc.so.0.0.0 +0 -0
  1419. scipy.libs/libscipy_openblas-e00df7a9.so +0 -0
  1420. scipy.libs/libstdc++-5d72f927.so.6.0.33 +0 -0
@@ -0,0 +1,335 @@
1
+ import numpy as np
2
+ from scipy.special import betainc
3
+ from scipy._lib._array_api import xp_ravel, array_namespace, xp_promote
4
+ import scipy._lib.array_api_extra as xpx
5
+ from scipy.stats._axis_nan_policy import _broadcast_arrays, _contains_nan
6
+ from scipy.stats._stats_py import _length_nonmasked
7
+
8
+
9
+ def _quantile_iv(x, p, method, axis, nan_policy, keepdims):
10
+ xp = array_namespace(x, p)
11
+
12
+ if not xp.isdtype(xp.asarray(x).dtype, ('integral', 'real floating')):
13
+ raise ValueError("`x` must have real dtype.")
14
+
15
+ if not xp.isdtype(xp.asarray(p).dtype, 'real floating'):
16
+ raise ValueError("`p` must have real floating dtype.")
17
+
18
+ x, p = xp_promote(x, p, force_floating=True, xp=xp)
19
+ dtype = x.dtype
20
+
21
+ axis_none = axis is None
22
+ ndim = max(x.ndim, p.ndim)
23
+ if axis_none:
24
+ x = xp_ravel(x)
25
+ p = xp_ravel(p)
26
+ axis = 0
27
+ elif np.iterable(axis) or int(axis) != axis:
28
+ message = "`axis` must be an integer or None."
29
+ raise ValueError(message)
30
+ elif (axis >= ndim) or (axis < -ndim):
31
+ message = "`axis` is not compatible with the shapes of the inputs."
32
+ raise ValueError(message)
33
+ axis = int(axis)
34
+
35
+ methods = {'inverted_cdf', 'averaged_inverted_cdf', 'closest_observation',
36
+ 'hazen', 'interpolated_inverted_cdf', 'linear',
37
+ 'median_unbiased', 'normal_unbiased', 'weibull',
38
+ 'harrell-davis'}
39
+ if method not in methods:
40
+ message = f"`method` must be one of {methods}"
41
+ raise ValueError(message)
42
+
43
+ contains_nans = _contains_nan(x, nan_policy, xp_omit_okay=True, xp=xp)
44
+
45
+ if keepdims not in {None, True, False}:
46
+ message = "If specified, `keepdims` must be True or False."
47
+ raise ValueError(message)
48
+
49
+ # If data has length zero along `axis`, the result will be an array of NaNs just
50
+ # as if the data had length 1 along axis and were filled with NaNs. This is treated
51
+ # naturally below whether `nan_policy` is `'propagate'` or `'omit'`.
52
+ if x.shape[axis] == 0:
53
+ shape = list(x.shape)
54
+ shape[axis] = 1
55
+ x = xp.full(shape, xp.asarray(xp.nan, dtype=dtype))
56
+
57
+ y = xp.sort(x, axis=axis)
58
+ y, p = _broadcast_arrays((y, p), axis=axis)
59
+
60
+ if (keepdims is False) and (p.shape[axis] != 1):
61
+ message = "`keepdims` may be False only if the length of `p` along `axis` is 1."
62
+ raise ValueError(message)
63
+ keepdims = (p.shape[axis] != 1) if keepdims is None else keepdims
64
+
65
+ y = xp.moveaxis(y, axis, -1)
66
+ p = xp.moveaxis(p, axis, -1)
67
+
68
+ n = _length_nonmasked(y, -1, xp=xp, keepdims=True)
69
+ n = xp.asarray(n, dtype=dtype)
70
+ if contains_nans:
71
+ nans = xp.isnan(y)
72
+
73
+ # Note that if length along `axis` were 0 to begin with,
74
+ # it is now length 1 and filled with NaNs.
75
+ if nan_policy == 'propagate':
76
+ nan_out = xp.any(nans, axis=-1)
77
+ else: # 'omit'
78
+ non_nan = xp.astype(~nans, xp.uint64)
79
+ n_int = xp.sum(non_nan, axis=-1, keepdims=True)
80
+ n = xp.astype(n_int, dtype)
81
+ # NaNs are produced only if slice is empty after removing NaNs
82
+ nan_out = xp.any(n == 0, axis=-1)
83
+ n = xpx.at(n, nan_out).set(y.shape[-1]) # avoids pytorch/pytorch#146211
84
+
85
+ if xp.any(nan_out):
86
+ y = xp.asarray(y, copy=True) # ensure writable
87
+ y = xpx.at(y, nan_out).set(xp.nan)
88
+ elif xp.any(nans) and method == 'harrell-davis':
89
+ y = xp.asarray(y, copy=True) # ensure writable
90
+ y = xpx.at(y, nans).set(0) # any non-nan will prevent NaN from propagating
91
+
92
+ p_mask = (p > 1) | (p < 0) | xp.isnan(p)
93
+ if xp.any(p_mask):
94
+ p = xp.asarray(p, copy=True)
95
+ p = xpx.at(p, p_mask).set(0.5) # these get NaN-ed out at the end
96
+
97
+ return y, p, method, axis, nan_policy, keepdims, n, axis_none, ndim, p_mask, xp
98
+
99
+
100
+ def quantile(x, p, *, method='linear', axis=0, nan_policy='propagate', keepdims=None):
101
+ """
102
+ Compute the p-th quantile of the data along the specified axis.
103
+
104
+ Parameters
105
+ ----------
106
+ x : array_like of real numbers
107
+ Data array.
108
+ p : array_like of float
109
+ Probability or sequence of probabilities of the quantiles to compute.
110
+ Values must be between 0 and 1 (inclusive).
111
+ Must have length 1 along `axis` unless ``keepdims=True``.
112
+ method : str, default: 'linear'
113
+ The method to use for estimating the quantile.
114
+ The available options, numbered as they appear in [1]_, are:
115
+
116
+ 1. 'inverted_cdf'
117
+ 2. 'averaged_inverted_cdf'
118
+ 3. 'closest_observation'
119
+ 4. 'interpolated_inverted_cdf'
120
+ 5. 'hazen'
121
+ 6. 'weibull'
122
+ 7. 'linear' (default)
123
+ 8. 'median_unbiased'
124
+ 9. 'normal_unbiased'
125
+
126
+ 'harrell-davis' is also available to compute the quantile estimate
127
+ according to [2]_.
128
+ See Notes for details.
129
+ axis : int or None, default: 0
130
+ Axis along which the quantiles are computed.
131
+ ``None`` ravels both `x` and `p` before performing the calculation,
132
+ without checking whether the original shapes were compatible.
133
+ nan_policy : str, default: 'propagate'
134
+ Defines how to handle NaNs in the input data `x`.
135
+
136
+ - ``propagate``: if a NaN is present in the axis slice (e.g. row) along
137
+ which the statistic is computed, the corresponding slice of the output
138
+ will contain NaN(s).
139
+ - ``omit``: NaNs will be omitted when performing the calculation.
140
+ If insufficient data remains in the axis slice along which the
141
+ statistic is computed, the corresponding slice of the output will
142
+ contain NaN(s).
143
+ - ``raise``: if a NaN is present, a ``ValueError`` will be raised.
144
+
145
+ If NaNs are present in `p`, a ``ValueError`` will be raised.
146
+ keepdims : bool, optional
147
+ Consider the case in which `x` is 1-D and `p` is a scalar: the quantile
148
+ is a reducing statistic, and the default behavior is to return a scalar.
149
+ If `keepdims` is set to True, the axis will not be reduced away, and the
150
+ result will be a 1-D array with one element.
151
+
152
+ The general case is more subtle, since multiple quantiles may be
153
+ requested for each axis-slice of `x`. For instance, if both `x` and `p`
154
+ are 1-D and ``p.size > 1``, no axis can be reduced away; there must be an
155
+ axis to contain the number of quantiles given by ``p.size``. Therefore:
156
+
157
+ - By default, the axis will be reduced away if possible (i.e. if there is
158
+ exactly one element of `q` per axis-slice of `x`).
159
+ - If `keepdims` is set to True, the axis will not be reduced away.
160
+ - If `keepdims` is set to False, the axis will be reduced away
161
+ if possible, and an error will be raised otherwise.
162
+
163
+ Returns
164
+ -------
165
+ quantile : scalar or ndarray
166
+ The resulting quantile(s). The dtype is the result dtype of `x` and `p`.
167
+
168
+ Notes
169
+ -----
170
+ Given a sample `x` from an underlying distribution, `quantile` provides a
171
+ nonparametric estimate of the inverse cumulative distribution function.
172
+
173
+ By default, this is done by interpolating between adjacent elements in
174
+ ``y``, a sorted copy of `x`::
175
+
176
+ (1-g)*y[j] + g*y[j+1]
177
+
178
+ where the index ``j`` and coefficient ``g`` are the integral and
179
+ fractional components of ``p * (n-1)``, and ``n`` is the number of
180
+ elements in the sample.
181
+
182
+ This is a special case of Equation 1 of H&F [1]_. More generally,
183
+
184
+ - ``j = (p*n + m - 1) // 1``, and
185
+ - ``g = (p*n + m - 1) % 1``,
186
+
187
+ where ``m`` may be defined according to several different conventions.
188
+ The preferred convention may be selected using the ``method`` parameter:
189
+
190
+ =============================== =============== ===============
191
+ ``method`` number in H&F ``m``
192
+ =============================== =============== ===============
193
+ ``interpolated_inverted_cdf`` 4 ``0``
194
+ ``hazen`` 5 ``1/2``
195
+ ``weibull`` 6 ``p``
196
+ ``linear`` (default) 7 ``1 - p``
197
+ ``median_unbiased`` 8 ``p/3 + 1/3``
198
+ ``normal_unbiased`` 9 ``p/4 + 3/8``
199
+ =============================== =============== ===============
200
+
201
+ Note that indices ``j`` and ``j + 1`` are clipped to the range ``0`` to
202
+ ``n - 1`` when the results of the formula would be outside the allowed
203
+ range of non-negative indices. When ``j`` is clipped to zero, ``g`` is
204
+ set to zero as well. The ``-1`` in the formulas for ``j`` and ``g``
205
+ accounts for Python's 0-based indexing.
206
+
207
+ The table above includes only the estimators from [1]_ that are continuous
208
+ functions of probability `p` (estimators 4-9). SciPy also provides the
209
+ three discontinuous estimators from [1]_ (estimators 1-3), where ``j`` is
210
+ defined as above, ``m`` is defined as follows, and ``g`` is ``0`` when
211
+ ``index = p*n + m - 1`` is less than ``0`` and otherwise is defined below.
212
+
213
+ 1. ``inverted_cdf``: ``m = 0`` and ``g = int(index - j > 0)``
214
+ 2. ``averaged_inverted_cdf``: ``m = 0`` and
215
+ ``g = (1 + int(index - j > 0)) / 2``
216
+ 3. ``closest_observation``: ``m = -1/2`` and
217
+ ``g = 1 - int((index == j) & (j%2 == 1))``
218
+
219
+ A different strategy for computing quantiles from [2]_, ``method='harrell-davis'``,
220
+ uses a weighted combination of all elements. The weights are computed as:
221
+
222
+ .. math::
223
+
224
+ w_{n, i} = I_{i/n}(a, b) - I_{(i - 1)/n}(a, b)
225
+
226
+ where :math:`n` is the number of elements in the sample,
227
+ :math:`i` are the indices :math:`1, 2, ..., n-1, n` of the sorted elements,
228
+ :math:`a = p (n + 1)`, :math:`b = (1 - p)(n + 1)`,
229
+ :math:`p` is the probability of the quantile, and
230
+ :math:`I` is the regularized, lower incomplete beta function
231
+ (`scipy.special.betainc`).
232
+
233
+ Examples
234
+ --------
235
+ >>> import numpy as np
236
+ >>> from scipy import stats
237
+ >>> x = np.asarray([[10, 8, 7, 5, 4],
238
+ ... [0, 1, 2, 3, 5]])
239
+
240
+ Take the median along the last axis.
241
+
242
+ >>> stats.quantile(x, 0.5, axis=-1)
243
+ array([7., 2.])
244
+
245
+ Take a different quantile along each axis.
246
+
247
+ >>> stats.quantile(x, [[0.25], [0.75]], axis=-1, keepdims=True)
248
+ array([[5.],
249
+ [3.]])
250
+
251
+ Take multiple quantiles along each axis.
252
+
253
+ >>> stats.quantile(x, [0.25, 0.75], axis=-1)
254
+ array([[5., 8.],
255
+ [1., 3.]])
256
+
257
+ References
258
+ ----------
259
+ .. [1] R. J. Hyndman and Y. Fan,
260
+ "Sample quantiles in statistical packages,"
261
+ The American Statistician, 50(4), pp. 361-365, 1996
262
+ .. [2] Harrell, Frank E., and C. E. Davis.
263
+ "A new distribution-free quantile estimator."
264
+ Biometrika 69.3 (1982): 635-640.
265
+
266
+ """
267
+ # Input validation / standardization
268
+
269
+ temp = _quantile_iv(x, p, method, axis, nan_policy, keepdims)
270
+ y, p, method, axis, nan_policy, keepdims, n, axis_none, ndim, p_mask, xp = temp
271
+
272
+ if method in {'inverted_cdf', 'averaged_inverted_cdf', 'closest_observation',
273
+ 'hazen', 'interpolated_inverted_cdf', 'linear',
274
+ 'median_unbiased', 'normal_unbiased', 'weibull'}:
275
+ res = _quantile_hf(y, p, n, method, xp)
276
+ elif method in {'harrell-davis'}:
277
+ res = _quantile_hd(y, p, n, xp)
278
+
279
+ res = xpx.at(res, p_mask).set(xp.nan)
280
+
281
+ # Reshape per axis/keepdims
282
+ if axis_none and keepdims:
283
+ shape = (1,)*(ndim - 1) + res.shape
284
+ res = xp.reshape(res, shape)
285
+ axis = -1
286
+
287
+ res = xp.moveaxis(res, -1, axis)
288
+
289
+ if not keepdims:
290
+ res = xp.squeeze(res, axis=axis)
291
+
292
+ return res[()] if res.ndim == 0 else res
293
+
294
+
295
+ def _quantile_hf(y, p, n, method, xp):
296
+ ms = dict(inverted_cdf=0, averaged_inverted_cdf=0, closest_observation=-0.5,
297
+ interpolated_inverted_cdf=0, hazen=0.5, weibull=p, linear=1 - p,
298
+ median_unbiased=p/3 + 1/3, normal_unbiased=p/4 + 3/8)
299
+ m = ms[method]
300
+ jg = p*n + m - 1
301
+ j = jg // 1
302
+ g = jg % 1
303
+ if method == 'inverted_cdf':
304
+ g = xp.astype((g > 0), jg.dtype)
305
+ elif method == 'averaged_inverted_cdf':
306
+ g = (1 + xp.astype((g > 0), jg.dtype)) / 2
307
+ elif method == 'closest_observation':
308
+ g = (1 - xp.astype((g == 0) & (j % 2 == 1), jg.dtype))
309
+ if method in {'inverted_cdf', 'averaged_inverted_cdf', 'closest_observation'}:
310
+ g = xp.asarray(g)
311
+ g = xpx.at(g, jg < 0).set(0)
312
+
313
+ g[j < 0] = 0
314
+ j = xp.clip(j, 0., n - 1)
315
+ jp1 = xp.clip(j + 1, 0., n - 1)
316
+
317
+ return ((1 - g) * xp.take_along_axis(y, xp.astype(j, xp.int64), axis=-1)
318
+ + g * xp.take_along_axis(y, xp.astype(jp1, xp.int64), axis=-1))
319
+
320
+
321
+ def _quantile_hd(y, p, n, xp):
322
+ # RE axis handling: We need to perform a reducing operation over rows of `y` for
323
+ # each element in the corresponding row of `p` (a la Cartesian product). Strategy:
324
+ # move rows of `p` to an axis at the front that is orthogonal to all the rest,
325
+ # perform the reducing operating over the last axis, then move the front axis back
326
+ # to the end.
327
+ p = xp.moveaxis(p, -1, 0)[..., xp.newaxis]
328
+ a = p * (n + 1)
329
+ b = (1 - p) * (n + 1)
330
+ i = xp.arange(y.shape[-1] + 1, dtype=y.dtype)
331
+ w = betainc(a, b, i / n)
332
+ w = w[..., 1:] - w[..., :-1]
333
+ w = xpx.at(w, xp.isnan(w)).set(0)
334
+ res = xp.vecdot(w, y, axis=-1)
335
+ return xp.moveaxis(res, 0, -1)
@@ -0,0 +1,4 @@
1
+ #
2
+ from .rcont import rvs_rcont1, rvs_rcont2
3
+
4
+ __all__ = ["rvs_rcont1", "rvs_rcont2"]
@@ -0,0 +1,263 @@
1
+ import operator
2
+ from dataclasses import dataclass
3
+ import numpy as np
4
+ from scipy.special import ndtri
5
+ from ._common import ConfidenceInterval
6
+
7
+
8
+ def _validate_int(n, bound, name):
9
+ msg = f'{name} must be an integer not less than {bound}, but got {n!r}'
10
+ try:
11
+ n = operator.index(n)
12
+ except TypeError:
13
+ raise TypeError(msg) from None
14
+ if n < bound:
15
+ raise ValueError(msg)
16
+ return n
17
+
18
+
19
+ @dataclass
20
+ class RelativeRiskResult:
21
+ """
22
+ Result of `scipy.stats.contingency.relative_risk`.
23
+
24
+ Attributes
25
+ ----------
26
+ relative_risk : float
27
+ This is::
28
+
29
+ (exposed_cases/exposed_total) / (control_cases/control_total)
30
+
31
+ exposed_cases : int
32
+ The number of "cases" (i.e. occurrence of disease or other event
33
+ of interest) among the sample of "exposed" individuals.
34
+ exposed_total : int
35
+ The total number of "exposed" individuals in the sample.
36
+ control_cases : int
37
+ The number of "cases" among the sample of "control" or non-exposed
38
+ individuals.
39
+ control_total : int
40
+ The total number of "control" individuals in the sample.
41
+
42
+ Methods
43
+ -------
44
+ confidence_interval :
45
+ Compute the confidence interval for the relative risk estimate.
46
+ """
47
+
48
+ relative_risk: float
49
+ exposed_cases: int
50
+ exposed_total: int
51
+ control_cases: int
52
+ control_total: int
53
+
54
+ def confidence_interval(self, confidence_level=0.95):
55
+ """
56
+ Compute the confidence interval for the relative risk.
57
+
58
+ The confidence interval is computed using the Katz method
59
+ (i.e. "Method C" of [1]_; see also [2]_, section 3.1.2).
60
+
61
+ Parameters
62
+ ----------
63
+ confidence_level : float, optional
64
+ The confidence level to use for the confidence interval.
65
+ Default is 0.95.
66
+
67
+ Returns
68
+ -------
69
+ ci : ConfidenceInterval instance
70
+ The return value is an object with attributes ``low`` and
71
+ ``high`` that hold the confidence interval.
72
+
73
+ References
74
+ ----------
75
+ .. [1] D. Katz, J. Baptista, S. P. Azen and M. C. Pike, "Obtaining
76
+ confidence intervals for the risk ratio in cohort studies",
77
+ Biometrics, 34, 469-474 (1978).
78
+ .. [2] Hardeo Sahai and Anwer Khurshid, Statistics in Epidemiology,
79
+ CRC Press LLC, Boca Raton, FL, USA (1996).
80
+
81
+
82
+ Examples
83
+ --------
84
+ >>> from scipy.stats.contingency import relative_risk
85
+ >>> result = relative_risk(exposed_cases=10, exposed_total=75,
86
+ ... control_cases=12, control_total=225)
87
+ >>> result.relative_risk
88
+ 2.5
89
+ >>> result.confidence_interval()
90
+ ConfidenceInterval(low=1.1261564003469628, high=5.549850800541033)
91
+ """
92
+ if not 0 <= confidence_level <= 1:
93
+ raise ValueError('confidence_level must be in the interval '
94
+ '[0, 1].')
95
+
96
+ # Handle edge cases where either exposed_cases or control_cases
97
+ # is zero. We follow the convention of the R function riskratio
98
+ # from the epitools library.
99
+ if self.exposed_cases == 0 and self.control_cases == 0:
100
+ # relative risk is nan.
101
+ return ConfidenceInterval(low=np.nan, high=np.nan)
102
+ elif self.exposed_cases == 0:
103
+ # relative risk is 0.
104
+ return ConfidenceInterval(low=0.0, high=np.nan)
105
+ elif self.control_cases == 0:
106
+ # relative risk is inf
107
+ return ConfidenceInterval(low=np.nan, high=np.inf)
108
+
109
+ alpha = 1 - confidence_level
110
+ z = ndtri(1 - alpha/2)
111
+ rr = self.relative_risk
112
+
113
+ # Estimate of the variance of log(rr) is
114
+ # var(log(rr)) = 1/exposed_cases - 1/exposed_total +
115
+ # 1/control_cases - 1/control_total
116
+ # and the standard error is the square root of that.
117
+ se = np.sqrt(1/self.exposed_cases - 1/self.exposed_total +
118
+ 1/self.control_cases - 1/self.control_total)
119
+ delta = z*se
120
+ katz_lo = rr*np.exp(-delta)
121
+ katz_hi = rr*np.exp(delta)
122
+ return ConfidenceInterval(low=katz_lo, high=katz_hi)
123
+
124
+
125
+ def relative_risk(exposed_cases, exposed_total, control_cases, control_total):
126
+ """
127
+ Compute the relative risk (also known as the risk ratio).
128
+
129
+ This function computes the relative risk associated with a 2x2
130
+ contingency table ([1]_, section 2.2.3; [2]_, section 3.1.2). Instead
131
+ of accepting a table as an argument, the individual numbers that are
132
+ used to compute the relative risk are given as separate parameters.
133
+ This is to avoid the ambiguity of which row or column of the contingency
134
+ table corresponds to the "exposed" cases and which corresponds to the
135
+ "control" cases. Unlike, say, the odds ratio, the relative risk is not
136
+ invariant under an interchange of the rows or columns.
137
+
138
+ Parameters
139
+ ----------
140
+ exposed_cases : nonnegative int
141
+ The number of "cases" (i.e. occurrence of disease or other event
142
+ of interest) among the sample of "exposed" individuals.
143
+ exposed_total : positive int
144
+ The total number of "exposed" individuals in the sample.
145
+ control_cases : nonnegative int
146
+ The number of "cases" among the sample of "control" or non-exposed
147
+ individuals.
148
+ control_total : positive int
149
+ The total number of "control" individuals in the sample.
150
+
151
+ Returns
152
+ -------
153
+ result : instance of `~scipy.stats._result_classes.RelativeRiskResult`
154
+ The object has the float attribute ``relative_risk``, which is::
155
+
156
+ rr = (exposed_cases/exposed_total) / (control_cases/control_total)
157
+
158
+ The object also has the method ``confidence_interval`` to compute
159
+ the confidence interval of the relative risk for a given confidence
160
+ level.
161
+
162
+ See Also
163
+ --------
164
+ odds_ratio
165
+
166
+ Notes
167
+ -----
168
+ The R package epitools has the function `riskratio`, which accepts
169
+ a table with the following layout::
170
+
171
+ disease=0 disease=1
172
+ exposed=0 (ref) n00 n01
173
+ exposed=1 n10 n11
174
+
175
+ With a 2x2 table in the above format, the estimate of the CI is
176
+ computed by `riskratio` when the argument method="wald" is given,
177
+ or with the function `riskratio.wald`.
178
+
179
+ For example, in a test of the incidence of lung cancer among a
180
+ sample of smokers and nonsmokers, the "exposed" category would
181
+ correspond to "is a smoker" and the "disease" category would
182
+ correspond to "has or had lung cancer".
183
+
184
+ To pass the same data to ``relative_risk``, use::
185
+
186
+ relative_risk(n11, n10 + n11, n01, n00 + n01)
187
+
188
+ .. versionadded:: 1.7.0
189
+
190
+ References
191
+ ----------
192
+ .. [1] Alan Agresti, An Introduction to Categorical Data Analysis
193
+ (second edition), Wiley, Hoboken, NJ, USA (2007).
194
+ .. [2] Hardeo Sahai and Anwer Khurshid, Statistics in Epidemiology,
195
+ CRC Press LLC, Boca Raton, FL, USA (1996).
196
+
197
+ Examples
198
+ --------
199
+ >>> from scipy.stats.contingency import relative_risk
200
+
201
+ This example is from Example 3.1 of [2]_. The results of a heart
202
+ disease study are summarized in the following table::
203
+
204
+ High CAT Low CAT Total
205
+ -------- ------- -----
206
+ CHD 27 44 71
207
+ No CHD 95 443 538
208
+
209
+ Total 122 487 609
210
+
211
+ CHD is coronary heart disease, and CAT refers to the level of
212
+ circulating catecholamine. CAT is the "exposure" variable, and
213
+ high CAT is the "exposed" category. So the data from the table
214
+ to be passed to ``relative_risk`` is::
215
+
216
+ exposed_cases = 27
217
+ exposed_total = 122
218
+ control_cases = 44
219
+ control_total = 487
220
+
221
+ >>> result = relative_risk(27, 122, 44, 487)
222
+ >>> result.relative_risk
223
+ 2.4495156482861398
224
+
225
+ Find the confidence interval for the relative risk.
226
+
227
+ >>> result.confidence_interval(confidence_level=0.95)
228
+ ConfidenceInterval(low=1.5836990926700116, high=3.7886786315466354)
229
+
230
+ The interval does not contain 1, so the data supports the statement
231
+ that high CAT is associated with greater risk of CHD.
232
+ """
233
+ # Relative risk is a trivial calculation. The nontrivial part is in the
234
+ # `confidence_interval` method of the RelativeRiskResult class.
235
+
236
+ exposed_cases = _validate_int(exposed_cases, 0, "exposed_cases")
237
+ exposed_total = _validate_int(exposed_total, 1, "exposed_total")
238
+ control_cases = _validate_int(control_cases, 0, "control_cases")
239
+ control_total = _validate_int(control_total, 1, "control_total")
240
+
241
+ if exposed_cases > exposed_total:
242
+ raise ValueError('exposed_cases must not exceed exposed_total.')
243
+ if control_cases > control_total:
244
+ raise ValueError('control_cases must not exceed control_total.')
245
+
246
+ if exposed_cases == 0 and control_cases == 0:
247
+ # relative risk is 0/0.
248
+ rr = np.nan
249
+ elif exposed_cases == 0:
250
+ # relative risk is 0/nonzero
251
+ rr = 0.0
252
+ elif control_cases == 0:
253
+ # relative risk is nonzero/0.
254
+ rr = np.inf
255
+ else:
256
+ p1 = exposed_cases / exposed_total
257
+ p2 = control_cases / control_total
258
+ rr = p1 / p2
259
+ return RelativeRiskResult(relative_risk=rr,
260
+ exposed_cases=exposed_cases,
261
+ exposed_total=exposed_total,
262
+ control_cases=control_cases,
263
+ control_total=control_total)