scipy 1.16.1__cp314-cp314-macosx_14_0_arm64.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 (1415) hide show
  1. scipy/.dylibs/libgcc_s.1.1.dylib +0 -0
  2. scipy/.dylibs/libgfortran.5.dylib +0 -0
  3. scipy/.dylibs/libquadmath.0.dylib +0 -0
  4. scipy/__config__.py +161 -0
  5. scipy/__init__.py +138 -0
  6. scipy/_cyutility.cpython-314-darwin.so +0 -0
  7. scipy/_distributor_init.py +18 -0
  8. scipy/_lib/__init__.py +14 -0
  9. scipy/_lib/_array_api.py +931 -0
  10. scipy/_lib/_array_api_compat_vendor.py +9 -0
  11. scipy/_lib/_array_api_no_0d.py +103 -0
  12. scipy/_lib/_bunch.py +229 -0
  13. scipy/_lib/_ccallback.py +251 -0
  14. scipy/_lib/_ccallback_c.cpython-314-darwin.so +0 -0
  15. scipy/_lib/_disjoint_set.py +254 -0
  16. scipy/_lib/_docscrape.py +761 -0
  17. scipy/_lib/_elementwise_iterative_method.py +346 -0
  18. scipy/_lib/_fpumode.cpython-314-darwin.so +0 -0
  19. scipy/_lib/_gcutils.py +105 -0
  20. scipy/_lib/_pep440.py +487 -0
  21. scipy/_lib/_sparse.py +41 -0
  22. scipy/_lib/_test_ccallback.cpython-314-darwin.so +0 -0
  23. scipy/_lib/_test_deprecation_call.cpython-314-darwin.so +0 -0
  24. scipy/_lib/_test_deprecation_def.cpython-314-darwin.so +0 -0
  25. scipy/_lib/_testutils.py +373 -0
  26. scipy/_lib/_threadsafety.py +58 -0
  27. scipy/_lib/_tmpdirs.py +86 -0
  28. scipy/_lib/_uarray/LICENSE +29 -0
  29. scipy/_lib/_uarray/__init__.py +116 -0
  30. scipy/_lib/_uarray/_backend.py +707 -0
  31. scipy/_lib/_uarray/_uarray.cpython-314-darwin.so +0 -0
  32. scipy/_lib/_util.py +1283 -0
  33. scipy/_lib/array_api_compat/__init__.py +22 -0
  34. scipy/_lib/array_api_compat/_internal.py +59 -0
  35. scipy/_lib/array_api_compat/common/__init__.py +1 -0
  36. scipy/_lib/array_api_compat/common/_aliases.py +727 -0
  37. scipy/_lib/array_api_compat/common/_fft.py +213 -0
  38. scipy/_lib/array_api_compat/common/_helpers.py +1058 -0
  39. scipy/_lib/array_api_compat/common/_linalg.py +232 -0
  40. scipy/_lib/array_api_compat/common/_typing.py +192 -0
  41. scipy/_lib/array_api_compat/cupy/__init__.py +13 -0
  42. scipy/_lib/array_api_compat/cupy/_aliases.py +156 -0
  43. scipy/_lib/array_api_compat/cupy/_info.py +336 -0
  44. scipy/_lib/array_api_compat/cupy/_typing.py +31 -0
  45. scipy/_lib/array_api_compat/cupy/fft.py +36 -0
  46. scipy/_lib/array_api_compat/cupy/linalg.py +49 -0
  47. scipy/_lib/array_api_compat/dask/__init__.py +0 -0
  48. scipy/_lib/array_api_compat/dask/array/__init__.py +12 -0
  49. scipy/_lib/array_api_compat/dask/array/_aliases.py +376 -0
  50. scipy/_lib/array_api_compat/dask/array/_info.py +416 -0
  51. scipy/_lib/array_api_compat/dask/array/fft.py +21 -0
  52. scipy/_lib/array_api_compat/dask/array/linalg.py +72 -0
  53. scipy/_lib/array_api_compat/numpy/__init__.py +28 -0
  54. scipy/_lib/array_api_compat/numpy/_aliases.py +190 -0
  55. scipy/_lib/array_api_compat/numpy/_info.py +366 -0
  56. scipy/_lib/array_api_compat/numpy/_typing.py +30 -0
  57. scipy/_lib/array_api_compat/numpy/fft.py +35 -0
  58. scipy/_lib/array_api_compat/numpy/linalg.py +143 -0
  59. scipy/_lib/array_api_compat/torch/__init__.py +22 -0
  60. scipy/_lib/array_api_compat/torch/_aliases.py +855 -0
  61. scipy/_lib/array_api_compat/torch/_info.py +369 -0
  62. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  63. scipy/_lib/array_api_compat/torch/fft.py +85 -0
  64. scipy/_lib/array_api_compat/torch/linalg.py +121 -0
  65. scipy/_lib/array_api_extra/__init__.py +38 -0
  66. scipy/_lib/array_api_extra/_delegation.py +171 -0
  67. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  68. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  69. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  70. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  71. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  72. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  73. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  74. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  75. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  76. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  77. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  78. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  79. scipy/_lib/array_api_extra/testing.py +359 -0
  80. scipy/_lib/cobyqa/__init__.py +20 -0
  81. scipy/_lib/cobyqa/framework.py +1240 -0
  82. scipy/_lib/cobyqa/main.py +1506 -0
  83. scipy/_lib/cobyqa/models.py +1529 -0
  84. scipy/_lib/cobyqa/problem.py +1296 -0
  85. scipy/_lib/cobyqa/settings.py +132 -0
  86. scipy/_lib/cobyqa/subsolvers/__init__.py +14 -0
  87. scipy/_lib/cobyqa/subsolvers/geometry.py +387 -0
  88. scipy/_lib/cobyqa/subsolvers/optim.py +1203 -0
  89. scipy/_lib/cobyqa/utils/__init__.py +18 -0
  90. scipy/_lib/cobyqa/utils/exceptions.py +22 -0
  91. scipy/_lib/cobyqa/utils/math.py +77 -0
  92. scipy/_lib/cobyqa/utils/versions.py +67 -0
  93. scipy/_lib/decorator.py +399 -0
  94. scipy/_lib/deprecation.py +274 -0
  95. scipy/_lib/doccer.py +366 -0
  96. scipy/_lib/messagestream.cpython-314-darwin.so +0 -0
  97. scipy/_lib/pyprima/__init__.py +212 -0
  98. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  99. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  100. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  101. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  102. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  103. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  104. scipy/_lib/pyprima/cobyla/update.py +289 -0
  105. scipy/_lib/pyprima/common/__init__.py +0 -0
  106. scipy/_lib/pyprima/common/_bounds.py +34 -0
  107. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  108. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  109. scipy/_lib/pyprima/common/_project.py +173 -0
  110. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  111. scipy/_lib/pyprima/common/consts.py +47 -0
  112. scipy/_lib/pyprima/common/evaluate.py +99 -0
  113. scipy/_lib/pyprima/common/history.py +38 -0
  114. scipy/_lib/pyprima/common/infos.py +30 -0
  115. scipy/_lib/pyprima/common/linalg.py +435 -0
  116. scipy/_lib/pyprima/common/message.py +290 -0
  117. scipy/_lib/pyprima/common/powalg.py +131 -0
  118. scipy/_lib/pyprima/common/preproc.py +277 -0
  119. scipy/_lib/pyprima/common/present.py +5 -0
  120. scipy/_lib/pyprima/common/ratio.py +54 -0
  121. scipy/_lib/pyprima/common/redrho.py +47 -0
  122. scipy/_lib/pyprima/common/selectx.py +296 -0
  123. scipy/_lib/tests/__init__.py +0 -0
  124. scipy/_lib/tests/test__gcutils.py +110 -0
  125. scipy/_lib/tests/test__pep440.py +67 -0
  126. scipy/_lib/tests/test__testutils.py +32 -0
  127. scipy/_lib/tests/test__threadsafety.py +51 -0
  128. scipy/_lib/tests/test__util.py +641 -0
  129. scipy/_lib/tests/test_array_api.py +322 -0
  130. scipy/_lib/tests/test_bunch.py +169 -0
  131. scipy/_lib/tests/test_ccallback.py +196 -0
  132. scipy/_lib/tests/test_config.py +45 -0
  133. scipy/_lib/tests/test_deprecation.py +10 -0
  134. scipy/_lib/tests/test_doccer.py +143 -0
  135. scipy/_lib/tests/test_import_cycles.py +18 -0
  136. scipy/_lib/tests/test_public_api.py +482 -0
  137. scipy/_lib/tests/test_scipy_version.py +28 -0
  138. scipy/_lib/tests/test_tmpdirs.py +48 -0
  139. scipy/_lib/tests/test_warnings.py +137 -0
  140. scipy/_lib/uarray.py +31 -0
  141. scipy/cluster/__init__.py +31 -0
  142. scipy/cluster/_hierarchy.cpython-314-darwin.so +0 -0
  143. scipy/cluster/_optimal_leaf_ordering.cpython-314-darwin.so +0 -0
  144. scipy/cluster/_vq.cpython-314-darwin.so +0 -0
  145. scipy/cluster/hierarchy.py +4348 -0
  146. scipy/cluster/tests/__init__.py +0 -0
  147. scipy/cluster/tests/hierarchy_test_data.py +145 -0
  148. scipy/cluster/tests/test_disjoint_set.py +202 -0
  149. scipy/cluster/tests/test_hierarchy.py +1238 -0
  150. scipy/cluster/tests/test_vq.py +434 -0
  151. scipy/cluster/vq.py +832 -0
  152. scipy/conftest.py +683 -0
  153. scipy/constants/__init__.py +358 -0
  154. scipy/constants/_codata.py +2266 -0
  155. scipy/constants/_constants.py +369 -0
  156. scipy/constants/codata.py +21 -0
  157. scipy/constants/constants.py +53 -0
  158. scipy/constants/tests/__init__.py +0 -0
  159. scipy/constants/tests/test_codata.py +78 -0
  160. scipy/constants/tests/test_constants.py +83 -0
  161. scipy/datasets/__init__.py +90 -0
  162. scipy/datasets/_download_all.py +71 -0
  163. scipy/datasets/_fetchers.py +225 -0
  164. scipy/datasets/_registry.py +26 -0
  165. scipy/datasets/_utils.py +81 -0
  166. scipy/datasets/tests/__init__.py +0 -0
  167. scipy/datasets/tests/test_data.py +128 -0
  168. scipy/differentiate/__init__.py +27 -0
  169. scipy/differentiate/_differentiate.py +1129 -0
  170. scipy/differentiate/tests/__init__.py +0 -0
  171. scipy/differentiate/tests/test_differentiate.py +694 -0
  172. scipy/fft/__init__.py +114 -0
  173. scipy/fft/_backend.py +196 -0
  174. scipy/fft/_basic.py +1650 -0
  175. scipy/fft/_basic_backend.py +197 -0
  176. scipy/fft/_debug_backends.py +22 -0
  177. scipy/fft/_fftlog.py +223 -0
  178. scipy/fft/_fftlog_backend.py +200 -0
  179. scipy/fft/_helper.py +348 -0
  180. scipy/fft/_pocketfft/LICENSE.md +25 -0
  181. scipy/fft/_pocketfft/__init__.py +9 -0
  182. scipy/fft/_pocketfft/basic.py +251 -0
  183. scipy/fft/_pocketfft/helper.py +249 -0
  184. scipy/fft/_pocketfft/pypocketfft.cpython-314-darwin.so +0 -0
  185. scipy/fft/_pocketfft/realtransforms.py +109 -0
  186. scipy/fft/_pocketfft/tests/__init__.py +0 -0
  187. scipy/fft/_pocketfft/tests/test_basic.py +1011 -0
  188. scipy/fft/_pocketfft/tests/test_real_transforms.py +505 -0
  189. scipy/fft/_realtransforms.py +706 -0
  190. scipy/fft/_realtransforms_backend.py +63 -0
  191. scipy/fft/tests/__init__.py +0 -0
  192. scipy/fft/tests/mock_backend.py +96 -0
  193. scipy/fft/tests/test_backend.py +98 -0
  194. scipy/fft/tests/test_basic.py +504 -0
  195. scipy/fft/tests/test_fftlog.py +215 -0
  196. scipy/fft/tests/test_helper.py +558 -0
  197. scipy/fft/tests/test_multithreading.py +84 -0
  198. scipy/fft/tests/test_real_transforms.py +247 -0
  199. scipy/fftpack/__init__.py +103 -0
  200. scipy/fftpack/_basic.py +428 -0
  201. scipy/fftpack/_helper.py +115 -0
  202. scipy/fftpack/_pseudo_diffs.py +554 -0
  203. scipy/fftpack/_realtransforms.py +598 -0
  204. scipy/fftpack/basic.py +20 -0
  205. scipy/fftpack/convolve.cpython-314-darwin.so +0 -0
  206. scipy/fftpack/helper.py +19 -0
  207. scipy/fftpack/pseudo_diffs.py +22 -0
  208. scipy/fftpack/realtransforms.py +19 -0
  209. scipy/fftpack/tests/__init__.py +0 -0
  210. scipy/fftpack/tests/fftw_double_ref.npz +0 -0
  211. scipy/fftpack/tests/fftw_longdouble_ref.npz +0 -0
  212. scipy/fftpack/tests/fftw_single_ref.npz +0 -0
  213. scipy/fftpack/tests/test.npz +0 -0
  214. scipy/fftpack/tests/test_basic.py +877 -0
  215. scipy/fftpack/tests/test_helper.py +54 -0
  216. scipy/fftpack/tests/test_import.py +33 -0
  217. scipy/fftpack/tests/test_pseudo_diffs.py +388 -0
  218. scipy/fftpack/tests/test_real_transforms.py +836 -0
  219. scipy/integrate/__init__.py +122 -0
  220. scipy/integrate/_bvp.py +1160 -0
  221. scipy/integrate/_cubature.py +729 -0
  222. scipy/integrate/_dop.cpython-314-darwin.so +0 -0
  223. scipy/integrate/_ivp/__init__.py +8 -0
  224. scipy/integrate/_ivp/base.py +290 -0
  225. scipy/integrate/_ivp/bdf.py +478 -0
  226. scipy/integrate/_ivp/common.py +451 -0
  227. scipy/integrate/_ivp/dop853_coefficients.py +193 -0
  228. scipy/integrate/_ivp/ivp.py +755 -0
  229. scipy/integrate/_ivp/lsoda.py +224 -0
  230. scipy/integrate/_ivp/radau.py +572 -0
  231. scipy/integrate/_ivp/rk.py +601 -0
  232. scipy/integrate/_ivp/tests/__init__.py +0 -0
  233. scipy/integrate/_ivp/tests/test_ivp.py +1287 -0
  234. scipy/integrate/_ivp/tests/test_rk.py +37 -0
  235. scipy/integrate/_lebedev.py +5450 -0
  236. scipy/integrate/_lsoda.cpython-314-darwin.so +0 -0
  237. scipy/integrate/_ode.py +1395 -0
  238. scipy/integrate/_odepack.cpython-314-darwin.so +0 -0
  239. scipy/integrate/_odepack_py.py +273 -0
  240. scipy/integrate/_quad_vec.py +674 -0
  241. scipy/integrate/_quadpack.cpython-314-darwin.so +0 -0
  242. scipy/integrate/_quadpack_py.py +1283 -0
  243. scipy/integrate/_quadrature.py +1336 -0
  244. scipy/integrate/_rules/__init__.py +12 -0
  245. scipy/integrate/_rules/_base.py +518 -0
  246. scipy/integrate/_rules/_gauss_kronrod.py +202 -0
  247. scipy/integrate/_rules/_gauss_legendre.py +62 -0
  248. scipy/integrate/_rules/_genz_malik.py +210 -0
  249. scipy/integrate/_tanhsinh.py +1385 -0
  250. scipy/integrate/_test_multivariate.cpython-314-darwin.so +0 -0
  251. scipy/integrate/_test_odeint_banded.cpython-314-darwin.so +0 -0
  252. scipy/integrate/_vode.cpython-314-darwin.so +0 -0
  253. scipy/integrate/dop.py +15 -0
  254. scipy/integrate/lsoda.py +15 -0
  255. scipy/integrate/odepack.py +17 -0
  256. scipy/integrate/quadpack.py +23 -0
  257. scipy/integrate/tests/__init__.py +0 -0
  258. scipy/integrate/tests/test__quad_vec.py +211 -0
  259. scipy/integrate/tests/test_banded_ode_solvers.py +305 -0
  260. scipy/integrate/tests/test_bvp.py +714 -0
  261. scipy/integrate/tests/test_cubature.py +1375 -0
  262. scipy/integrate/tests/test_integrate.py +840 -0
  263. scipy/integrate/tests/test_odeint_jac.py +74 -0
  264. scipy/integrate/tests/test_quadpack.py +680 -0
  265. scipy/integrate/tests/test_quadrature.py +730 -0
  266. scipy/integrate/tests/test_tanhsinh.py +1171 -0
  267. scipy/integrate/vode.py +15 -0
  268. scipy/interpolate/__init__.py +228 -0
  269. scipy/interpolate/_bary_rational.py +715 -0
  270. scipy/interpolate/_bsplines.py +2469 -0
  271. scipy/interpolate/_cubic.py +973 -0
  272. scipy/interpolate/_dfitpack.cpython-314-darwin.so +0 -0
  273. scipy/interpolate/_dierckx.cpython-314-darwin.so +0 -0
  274. scipy/interpolate/_fitpack.cpython-314-darwin.so +0 -0
  275. scipy/interpolate/_fitpack2.py +2397 -0
  276. scipy/interpolate/_fitpack_impl.py +811 -0
  277. scipy/interpolate/_fitpack_py.py +898 -0
  278. scipy/interpolate/_fitpack_repro.py +996 -0
  279. scipy/interpolate/_interpnd.cpython-314-darwin.so +0 -0
  280. scipy/interpolate/_interpolate.py +2266 -0
  281. scipy/interpolate/_ndbspline.py +415 -0
  282. scipy/interpolate/_ndgriddata.py +329 -0
  283. scipy/interpolate/_pade.py +67 -0
  284. scipy/interpolate/_polyint.py +1025 -0
  285. scipy/interpolate/_ppoly.cpython-314-darwin.so +0 -0
  286. scipy/interpolate/_rbf.py +290 -0
  287. scipy/interpolate/_rbfinterp.py +550 -0
  288. scipy/interpolate/_rbfinterp_pythran.cpython-314-darwin.so +0 -0
  289. scipy/interpolate/_rgi.py +764 -0
  290. scipy/interpolate/_rgi_cython.cpython-314-darwin.so +0 -0
  291. scipy/interpolate/dfitpack.py +24 -0
  292. scipy/interpolate/fitpack.py +31 -0
  293. scipy/interpolate/fitpack2.py +29 -0
  294. scipy/interpolate/interpnd.py +24 -0
  295. scipy/interpolate/interpolate.py +30 -0
  296. scipy/interpolate/ndgriddata.py +23 -0
  297. scipy/interpolate/polyint.py +24 -0
  298. scipy/interpolate/rbf.py +18 -0
  299. scipy/interpolate/tests/__init__.py +0 -0
  300. scipy/interpolate/tests/data/bug-1310.npz +0 -0
  301. scipy/interpolate/tests/data/estimate_gradients_hang.npy +0 -0
  302. scipy/interpolate/tests/data/gcvspl.npz +0 -0
  303. scipy/interpolate/tests/test_bary_rational.py +368 -0
  304. scipy/interpolate/tests/test_bsplines.py +3754 -0
  305. scipy/interpolate/tests/test_fitpack.py +519 -0
  306. scipy/interpolate/tests/test_fitpack2.py +1431 -0
  307. scipy/interpolate/tests/test_gil.py +64 -0
  308. scipy/interpolate/tests/test_interpnd.py +452 -0
  309. scipy/interpolate/tests/test_interpolate.py +2630 -0
  310. scipy/interpolate/tests/test_ndgriddata.py +308 -0
  311. scipy/interpolate/tests/test_pade.py +107 -0
  312. scipy/interpolate/tests/test_polyint.py +972 -0
  313. scipy/interpolate/tests/test_rbf.py +246 -0
  314. scipy/interpolate/tests/test_rbfinterp.py +534 -0
  315. scipy/interpolate/tests/test_rgi.py +1151 -0
  316. scipy/io/__init__.py +116 -0
  317. scipy/io/_fast_matrix_market/__init__.py +600 -0
  318. scipy/io/_fast_matrix_market/_fmm_core.cpython-314-darwin.so +0 -0
  319. scipy/io/_fortran.py +354 -0
  320. scipy/io/_harwell_boeing/__init__.py +7 -0
  321. scipy/io/_harwell_boeing/_fortran_format_parser.py +316 -0
  322. scipy/io/_harwell_boeing/hb.py +571 -0
  323. scipy/io/_harwell_boeing/tests/__init__.py +0 -0
  324. scipy/io/_harwell_boeing/tests/test_fortran_format.py +74 -0
  325. scipy/io/_harwell_boeing/tests/test_hb.py +70 -0
  326. scipy/io/_idl.py +917 -0
  327. scipy/io/_mmio.py +968 -0
  328. scipy/io/_netcdf.py +1104 -0
  329. scipy/io/_test_fortran.cpython-314-darwin.so +0 -0
  330. scipy/io/arff/__init__.py +28 -0
  331. scipy/io/arff/_arffread.py +873 -0
  332. scipy/io/arff/arffread.py +19 -0
  333. scipy/io/arff/tests/__init__.py +0 -0
  334. scipy/io/arff/tests/data/iris.arff +225 -0
  335. scipy/io/arff/tests/data/missing.arff +8 -0
  336. scipy/io/arff/tests/data/nodata.arff +11 -0
  337. scipy/io/arff/tests/data/quoted_nominal.arff +13 -0
  338. scipy/io/arff/tests/data/quoted_nominal_spaces.arff +13 -0
  339. scipy/io/arff/tests/data/test1.arff +10 -0
  340. scipy/io/arff/tests/data/test10.arff +8 -0
  341. scipy/io/arff/tests/data/test11.arff +11 -0
  342. scipy/io/arff/tests/data/test2.arff +15 -0
  343. scipy/io/arff/tests/data/test3.arff +6 -0
  344. scipy/io/arff/tests/data/test4.arff +11 -0
  345. scipy/io/arff/tests/data/test5.arff +26 -0
  346. scipy/io/arff/tests/data/test6.arff +12 -0
  347. scipy/io/arff/tests/data/test7.arff +15 -0
  348. scipy/io/arff/tests/data/test8.arff +12 -0
  349. scipy/io/arff/tests/data/test9.arff +14 -0
  350. scipy/io/arff/tests/test_arffread.py +421 -0
  351. scipy/io/harwell_boeing.py +17 -0
  352. scipy/io/idl.py +17 -0
  353. scipy/io/matlab/__init__.py +66 -0
  354. scipy/io/matlab/_byteordercodes.py +75 -0
  355. scipy/io/matlab/_mio.py +375 -0
  356. scipy/io/matlab/_mio4.py +632 -0
  357. scipy/io/matlab/_mio5.py +901 -0
  358. scipy/io/matlab/_mio5_params.py +281 -0
  359. scipy/io/matlab/_mio5_utils.cpython-314-darwin.so +0 -0
  360. scipy/io/matlab/_mio_utils.cpython-314-darwin.so +0 -0
  361. scipy/io/matlab/_miobase.py +435 -0
  362. scipy/io/matlab/_streams.cpython-314-darwin.so +0 -0
  363. scipy/io/matlab/byteordercodes.py +17 -0
  364. scipy/io/matlab/mio.py +16 -0
  365. scipy/io/matlab/mio4.py +17 -0
  366. scipy/io/matlab/mio5.py +19 -0
  367. scipy/io/matlab/mio5_params.py +18 -0
  368. scipy/io/matlab/mio5_utils.py +17 -0
  369. scipy/io/matlab/mio_utils.py +17 -0
  370. scipy/io/matlab/miobase.py +16 -0
  371. scipy/io/matlab/streams.py +16 -0
  372. scipy/io/matlab/tests/__init__.py +0 -0
  373. scipy/io/matlab/tests/data/bad_miuint32.mat +0 -0
  374. scipy/io/matlab/tests/data/bad_miutf8_array_name.mat +0 -0
  375. scipy/io/matlab/tests/data/big_endian.mat +0 -0
  376. scipy/io/matlab/tests/data/broken_utf8.mat +0 -0
  377. scipy/io/matlab/tests/data/corrupted_zlib_checksum.mat +0 -0
  378. scipy/io/matlab/tests/data/corrupted_zlib_data.mat +0 -0
  379. scipy/io/matlab/tests/data/debigged_m4.mat +0 -0
  380. scipy/io/matlab/tests/data/japanese_utf8.txt +5 -0
  381. scipy/io/matlab/tests/data/little_endian.mat +0 -0
  382. scipy/io/matlab/tests/data/logical_sparse.mat +0 -0
  383. scipy/io/matlab/tests/data/malformed1.mat +0 -0
  384. scipy/io/matlab/tests/data/miuint32_for_miint32.mat +0 -0
  385. scipy/io/matlab/tests/data/miutf8_array_name.mat +0 -0
  386. scipy/io/matlab/tests/data/nasty_duplicate_fieldnames.mat +0 -0
  387. scipy/io/matlab/tests/data/one_by_zero_char.mat +0 -0
  388. scipy/io/matlab/tests/data/parabola.mat +0 -0
  389. scipy/io/matlab/tests/data/single_empty_string.mat +0 -0
  390. scipy/io/matlab/tests/data/some_functions.mat +0 -0
  391. scipy/io/matlab/tests/data/sqr.mat +0 -0
  392. scipy/io/matlab/tests/data/test3dmatrix_6.1_SOL2.mat +0 -0
  393. scipy/io/matlab/tests/data/test3dmatrix_6.5.1_GLNX86.mat +0 -0
  394. scipy/io/matlab/tests/data/test3dmatrix_7.1_GLNX86.mat +0 -0
  395. scipy/io/matlab/tests/data/test3dmatrix_7.4_GLNX86.mat +0 -0
  396. scipy/io/matlab/tests/data/test_empty_struct.mat +0 -0
  397. scipy/io/matlab/tests/data/test_mat4_le_floats.mat +0 -0
  398. scipy/io/matlab/tests/data/test_skip_variable.mat +0 -0
  399. scipy/io/matlab/tests/data/testbool_8_WIN64.mat +0 -0
  400. scipy/io/matlab/tests/data/testcell_6.1_SOL2.mat +0 -0
  401. scipy/io/matlab/tests/data/testcell_6.5.1_GLNX86.mat +0 -0
  402. scipy/io/matlab/tests/data/testcell_7.1_GLNX86.mat +0 -0
  403. scipy/io/matlab/tests/data/testcell_7.4_GLNX86.mat +0 -0
  404. scipy/io/matlab/tests/data/testcellnest_6.1_SOL2.mat +0 -0
  405. scipy/io/matlab/tests/data/testcellnest_6.5.1_GLNX86.mat +0 -0
  406. scipy/io/matlab/tests/data/testcellnest_7.1_GLNX86.mat +0 -0
  407. scipy/io/matlab/tests/data/testcellnest_7.4_GLNX86.mat +0 -0
  408. scipy/io/matlab/tests/data/testcomplex_4.2c_SOL2.mat +0 -0
  409. scipy/io/matlab/tests/data/testcomplex_6.1_SOL2.mat +0 -0
  410. scipy/io/matlab/tests/data/testcomplex_6.5.1_GLNX86.mat +0 -0
  411. scipy/io/matlab/tests/data/testcomplex_7.1_GLNX86.mat +0 -0
  412. scipy/io/matlab/tests/data/testcomplex_7.4_GLNX86.mat +0 -0
  413. scipy/io/matlab/tests/data/testdouble_4.2c_SOL2.mat +0 -0
  414. scipy/io/matlab/tests/data/testdouble_6.1_SOL2.mat +0 -0
  415. scipy/io/matlab/tests/data/testdouble_6.5.1_GLNX86.mat +0 -0
  416. scipy/io/matlab/tests/data/testdouble_7.1_GLNX86.mat +0 -0
  417. scipy/io/matlab/tests/data/testdouble_7.4_GLNX86.mat +0 -0
  418. scipy/io/matlab/tests/data/testemptycell_5.3_SOL2.mat +0 -0
  419. scipy/io/matlab/tests/data/testemptycell_6.5.1_GLNX86.mat +0 -0
  420. scipy/io/matlab/tests/data/testemptycell_7.1_GLNX86.mat +0 -0
  421. scipy/io/matlab/tests/data/testemptycell_7.4_GLNX86.mat +0 -0
  422. scipy/io/matlab/tests/data/testfunc_7.4_GLNX86.mat +0 -0
  423. scipy/io/matlab/tests/data/testhdf5_7.4_GLNX86.mat +0 -0
  424. scipy/io/matlab/tests/data/testmatrix_4.2c_SOL2.mat +0 -0
  425. scipy/io/matlab/tests/data/testmatrix_6.1_SOL2.mat +0 -0
  426. scipy/io/matlab/tests/data/testmatrix_6.5.1_GLNX86.mat +0 -0
  427. scipy/io/matlab/tests/data/testmatrix_7.1_GLNX86.mat +0 -0
  428. scipy/io/matlab/tests/data/testmatrix_7.4_GLNX86.mat +0 -0
  429. scipy/io/matlab/tests/data/testminus_4.2c_SOL2.mat +0 -0
  430. scipy/io/matlab/tests/data/testminus_6.1_SOL2.mat +0 -0
  431. scipy/io/matlab/tests/data/testminus_6.5.1_GLNX86.mat +0 -0
  432. scipy/io/matlab/tests/data/testminus_7.1_GLNX86.mat +0 -0
  433. scipy/io/matlab/tests/data/testminus_7.4_GLNX86.mat +0 -0
  434. scipy/io/matlab/tests/data/testmulti_4.2c_SOL2.mat +0 -0
  435. scipy/io/matlab/tests/data/testmulti_7.1_GLNX86.mat +0 -0
  436. scipy/io/matlab/tests/data/testmulti_7.4_GLNX86.mat +0 -0
  437. scipy/io/matlab/tests/data/testobject_6.1_SOL2.mat +0 -0
  438. scipy/io/matlab/tests/data/testobject_6.5.1_GLNX86.mat +0 -0
  439. scipy/io/matlab/tests/data/testobject_7.1_GLNX86.mat +0 -0
  440. scipy/io/matlab/tests/data/testobject_7.4_GLNX86.mat +0 -0
  441. scipy/io/matlab/tests/data/testonechar_4.2c_SOL2.mat +0 -0
  442. scipy/io/matlab/tests/data/testonechar_6.1_SOL2.mat +0 -0
  443. scipy/io/matlab/tests/data/testonechar_6.5.1_GLNX86.mat +0 -0
  444. scipy/io/matlab/tests/data/testonechar_7.1_GLNX86.mat +0 -0
  445. scipy/io/matlab/tests/data/testonechar_7.4_GLNX86.mat +0 -0
  446. scipy/io/matlab/tests/data/testscalarcell_7.4_GLNX86.mat +0 -0
  447. scipy/io/matlab/tests/data/testsimplecell.mat +0 -0
  448. scipy/io/matlab/tests/data/testsparse_4.2c_SOL2.mat +0 -0
  449. scipy/io/matlab/tests/data/testsparse_6.1_SOL2.mat +0 -0
  450. scipy/io/matlab/tests/data/testsparse_6.5.1_GLNX86.mat +0 -0
  451. scipy/io/matlab/tests/data/testsparse_7.1_GLNX86.mat +0 -0
  452. scipy/io/matlab/tests/data/testsparse_7.4_GLNX86.mat +0 -0
  453. scipy/io/matlab/tests/data/testsparsecomplex_4.2c_SOL2.mat +0 -0
  454. scipy/io/matlab/tests/data/testsparsecomplex_6.1_SOL2.mat +0 -0
  455. scipy/io/matlab/tests/data/testsparsecomplex_6.5.1_GLNX86.mat +0 -0
  456. scipy/io/matlab/tests/data/testsparsecomplex_7.1_GLNX86.mat +0 -0
  457. scipy/io/matlab/tests/data/testsparsecomplex_7.4_GLNX86.mat +0 -0
  458. scipy/io/matlab/tests/data/testsparsefloat_7.4_GLNX86.mat +0 -0
  459. scipy/io/matlab/tests/data/teststring_4.2c_SOL2.mat +0 -0
  460. scipy/io/matlab/tests/data/teststring_6.1_SOL2.mat +0 -0
  461. scipy/io/matlab/tests/data/teststring_6.5.1_GLNX86.mat +0 -0
  462. scipy/io/matlab/tests/data/teststring_7.1_GLNX86.mat +0 -0
  463. scipy/io/matlab/tests/data/teststring_7.4_GLNX86.mat +0 -0
  464. scipy/io/matlab/tests/data/teststringarray_4.2c_SOL2.mat +0 -0
  465. scipy/io/matlab/tests/data/teststringarray_6.1_SOL2.mat +0 -0
  466. scipy/io/matlab/tests/data/teststringarray_6.5.1_GLNX86.mat +0 -0
  467. scipy/io/matlab/tests/data/teststringarray_7.1_GLNX86.mat +0 -0
  468. scipy/io/matlab/tests/data/teststringarray_7.4_GLNX86.mat +0 -0
  469. scipy/io/matlab/tests/data/teststruct_6.1_SOL2.mat +0 -0
  470. scipy/io/matlab/tests/data/teststruct_6.5.1_GLNX86.mat +0 -0
  471. scipy/io/matlab/tests/data/teststruct_7.1_GLNX86.mat +0 -0
  472. scipy/io/matlab/tests/data/teststruct_7.4_GLNX86.mat +0 -0
  473. scipy/io/matlab/tests/data/teststructarr_6.1_SOL2.mat +0 -0
  474. scipy/io/matlab/tests/data/teststructarr_6.5.1_GLNX86.mat +0 -0
  475. scipy/io/matlab/tests/data/teststructarr_7.1_GLNX86.mat +0 -0
  476. scipy/io/matlab/tests/data/teststructarr_7.4_GLNX86.mat +0 -0
  477. scipy/io/matlab/tests/data/teststructnest_6.1_SOL2.mat +0 -0
  478. scipy/io/matlab/tests/data/teststructnest_6.5.1_GLNX86.mat +0 -0
  479. scipy/io/matlab/tests/data/teststructnest_7.1_GLNX86.mat +0 -0
  480. scipy/io/matlab/tests/data/teststructnest_7.4_GLNX86.mat +0 -0
  481. scipy/io/matlab/tests/data/testunicode_7.1_GLNX86.mat +0 -0
  482. scipy/io/matlab/tests/data/testunicode_7.4_GLNX86.mat +0 -0
  483. scipy/io/matlab/tests/data/testvec_4_GLNX86.mat +0 -0
  484. scipy/io/matlab/tests/test_byteordercodes.py +29 -0
  485. scipy/io/matlab/tests/test_mio.py +1399 -0
  486. scipy/io/matlab/tests/test_mio5_utils.py +179 -0
  487. scipy/io/matlab/tests/test_mio_funcs.py +51 -0
  488. scipy/io/matlab/tests/test_mio_utils.py +45 -0
  489. scipy/io/matlab/tests/test_miobase.py +32 -0
  490. scipy/io/matlab/tests/test_pathological.py +33 -0
  491. scipy/io/matlab/tests/test_streams.py +241 -0
  492. scipy/io/mmio.py +17 -0
  493. scipy/io/netcdf.py +17 -0
  494. scipy/io/tests/__init__.py +0 -0
  495. scipy/io/tests/data/Transparent Busy.ani +0 -0
  496. scipy/io/tests/data/array_float32_1d.sav +0 -0
  497. scipy/io/tests/data/array_float32_2d.sav +0 -0
  498. scipy/io/tests/data/array_float32_3d.sav +0 -0
  499. scipy/io/tests/data/array_float32_4d.sav +0 -0
  500. scipy/io/tests/data/array_float32_5d.sav +0 -0
  501. scipy/io/tests/data/array_float32_6d.sav +0 -0
  502. scipy/io/tests/data/array_float32_7d.sav +0 -0
  503. scipy/io/tests/data/array_float32_8d.sav +0 -0
  504. scipy/io/tests/data/array_float32_pointer_1d.sav +0 -0
  505. scipy/io/tests/data/array_float32_pointer_2d.sav +0 -0
  506. scipy/io/tests/data/array_float32_pointer_3d.sav +0 -0
  507. scipy/io/tests/data/array_float32_pointer_4d.sav +0 -0
  508. scipy/io/tests/data/array_float32_pointer_5d.sav +0 -0
  509. scipy/io/tests/data/array_float32_pointer_6d.sav +0 -0
  510. scipy/io/tests/data/array_float32_pointer_7d.sav +0 -0
  511. scipy/io/tests/data/array_float32_pointer_8d.sav +0 -0
  512. scipy/io/tests/data/example_1.nc +0 -0
  513. scipy/io/tests/data/example_2.nc +0 -0
  514. scipy/io/tests/data/example_3_maskedvals.nc +0 -0
  515. scipy/io/tests/data/fortran-3x3d-2i.dat +0 -0
  516. scipy/io/tests/data/fortran-mixed.dat +0 -0
  517. scipy/io/tests/data/fortran-sf8-11x1x10.dat +0 -0
  518. scipy/io/tests/data/fortran-sf8-15x10x22.dat +0 -0
  519. scipy/io/tests/data/fortran-sf8-1x1x1.dat +0 -0
  520. scipy/io/tests/data/fortran-sf8-1x1x5.dat +0 -0
  521. scipy/io/tests/data/fortran-sf8-1x1x7.dat +0 -0
  522. scipy/io/tests/data/fortran-sf8-1x3x5.dat +0 -0
  523. scipy/io/tests/data/fortran-si4-11x1x10.dat +0 -0
  524. scipy/io/tests/data/fortran-si4-15x10x22.dat +0 -0
  525. scipy/io/tests/data/fortran-si4-1x1x1.dat +0 -0
  526. scipy/io/tests/data/fortran-si4-1x1x5.dat +0 -0
  527. scipy/io/tests/data/fortran-si4-1x1x7.dat +0 -0
  528. scipy/io/tests/data/fortran-si4-1x3x5.dat +0 -0
  529. scipy/io/tests/data/invalid_pointer.sav +0 -0
  530. scipy/io/tests/data/null_pointer.sav +0 -0
  531. scipy/io/tests/data/scalar_byte.sav +0 -0
  532. scipy/io/tests/data/scalar_byte_descr.sav +0 -0
  533. scipy/io/tests/data/scalar_complex32.sav +0 -0
  534. scipy/io/tests/data/scalar_complex64.sav +0 -0
  535. scipy/io/tests/data/scalar_float32.sav +0 -0
  536. scipy/io/tests/data/scalar_float64.sav +0 -0
  537. scipy/io/tests/data/scalar_heap_pointer.sav +0 -0
  538. scipy/io/tests/data/scalar_int16.sav +0 -0
  539. scipy/io/tests/data/scalar_int32.sav +0 -0
  540. scipy/io/tests/data/scalar_int64.sav +0 -0
  541. scipy/io/tests/data/scalar_string.sav +0 -0
  542. scipy/io/tests/data/scalar_uint16.sav +0 -0
  543. scipy/io/tests/data/scalar_uint32.sav +0 -0
  544. scipy/io/tests/data/scalar_uint64.sav +0 -0
  545. scipy/io/tests/data/struct_arrays.sav +0 -0
  546. scipy/io/tests/data/struct_arrays_byte_idl80.sav +0 -0
  547. scipy/io/tests/data/struct_arrays_replicated.sav +0 -0
  548. scipy/io/tests/data/struct_arrays_replicated_3d.sav +0 -0
  549. scipy/io/tests/data/struct_inherit.sav +0 -0
  550. scipy/io/tests/data/struct_pointer_arrays.sav +0 -0
  551. scipy/io/tests/data/struct_pointer_arrays_replicated.sav +0 -0
  552. scipy/io/tests/data/struct_pointer_arrays_replicated_3d.sav +0 -0
  553. scipy/io/tests/data/struct_pointers.sav +0 -0
  554. scipy/io/tests/data/struct_pointers_replicated.sav +0 -0
  555. scipy/io/tests/data/struct_pointers_replicated_3d.sav +0 -0
  556. scipy/io/tests/data/struct_scalars.sav +0 -0
  557. scipy/io/tests/data/struct_scalars_replicated.sav +0 -0
  558. scipy/io/tests/data/struct_scalars_replicated_3d.sav +0 -0
  559. scipy/io/tests/data/test-1234Hz-le-1ch-10S-20bit-extra.wav +0 -0
  560. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-be.wav +0 -0
  561. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-le.wav +0 -0
  562. scipy/io/tests/data/test-44100Hz-be-1ch-4bytes.wav +0 -0
  563. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof-no-data.wav +0 -0
  564. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof.wav +0 -0
  565. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wav +0 -0
  566. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-rf64.wav +0 -0
  567. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes.wav +0 -0
  568. scipy/io/tests/data/test-48000Hz-2ch-64bit-float-le-wavex.wav +0 -0
  569. scipy/io/tests/data/test-8000Hz-be-3ch-5S-24bit.wav +0 -0
  570. scipy/io/tests/data/test-8000Hz-le-1ch-1byte-ulaw.wav +0 -0
  571. scipy/io/tests/data/test-8000Hz-le-2ch-1byteu.wav +0 -0
  572. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-inconsistent.wav +0 -0
  573. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-rf64.wav +0 -0
  574. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit.wav +0 -0
  575. scipy/io/tests/data/test-8000Hz-le-3ch-5S-36bit.wav +0 -0
  576. scipy/io/tests/data/test-8000Hz-le-3ch-5S-45bit.wav +0 -0
  577. scipy/io/tests/data/test-8000Hz-le-3ch-5S-53bit.wav +0 -0
  578. scipy/io/tests/data/test-8000Hz-le-3ch-5S-64bit.wav +0 -0
  579. scipy/io/tests/data/test-8000Hz-le-4ch-9S-12bit.wav +0 -0
  580. scipy/io/tests/data/test-8000Hz-le-5ch-9S-5bit.wav +0 -0
  581. scipy/io/tests/data/various_compressed.sav +0 -0
  582. scipy/io/tests/test_fortran.py +264 -0
  583. scipy/io/tests/test_idl.py +483 -0
  584. scipy/io/tests/test_mmio.py +831 -0
  585. scipy/io/tests/test_netcdf.py +550 -0
  586. scipy/io/tests/test_paths.py +93 -0
  587. scipy/io/tests/test_wavfile.py +501 -0
  588. scipy/io/wavfile.py +938 -0
  589. scipy/linalg/__init__.pxd +1 -0
  590. scipy/linalg/__init__.py +236 -0
  591. scipy/linalg/_basic.py +2146 -0
  592. scipy/linalg/_blas_subroutines.h +164 -0
  593. scipy/linalg/_cythonized_array_utils.cpython-314-darwin.so +0 -0
  594. scipy/linalg/_cythonized_array_utils.pxd +40 -0
  595. scipy/linalg/_cythonized_array_utils.pyi +16 -0
  596. scipy/linalg/_decomp.py +1645 -0
  597. scipy/linalg/_decomp_cholesky.py +413 -0
  598. scipy/linalg/_decomp_cossin.py +236 -0
  599. scipy/linalg/_decomp_interpolative.cpython-314-darwin.so +0 -0
  600. scipy/linalg/_decomp_ldl.py +356 -0
  601. scipy/linalg/_decomp_lu.py +401 -0
  602. scipy/linalg/_decomp_lu_cython.cpython-314-darwin.so +0 -0
  603. scipy/linalg/_decomp_lu_cython.pyi +6 -0
  604. scipy/linalg/_decomp_polar.py +113 -0
  605. scipy/linalg/_decomp_qr.py +494 -0
  606. scipy/linalg/_decomp_qz.py +452 -0
  607. scipy/linalg/_decomp_schur.py +336 -0
  608. scipy/linalg/_decomp_svd.py +545 -0
  609. scipy/linalg/_decomp_update.cpython-314-darwin.so +0 -0
  610. scipy/linalg/_expm_frechet.py +417 -0
  611. scipy/linalg/_fblas.cpython-314-darwin.so +0 -0
  612. scipy/linalg/_flapack.cpython-314-darwin.so +0 -0
  613. scipy/linalg/_lapack_subroutines.h +1521 -0
  614. scipy/linalg/_linalg_pythran.cpython-314-darwin.so +0 -0
  615. scipy/linalg/_matfuncs.py +1050 -0
  616. scipy/linalg/_matfuncs_expm.cpython-314-darwin.so +0 -0
  617. scipy/linalg/_matfuncs_expm.pyi +6 -0
  618. scipy/linalg/_matfuncs_inv_ssq.py +886 -0
  619. scipy/linalg/_matfuncs_schur_sqrtm.cpython-314-darwin.so +0 -0
  620. scipy/linalg/_matfuncs_sqrtm.py +107 -0
  621. scipy/linalg/_matfuncs_sqrtm_triu.cpython-314-darwin.so +0 -0
  622. scipy/linalg/_misc.py +191 -0
  623. scipy/linalg/_procrustes.py +113 -0
  624. scipy/linalg/_sketches.py +189 -0
  625. scipy/linalg/_solve_toeplitz.cpython-314-darwin.so +0 -0
  626. scipy/linalg/_solvers.py +862 -0
  627. scipy/linalg/_special_matrices.py +1322 -0
  628. scipy/linalg/_testutils.py +65 -0
  629. scipy/linalg/basic.py +23 -0
  630. scipy/linalg/blas.py +495 -0
  631. scipy/linalg/cython_blas.cpython-314-darwin.so +0 -0
  632. scipy/linalg/cython_blas.pxd +169 -0
  633. scipy/linalg/cython_blas.pyx +1432 -0
  634. scipy/linalg/cython_lapack.cpython-314-darwin.so +0 -0
  635. scipy/linalg/cython_lapack.pxd +1528 -0
  636. scipy/linalg/cython_lapack.pyx +12045 -0
  637. scipy/linalg/decomp.py +23 -0
  638. scipy/linalg/decomp_cholesky.py +21 -0
  639. scipy/linalg/decomp_lu.py +21 -0
  640. scipy/linalg/decomp_qr.py +20 -0
  641. scipy/linalg/decomp_schur.py +21 -0
  642. scipy/linalg/decomp_svd.py +21 -0
  643. scipy/linalg/interpolative.py +989 -0
  644. scipy/linalg/lapack.py +1081 -0
  645. scipy/linalg/matfuncs.py +23 -0
  646. scipy/linalg/misc.py +21 -0
  647. scipy/linalg/special_matrices.py +22 -0
  648. scipy/linalg/tests/__init__.py +0 -0
  649. scipy/linalg/tests/_cython_examples/extending.pyx +23 -0
  650. scipy/linalg/tests/_cython_examples/meson.build +34 -0
  651. scipy/linalg/tests/data/carex_15_data.npz +0 -0
  652. scipy/linalg/tests/data/carex_18_data.npz +0 -0
  653. scipy/linalg/tests/data/carex_19_data.npz +0 -0
  654. scipy/linalg/tests/data/carex_20_data.npz +0 -0
  655. scipy/linalg/tests/data/carex_6_data.npz +0 -0
  656. scipy/linalg/tests/data/gendare_20170120_data.npz +0 -0
  657. scipy/linalg/tests/test_basic.py +2074 -0
  658. scipy/linalg/tests/test_batch.py +588 -0
  659. scipy/linalg/tests/test_blas.py +1127 -0
  660. scipy/linalg/tests/test_cython_blas.py +118 -0
  661. scipy/linalg/tests/test_cython_lapack.py +22 -0
  662. scipy/linalg/tests/test_cythonized_array_utils.py +130 -0
  663. scipy/linalg/tests/test_decomp.py +3189 -0
  664. scipy/linalg/tests/test_decomp_cholesky.py +268 -0
  665. scipy/linalg/tests/test_decomp_cossin.py +314 -0
  666. scipy/linalg/tests/test_decomp_ldl.py +137 -0
  667. scipy/linalg/tests/test_decomp_lu.py +308 -0
  668. scipy/linalg/tests/test_decomp_polar.py +110 -0
  669. scipy/linalg/tests/test_decomp_update.py +1701 -0
  670. scipy/linalg/tests/test_extending.py +46 -0
  671. scipy/linalg/tests/test_fblas.py +607 -0
  672. scipy/linalg/tests/test_interpolative.py +232 -0
  673. scipy/linalg/tests/test_lapack.py +3616 -0
  674. scipy/linalg/tests/test_matfuncs.py +1125 -0
  675. scipy/linalg/tests/test_matmul_toeplitz.py +136 -0
  676. scipy/linalg/tests/test_procrustes.py +214 -0
  677. scipy/linalg/tests/test_sketches.py +118 -0
  678. scipy/linalg/tests/test_solve_toeplitz.py +150 -0
  679. scipy/linalg/tests/test_solvers.py +844 -0
  680. scipy/linalg/tests/test_special_matrices.py +636 -0
  681. scipy/misc/__init__.py +6 -0
  682. scipy/misc/common.py +6 -0
  683. scipy/misc/doccer.py +6 -0
  684. scipy/ndimage/__init__.py +174 -0
  685. scipy/ndimage/_ctest.cpython-314-darwin.so +0 -0
  686. scipy/ndimage/_cytest.cpython-314-darwin.so +0 -0
  687. scipy/ndimage/_delegators.py +303 -0
  688. scipy/ndimage/_filters.py +2422 -0
  689. scipy/ndimage/_fourier.py +306 -0
  690. scipy/ndimage/_interpolation.py +1033 -0
  691. scipy/ndimage/_measurements.py +1689 -0
  692. scipy/ndimage/_morphology.py +2634 -0
  693. scipy/ndimage/_nd_image.cpython-314-darwin.so +0 -0
  694. scipy/ndimage/_ndimage_api.py +16 -0
  695. scipy/ndimage/_ni_docstrings.py +214 -0
  696. scipy/ndimage/_ni_label.cpython-314-darwin.so +0 -0
  697. scipy/ndimage/_ni_support.py +139 -0
  698. scipy/ndimage/_rank_filter_1d.cpython-314-darwin.so +0 -0
  699. scipy/ndimage/_support_alternative_backends.py +84 -0
  700. scipy/ndimage/filters.py +27 -0
  701. scipy/ndimage/fourier.py +21 -0
  702. scipy/ndimage/interpolation.py +22 -0
  703. scipy/ndimage/measurements.py +24 -0
  704. scipy/ndimage/morphology.py +27 -0
  705. scipy/ndimage/tests/__init__.py +12 -0
  706. scipy/ndimage/tests/data/label_inputs.txt +21 -0
  707. scipy/ndimage/tests/data/label_results.txt +294 -0
  708. scipy/ndimage/tests/data/label_strels.txt +42 -0
  709. scipy/ndimage/tests/dots.png +0 -0
  710. scipy/ndimage/tests/test_c_api.py +102 -0
  711. scipy/ndimage/tests/test_datatypes.py +67 -0
  712. scipy/ndimage/tests/test_filters.py +3083 -0
  713. scipy/ndimage/tests/test_fourier.py +187 -0
  714. scipy/ndimage/tests/test_interpolation.py +1491 -0
  715. scipy/ndimage/tests/test_measurements.py +1592 -0
  716. scipy/ndimage/tests/test_morphology.py +2950 -0
  717. scipy/ndimage/tests/test_ni_support.py +78 -0
  718. scipy/ndimage/tests/test_splines.py +70 -0
  719. scipy/odr/__init__.py +131 -0
  720. scipy/odr/__odrpack.cpython-314-darwin.so +0 -0
  721. scipy/odr/_add_newdocs.py +34 -0
  722. scipy/odr/_models.py +315 -0
  723. scipy/odr/_odrpack.py +1154 -0
  724. scipy/odr/models.py +20 -0
  725. scipy/odr/odrpack.py +21 -0
  726. scipy/odr/tests/__init__.py +0 -0
  727. scipy/odr/tests/test_odr.py +607 -0
  728. scipy/optimize/__init__.pxd +1 -0
  729. scipy/optimize/__init__.py +460 -0
  730. scipy/optimize/_basinhopping.py +741 -0
  731. scipy/optimize/_bglu_dense.cpython-314-darwin.so +0 -0
  732. scipy/optimize/_bracket.py +706 -0
  733. scipy/optimize/_chandrupatla.py +551 -0
  734. scipy/optimize/_cobyla_py.py +297 -0
  735. scipy/optimize/_cobyqa_py.py +72 -0
  736. scipy/optimize/_constraints.py +598 -0
  737. scipy/optimize/_dcsrch.py +728 -0
  738. scipy/optimize/_differentiable_functions.py +835 -0
  739. scipy/optimize/_differentialevolution.py +1970 -0
  740. scipy/optimize/_direct.cpython-314-darwin.so +0 -0
  741. scipy/optimize/_direct_py.py +280 -0
  742. scipy/optimize/_dual_annealing.py +732 -0
  743. scipy/optimize/_elementwise.py +798 -0
  744. scipy/optimize/_group_columns.cpython-314-darwin.so +0 -0
  745. scipy/optimize/_hessian_update_strategy.py +479 -0
  746. scipy/optimize/_highspy/__init__.py +0 -0
  747. scipy/optimize/_highspy/_core.cpython-314-darwin.so +0 -0
  748. scipy/optimize/_highspy/_highs_options.cpython-314-darwin.so +0 -0
  749. scipy/optimize/_highspy/_highs_wrapper.py +338 -0
  750. scipy/optimize/_isotonic.py +157 -0
  751. scipy/optimize/_lbfgsb.cpython-314-darwin.so +0 -0
  752. scipy/optimize/_lbfgsb_py.py +634 -0
  753. scipy/optimize/_linesearch.py +896 -0
  754. scipy/optimize/_linprog.py +733 -0
  755. scipy/optimize/_linprog_doc.py +1434 -0
  756. scipy/optimize/_linprog_highs.py +422 -0
  757. scipy/optimize/_linprog_ip.py +1141 -0
  758. scipy/optimize/_linprog_rs.py +572 -0
  759. scipy/optimize/_linprog_simplex.py +663 -0
  760. scipy/optimize/_linprog_util.py +1521 -0
  761. scipy/optimize/_lsap.cpython-314-darwin.so +0 -0
  762. scipy/optimize/_lsq/__init__.py +5 -0
  763. scipy/optimize/_lsq/bvls.py +183 -0
  764. scipy/optimize/_lsq/common.py +731 -0
  765. scipy/optimize/_lsq/dogbox.py +345 -0
  766. scipy/optimize/_lsq/givens_elimination.cpython-314-darwin.so +0 -0
  767. scipy/optimize/_lsq/least_squares.py +1044 -0
  768. scipy/optimize/_lsq/lsq_linear.py +361 -0
  769. scipy/optimize/_lsq/trf.py +587 -0
  770. scipy/optimize/_lsq/trf_linear.py +249 -0
  771. scipy/optimize/_milp.py +394 -0
  772. scipy/optimize/_minimize.py +1199 -0
  773. scipy/optimize/_minpack.cpython-314-darwin.so +0 -0
  774. scipy/optimize/_minpack_py.py +1178 -0
  775. scipy/optimize/_moduleTNC.cpython-314-darwin.so +0 -0
  776. scipy/optimize/_nnls.py +96 -0
  777. scipy/optimize/_nonlin.py +1634 -0
  778. scipy/optimize/_numdiff.py +963 -0
  779. scipy/optimize/_optimize.py +4169 -0
  780. scipy/optimize/_pava_pybind.cpython-314-darwin.so +0 -0
  781. scipy/optimize/_qap.py +760 -0
  782. scipy/optimize/_remove_redundancy.py +522 -0
  783. scipy/optimize/_root.py +732 -0
  784. scipy/optimize/_root_scalar.py +538 -0
  785. scipy/optimize/_shgo.py +1606 -0
  786. scipy/optimize/_shgo_lib/__init__.py +0 -0
  787. scipy/optimize/_shgo_lib/_complex.py +1225 -0
  788. scipy/optimize/_shgo_lib/_vertex.py +460 -0
  789. scipy/optimize/_slsqp_py.py +603 -0
  790. scipy/optimize/_slsqplib.cpython-314-darwin.so +0 -0
  791. scipy/optimize/_spectral.py +260 -0
  792. scipy/optimize/_tnc.py +438 -0
  793. scipy/optimize/_trlib/__init__.py +12 -0
  794. scipy/optimize/_trlib/_trlib.cpython-314-darwin.so +0 -0
  795. scipy/optimize/_trustregion.py +318 -0
  796. scipy/optimize/_trustregion_constr/__init__.py +6 -0
  797. scipy/optimize/_trustregion_constr/canonical_constraint.py +390 -0
  798. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +231 -0
  799. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +584 -0
  800. scipy/optimize/_trustregion_constr/projections.py +411 -0
  801. scipy/optimize/_trustregion_constr/qp_subproblem.py +637 -0
  802. scipy/optimize/_trustregion_constr/report.py +49 -0
  803. scipy/optimize/_trustregion_constr/tests/__init__.py +0 -0
  804. scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py +296 -0
  805. scipy/optimize/_trustregion_constr/tests/test_nested_minimize.py +39 -0
  806. scipy/optimize/_trustregion_constr/tests/test_projections.py +214 -0
  807. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +645 -0
  808. scipy/optimize/_trustregion_constr/tests/test_report.py +34 -0
  809. scipy/optimize/_trustregion_constr/tr_interior_point.py +361 -0
  810. scipy/optimize/_trustregion_dogleg.py +122 -0
  811. scipy/optimize/_trustregion_exact.py +437 -0
  812. scipy/optimize/_trustregion_krylov.py +65 -0
  813. scipy/optimize/_trustregion_ncg.py +126 -0
  814. scipy/optimize/_tstutils.py +972 -0
  815. scipy/optimize/_zeros.cpython-314-darwin.so +0 -0
  816. scipy/optimize/_zeros_py.py +1475 -0
  817. scipy/optimize/cobyla.py +19 -0
  818. scipy/optimize/cython_optimize/__init__.py +133 -0
  819. scipy/optimize/cython_optimize/_zeros.cpython-314-darwin.so +0 -0
  820. scipy/optimize/cython_optimize/_zeros.pxd +33 -0
  821. scipy/optimize/cython_optimize/c_zeros.pxd +26 -0
  822. scipy/optimize/cython_optimize.pxd +11 -0
  823. scipy/optimize/elementwise.py +38 -0
  824. scipy/optimize/lbfgsb.py +23 -0
  825. scipy/optimize/linesearch.py +18 -0
  826. scipy/optimize/minpack.py +27 -0
  827. scipy/optimize/minpack2.py +17 -0
  828. scipy/optimize/moduleTNC.py +19 -0
  829. scipy/optimize/nonlin.py +29 -0
  830. scipy/optimize/optimize.py +40 -0
  831. scipy/optimize/slsqp.py +22 -0
  832. scipy/optimize/tests/__init__.py +0 -0
  833. scipy/optimize/tests/_cython_examples/extending.pyx +43 -0
  834. scipy/optimize/tests/_cython_examples/meson.build +32 -0
  835. scipy/optimize/tests/test__basinhopping.py +535 -0
  836. scipy/optimize/tests/test__differential_evolution.py +1703 -0
  837. scipy/optimize/tests/test__dual_annealing.py +416 -0
  838. scipy/optimize/tests/test__linprog_clean_inputs.py +312 -0
  839. scipy/optimize/tests/test__numdiff.py +885 -0
  840. scipy/optimize/tests/test__remove_redundancy.py +228 -0
  841. scipy/optimize/tests/test__root.py +124 -0
  842. scipy/optimize/tests/test__shgo.py +1164 -0
  843. scipy/optimize/tests/test__spectral.py +226 -0
  844. scipy/optimize/tests/test_bracket.py +896 -0
  845. scipy/optimize/tests/test_chandrupatla.py +982 -0
  846. scipy/optimize/tests/test_cobyla.py +195 -0
  847. scipy/optimize/tests/test_cobyqa.py +252 -0
  848. scipy/optimize/tests/test_constraint_conversion.py +286 -0
  849. scipy/optimize/tests/test_constraints.py +255 -0
  850. scipy/optimize/tests/test_cython_optimize.py +92 -0
  851. scipy/optimize/tests/test_differentiable_functions.py +1025 -0
  852. scipy/optimize/tests/test_direct.py +321 -0
  853. scipy/optimize/tests/test_extending.py +28 -0
  854. scipy/optimize/tests/test_hessian_update_strategy.py +300 -0
  855. scipy/optimize/tests/test_isotonic_regression.py +167 -0
  856. scipy/optimize/tests/test_lbfgsb_hessinv.py +65 -0
  857. scipy/optimize/tests/test_lbfgsb_setulb.py +122 -0
  858. scipy/optimize/tests/test_least_squares.py +986 -0
  859. scipy/optimize/tests/test_linear_assignment.py +116 -0
  860. scipy/optimize/tests/test_linesearch.py +328 -0
  861. scipy/optimize/tests/test_linprog.py +2577 -0
  862. scipy/optimize/tests/test_lsq_common.py +297 -0
  863. scipy/optimize/tests/test_lsq_linear.py +287 -0
  864. scipy/optimize/tests/test_milp.py +459 -0
  865. scipy/optimize/tests/test_minimize_constrained.py +845 -0
  866. scipy/optimize/tests/test_minpack.py +1194 -0
  867. scipy/optimize/tests/test_nnls.py +469 -0
  868. scipy/optimize/tests/test_nonlin.py +572 -0
  869. scipy/optimize/tests/test_optimize.py +3335 -0
  870. scipy/optimize/tests/test_quadratic_assignment.py +455 -0
  871. scipy/optimize/tests/test_regression.py +40 -0
  872. scipy/optimize/tests/test_slsqp.py +645 -0
  873. scipy/optimize/tests/test_tnc.py +345 -0
  874. scipy/optimize/tests/test_trustregion.py +110 -0
  875. scipy/optimize/tests/test_trustregion_exact.py +351 -0
  876. scipy/optimize/tests/test_trustregion_krylov.py +170 -0
  877. scipy/optimize/tests/test_zeros.py +998 -0
  878. scipy/optimize/tnc.py +22 -0
  879. scipy/optimize/zeros.py +26 -0
  880. scipy/signal/__init__.py +316 -0
  881. scipy/signal/_arraytools.py +264 -0
  882. scipy/signal/_czt.py +575 -0
  883. scipy/signal/_delegators.py +568 -0
  884. scipy/signal/_filter_design.py +5893 -0
  885. scipy/signal/_fir_filter_design.py +1458 -0
  886. scipy/signal/_lti_conversion.py +534 -0
  887. scipy/signal/_ltisys.py +3546 -0
  888. scipy/signal/_max_len_seq.py +139 -0
  889. scipy/signal/_max_len_seq_inner.cpython-314-darwin.so +0 -0
  890. scipy/signal/_peak_finding.py +1310 -0
  891. scipy/signal/_peak_finding_utils.cpython-314-darwin.so +0 -0
  892. scipy/signal/_polyutils.py +172 -0
  893. scipy/signal/_savitzky_golay.py +357 -0
  894. scipy/signal/_short_time_fft.py +2187 -0
  895. scipy/signal/_signal_api.py +30 -0
  896. scipy/signal/_signaltools.py +5309 -0
  897. scipy/signal/_sigtools.cpython-314-darwin.so +0 -0
  898. scipy/signal/_sosfilt.cpython-314-darwin.so +0 -0
  899. scipy/signal/_spectral_py.py +2471 -0
  900. scipy/signal/_spline.cpython-314-darwin.so +0 -0
  901. scipy/signal/_spline.pyi +34 -0
  902. scipy/signal/_spline_filters.py +848 -0
  903. scipy/signal/_support_alternative_backends.py +73 -0
  904. scipy/signal/_upfirdn.py +219 -0
  905. scipy/signal/_upfirdn_apply.cpython-314-darwin.so +0 -0
  906. scipy/signal/_waveforms.py +687 -0
  907. scipy/signal/_wavelets.py +29 -0
  908. scipy/signal/bsplines.py +21 -0
  909. scipy/signal/filter_design.py +28 -0
  910. scipy/signal/fir_filter_design.py +21 -0
  911. scipy/signal/lti_conversion.py +20 -0
  912. scipy/signal/ltisys.py +25 -0
  913. scipy/signal/signaltools.py +27 -0
  914. scipy/signal/spectral.py +21 -0
  915. scipy/signal/spline.py +18 -0
  916. scipy/signal/tests/__init__.py +0 -0
  917. scipy/signal/tests/_scipy_spectral_test_shim.py +311 -0
  918. scipy/signal/tests/mpsig.py +122 -0
  919. scipy/signal/tests/test_array_tools.py +111 -0
  920. scipy/signal/tests/test_bsplines.py +365 -0
  921. scipy/signal/tests/test_cont2discrete.py +424 -0
  922. scipy/signal/tests/test_czt.py +221 -0
  923. scipy/signal/tests/test_dltisys.py +599 -0
  924. scipy/signal/tests/test_filter_design.py +4744 -0
  925. scipy/signal/tests/test_fir_filter_design.py +851 -0
  926. scipy/signal/tests/test_ltisys.py +1225 -0
  927. scipy/signal/tests/test_max_len_seq.py +71 -0
  928. scipy/signal/tests/test_peak_finding.py +915 -0
  929. scipy/signal/tests/test_result_type.py +51 -0
  930. scipy/signal/tests/test_savitzky_golay.py +363 -0
  931. scipy/signal/tests/test_short_time_fft.py +1098 -0
  932. scipy/signal/tests/test_signaltools.py +4729 -0
  933. scipy/signal/tests/test_spectral.py +2103 -0
  934. scipy/signal/tests/test_splines.py +427 -0
  935. scipy/signal/tests/test_upfirdn.py +322 -0
  936. scipy/signal/tests/test_waveforms.py +400 -0
  937. scipy/signal/tests/test_wavelets.py +59 -0
  938. scipy/signal/tests/test_windows.py +987 -0
  939. scipy/signal/waveforms.py +20 -0
  940. scipy/signal/wavelets.py +17 -0
  941. scipy/signal/windows/__init__.py +52 -0
  942. scipy/signal/windows/_windows.py +2513 -0
  943. scipy/signal/windows/windows.py +23 -0
  944. scipy/sparse/__init__.py +350 -0
  945. scipy/sparse/_base.py +1613 -0
  946. scipy/sparse/_bsr.py +880 -0
  947. scipy/sparse/_compressed.py +1328 -0
  948. scipy/sparse/_construct.py +1454 -0
  949. scipy/sparse/_coo.py +1581 -0
  950. scipy/sparse/_csc.py +367 -0
  951. scipy/sparse/_csparsetools.cpython-314-darwin.so +0 -0
  952. scipy/sparse/_csr.py +558 -0
  953. scipy/sparse/_data.py +569 -0
  954. scipy/sparse/_dia.py +677 -0
  955. scipy/sparse/_dok.py +669 -0
  956. scipy/sparse/_extract.py +178 -0
  957. scipy/sparse/_index.py +444 -0
  958. scipy/sparse/_lil.py +632 -0
  959. scipy/sparse/_matrix.py +169 -0
  960. scipy/sparse/_matrix_io.py +167 -0
  961. scipy/sparse/_sparsetools.cpython-314-darwin.so +0 -0
  962. scipy/sparse/_spfuncs.py +76 -0
  963. scipy/sparse/_sputils.py +632 -0
  964. scipy/sparse/base.py +24 -0
  965. scipy/sparse/bsr.py +22 -0
  966. scipy/sparse/compressed.py +20 -0
  967. scipy/sparse/construct.py +38 -0
  968. scipy/sparse/coo.py +23 -0
  969. scipy/sparse/csc.py +22 -0
  970. scipy/sparse/csgraph/__init__.py +210 -0
  971. scipy/sparse/csgraph/_flow.cpython-314-darwin.so +0 -0
  972. scipy/sparse/csgraph/_laplacian.py +563 -0
  973. scipy/sparse/csgraph/_matching.cpython-314-darwin.so +0 -0
  974. scipy/sparse/csgraph/_min_spanning_tree.cpython-314-darwin.so +0 -0
  975. scipy/sparse/csgraph/_reordering.cpython-314-darwin.so +0 -0
  976. scipy/sparse/csgraph/_shortest_path.cpython-314-darwin.so +0 -0
  977. scipy/sparse/csgraph/_tools.cpython-314-darwin.so +0 -0
  978. scipy/sparse/csgraph/_traversal.cpython-314-darwin.so +0 -0
  979. scipy/sparse/csgraph/_validation.py +66 -0
  980. scipy/sparse/csgraph/tests/__init__.py +0 -0
  981. scipy/sparse/csgraph/tests/test_connected_components.py +119 -0
  982. scipy/sparse/csgraph/tests/test_conversions.py +61 -0
  983. scipy/sparse/csgraph/tests/test_flow.py +209 -0
  984. scipy/sparse/csgraph/tests/test_graph_laplacian.py +368 -0
  985. scipy/sparse/csgraph/tests/test_matching.py +307 -0
  986. scipy/sparse/csgraph/tests/test_pydata_sparse.py +197 -0
  987. scipy/sparse/csgraph/tests/test_reordering.py +70 -0
  988. scipy/sparse/csgraph/tests/test_shortest_path.py +540 -0
  989. scipy/sparse/csgraph/tests/test_spanning_tree.py +66 -0
  990. scipy/sparse/csgraph/tests/test_traversal.py +148 -0
  991. scipy/sparse/csr.py +22 -0
  992. scipy/sparse/data.py +18 -0
  993. scipy/sparse/dia.py +22 -0
  994. scipy/sparse/dok.py +22 -0
  995. scipy/sparse/extract.py +23 -0
  996. scipy/sparse/lil.py +22 -0
  997. scipy/sparse/linalg/__init__.py +148 -0
  998. scipy/sparse/linalg/_dsolve/__init__.py +71 -0
  999. scipy/sparse/linalg/_dsolve/_add_newdocs.py +147 -0
  1000. scipy/sparse/linalg/_dsolve/_superlu.cpython-314-darwin.so +0 -0
  1001. scipy/sparse/linalg/_dsolve/linsolve.py +882 -0
  1002. scipy/sparse/linalg/_dsolve/tests/__init__.py +0 -0
  1003. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +928 -0
  1004. scipy/sparse/linalg/_eigen/__init__.py +22 -0
  1005. scipy/sparse/linalg/_eigen/_svds.py +540 -0
  1006. scipy/sparse/linalg/_eigen/_svds_doc.py +382 -0
  1007. scipy/sparse/linalg/_eigen/arpack/COPYING +45 -0
  1008. scipy/sparse/linalg/_eigen/arpack/__init__.py +20 -0
  1009. scipy/sparse/linalg/_eigen/arpack/_arpack.cpython-314-darwin.so +0 -0
  1010. scipy/sparse/linalg/_eigen/arpack/arpack.py +1706 -0
  1011. scipy/sparse/linalg/_eigen/arpack/tests/__init__.py +0 -0
  1012. scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py +717 -0
  1013. scipy/sparse/linalg/_eigen/lobpcg/__init__.py +16 -0
  1014. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +1110 -0
  1015. scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py +0 -0
  1016. scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py +725 -0
  1017. scipy/sparse/linalg/_eigen/tests/__init__.py +0 -0
  1018. scipy/sparse/linalg/_eigen/tests/test_svds.py +886 -0
  1019. scipy/sparse/linalg/_expm_multiply.py +816 -0
  1020. scipy/sparse/linalg/_interface.py +920 -0
  1021. scipy/sparse/linalg/_isolve/__init__.py +20 -0
  1022. scipy/sparse/linalg/_isolve/_gcrotmk.py +503 -0
  1023. scipy/sparse/linalg/_isolve/iterative.py +1051 -0
  1024. scipy/sparse/linalg/_isolve/lgmres.py +230 -0
  1025. scipy/sparse/linalg/_isolve/lsmr.py +486 -0
  1026. scipy/sparse/linalg/_isolve/lsqr.py +589 -0
  1027. scipy/sparse/linalg/_isolve/minres.py +372 -0
  1028. scipy/sparse/linalg/_isolve/tests/__init__.py +0 -0
  1029. scipy/sparse/linalg/_isolve/tests/test_gcrotmk.py +183 -0
  1030. scipy/sparse/linalg/_isolve/tests/test_iterative.py +809 -0
  1031. scipy/sparse/linalg/_isolve/tests/test_lgmres.py +225 -0
  1032. scipy/sparse/linalg/_isolve/tests/test_lsmr.py +185 -0
  1033. scipy/sparse/linalg/_isolve/tests/test_lsqr.py +120 -0
  1034. scipy/sparse/linalg/_isolve/tests/test_minres.py +97 -0
  1035. scipy/sparse/linalg/_isolve/tests/test_utils.py +9 -0
  1036. scipy/sparse/linalg/_isolve/tfqmr.py +179 -0
  1037. scipy/sparse/linalg/_isolve/utils.py +121 -0
  1038. scipy/sparse/linalg/_matfuncs.py +940 -0
  1039. scipy/sparse/linalg/_norm.py +195 -0
  1040. scipy/sparse/linalg/_onenormest.py +467 -0
  1041. scipy/sparse/linalg/_propack/_cpropack.cpython-314-darwin.so +0 -0
  1042. scipy/sparse/linalg/_propack/_dpropack.cpython-314-darwin.so +0 -0
  1043. scipy/sparse/linalg/_propack/_spropack.cpython-314-darwin.so +0 -0
  1044. scipy/sparse/linalg/_propack/_zpropack.cpython-314-darwin.so +0 -0
  1045. scipy/sparse/linalg/_special_sparse_arrays.py +949 -0
  1046. scipy/sparse/linalg/_svdp.py +309 -0
  1047. scipy/sparse/linalg/dsolve.py +22 -0
  1048. scipy/sparse/linalg/eigen.py +21 -0
  1049. scipy/sparse/linalg/interface.py +20 -0
  1050. scipy/sparse/linalg/isolve.py +22 -0
  1051. scipy/sparse/linalg/matfuncs.py +18 -0
  1052. scipy/sparse/linalg/tests/__init__.py +0 -0
  1053. scipy/sparse/linalg/tests/propack_test_data.npz +0 -0
  1054. scipy/sparse/linalg/tests/test_expm_multiply.py +367 -0
  1055. scipy/sparse/linalg/tests/test_interface.py +561 -0
  1056. scipy/sparse/linalg/tests/test_matfuncs.py +592 -0
  1057. scipy/sparse/linalg/tests/test_norm.py +154 -0
  1058. scipy/sparse/linalg/tests/test_onenormest.py +252 -0
  1059. scipy/sparse/linalg/tests/test_propack.py +165 -0
  1060. scipy/sparse/linalg/tests/test_pydata_sparse.py +272 -0
  1061. scipy/sparse/linalg/tests/test_special_sparse_arrays.py +337 -0
  1062. scipy/sparse/sparsetools.py +17 -0
  1063. scipy/sparse/spfuncs.py +17 -0
  1064. scipy/sparse/sputils.py +17 -0
  1065. scipy/sparse/tests/__init__.py +0 -0
  1066. scipy/sparse/tests/data/csc_py2.npz +0 -0
  1067. scipy/sparse/tests/data/csc_py3.npz +0 -0
  1068. scipy/sparse/tests/test_arithmetic1d.py +341 -0
  1069. scipy/sparse/tests/test_array_api.py +561 -0
  1070. scipy/sparse/tests/test_base.py +5870 -0
  1071. scipy/sparse/tests/test_common1d.py +447 -0
  1072. scipy/sparse/tests/test_construct.py +872 -0
  1073. scipy/sparse/tests/test_coo.py +1119 -0
  1074. scipy/sparse/tests/test_csc.py +98 -0
  1075. scipy/sparse/tests/test_csr.py +214 -0
  1076. scipy/sparse/tests/test_dok.py +209 -0
  1077. scipy/sparse/tests/test_extract.py +51 -0
  1078. scipy/sparse/tests/test_indexing1d.py +603 -0
  1079. scipy/sparse/tests/test_matrix_io.py +109 -0
  1080. scipy/sparse/tests/test_minmax1d.py +128 -0
  1081. scipy/sparse/tests/test_sparsetools.py +344 -0
  1082. scipy/sparse/tests/test_spfuncs.py +97 -0
  1083. scipy/sparse/tests/test_sputils.py +424 -0
  1084. scipy/spatial/__init__.py +129 -0
  1085. scipy/spatial/_ckdtree.cpython-314-darwin.so +0 -0
  1086. scipy/spatial/_distance_pybind.cpython-314-darwin.so +0 -0
  1087. scipy/spatial/_distance_wrap.cpython-314-darwin.so +0 -0
  1088. scipy/spatial/_geometric_slerp.py +238 -0
  1089. scipy/spatial/_hausdorff.cpython-314-darwin.so +0 -0
  1090. scipy/spatial/_kdtree.py +920 -0
  1091. scipy/spatial/_plotutils.py +274 -0
  1092. scipy/spatial/_procrustes.py +132 -0
  1093. scipy/spatial/_qhull.cpython-314-darwin.so +0 -0
  1094. scipy/spatial/_qhull.pyi +213 -0
  1095. scipy/spatial/_spherical_voronoi.py +341 -0
  1096. scipy/spatial/_voronoi.cpython-314-darwin.so +0 -0
  1097. scipy/spatial/_voronoi.pyi +4 -0
  1098. scipy/spatial/ckdtree.py +18 -0
  1099. scipy/spatial/distance.py +3147 -0
  1100. scipy/spatial/distance.pyi +210 -0
  1101. scipy/spatial/kdtree.py +25 -0
  1102. scipy/spatial/qhull.py +25 -0
  1103. scipy/spatial/tests/__init__.py +0 -0
  1104. scipy/spatial/tests/data/cdist-X1.txt +10 -0
  1105. scipy/spatial/tests/data/cdist-X2.txt +20 -0
  1106. scipy/spatial/tests/data/degenerate_pointset.npz +0 -0
  1107. scipy/spatial/tests/data/iris.txt +150 -0
  1108. scipy/spatial/tests/data/pdist-boolean-inp.txt +20 -0
  1109. scipy/spatial/tests/data/pdist-chebyshev-ml-iris.txt +1 -0
  1110. scipy/spatial/tests/data/pdist-chebyshev-ml.txt +1 -0
  1111. scipy/spatial/tests/data/pdist-cityblock-ml-iris.txt +1 -0
  1112. scipy/spatial/tests/data/pdist-cityblock-ml.txt +1 -0
  1113. scipy/spatial/tests/data/pdist-correlation-ml-iris.txt +1 -0
  1114. scipy/spatial/tests/data/pdist-correlation-ml.txt +1 -0
  1115. scipy/spatial/tests/data/pdist-cosine-ml-iris.txt +1 -0
  1116. scipy/spatial/tests/data/pdist-cosine-ml.txt +1 -0
  1117. scipy/spatial/tests/data/pdist-double-inp.txt +20 -0
  1118. scipy/spatial/tests/data/pdist-euclidean-ml-iris.txt +1 -0
  1119. scipy/spatial/tests/data/pdist-euclidean-ml.txt +1 -0
  1120. scipy/spatial/tests/data/pdist-hamming-ml.txt +1 -0
  1121. scipy/spatial/tests/data/pdist-jaccard-ml.txt +1 -0
  1122. scipy/spatial/tests/data/pdist-jensenshannon-ml-iris.txt +1 -0
  1123. scipy/spatial/tests/data/pdist-jensenshannon-ml.txt +1 -0
  1124. scipy/spatial/tests/data/pdist-minkowski-3.2-ml-iris.txt +1 -0
  1125. scipy/spatial/tests/data/pdist-minkowski-3.2-ml.txt +1 -0
  1126. scipy/spatial/tests/data/pdist-minkowski-5.8-ml-iris.txt +1 -0
  1127. scipy/spatial/tests/data/pdist-seuclidean-ml-iris.txt +1 -0
  1128. scipy/spatial/tests/data/pdist-seuclidean-ml.txt +1 -0
  1129. scipy/spatial/tests/data/pdist-spearman-ml.txt +1 -0
  1130. scipy/spatial/tests/data/random-bool-data.txt +100 -0
  1131. scipy/spatial/tests/data/random-double-data.txt +100 -0
  1132. scipy/spatial/tests/data/random-int-data.txt +100 -0
  1133. scipy/spatial/tests/data/random-uint-data.txt +100 -0
  1134. scipy/spatial/tests/data/selfdual-4d-polytope.txt +27 -0
  1135. scipy/spatial/tests/test__plotutils.py +91 -0
  1136. scipy/spatial/tests/test__procrustes.py +116 -0
  1137. scipy/spatial/tests/test_distance.py +2388 -0
  1138. scipy/spatial/tests/test_hausdorff.py +199 -0
  1139. scipy/spatial/tests/test_kdtree.py +1536 -0
  1140. scipy/spatial/tests/test_qhull.py +1313 -0
  1141. scipy/spatial/tests/test_slerp.py +417 -0
  1142. scipy/spatial/tests/test_spherical_voronoi.py +358 -0
  1143. scipy/spatial/transform/__init__.py +31 -0
  1144. scipy/spatial/transform/_rigid_transform.cpython-314-darwin.so +0 -0
  1145. scipy/spatial/transform/_rotation.cpython-314-darwin.so +0 -0
  1146. scipy/spatial/transform/_rotation_groups.py +140 -0
  1147. scipy/spatial/transform/_rotation_spline.py +460 -0
  1148. scipy/spatial/transform/rotation.py +21 -0
  1149. scipy/spatial/transform/tests/__init__.py +0 -0
  1150. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  1151. scipy/spatial/transform/tests/test_rotation.py +2569 -0
  1152. scipy/spatial/transform/tests/test_rotation_groups.py +169 -0
  1153. scipy/spatial/transform/tests/test_rotation_spline.py +183 -0
  1154. scipy/special/__init__.pxd +1 -0
  1155. scipy/special/__init__.py +841 -0
  1156. scipy/special/_add_newdocs.py +9961 -0
  1157. scipy/special/_basic.py +3576 -0
  1158. scipy/special/_comb.cpython-314-darwin.so +0 -0
  1159. scipy/special/_ellip_harm.py +214 -0
  1160. scipy/special/_ellip_harm_2.cpython-314-darwin.so +0 -0
  1161. scipy/special/_gufuncs.cpython-314-darwin.so +0 -0
  1162. scipy/special/_input_validation.py +17 -0
  1163. scipy/special/_lambertw.py +149 -0
  1164. scipy/special/_logsumexp.py +426 -0
  1165. scipy/special/_mptestutils.py +453 -0
  1166. scipy/special/_multiufuncs.py +610 -0
  1167. scipy/special/_orthogonal.py +2592 -0
  1168. scipy/special/_orthogonal.pyi +330 -0
  1169. scipy/special/_precompute/__init__.py +0 -0
  1170. scipy/special/_precompute/cosine_cdf.py +17 -0
  1171. scipy/special/_precompute/expn_asy.py +54 -0
  1172. scipy/special/_precompute/gammainc_asy.py +116 -0
  1173. scipy/special/_precompute/gammainc_data.py +124 -0
  1174. scipy/special/_precompute/hyp2f1_data.py +484 -0
  1175. scipy/special/_precompute/lambertw.py +68 -0
  1176. scipy/special/_precompute/loggamma.py +43 -0
  1177. scipy/special/_precompute/struve_convergence.py +131 -0
  1178. scipy/special/_precompute/utils.py +38 -0
  1179. scipy/special/_precompute/wright_bessel.py +342 -0
  1180. scipy/special/_precompute/wright_bessel_data.py +152 -0
  1181. scipy/special/_precompute/wrightomega.py +41 -0
  1182. scipy/special/_precompute/zetac.py +27 -0
  1183. scipy/special/_sf_error.py +15 -0
  1184. scipy/special/_specfun.cpython-314-darwin.so +0 -0
  1185. scipy/special/_special_ufuncs.cpython-314-darwin.so +0 -0
  1186. scipy/special/_spfun_stats.py +106 -0
  1187. scipy/special/_spherical_bessel.py +397 -0
  1188. scipy/special/_support_alternative_backends.py +295 -0
  1189. scipy/special/_test_internal.cpython-314-darwin.so +0 -0
  1190. scipy/special/_test_internal.pyi +9 -0
  1191. scipy/special/_testutils.py +321 -0
  1192. scipy/special/_ufuncs.cpython-314-darwin.so +0 -0
  1193. scipy/special/_ufuncs.pyi +522 -0
  1194. scipy/special/_ufuncs.pyx +13173 -0
  1195. scipy/special/_ufuncs_cxx.cpython-314-darwin.so +0 -0
  1196. scipy/special/_ufuncs_cxx.pxd +142 -0
  1197. scipy/special/_ufuncs_cxx.pyx +427 -0
  1198. scipy/special/_ufuncs_cxx_defs.h +147 -0
  1199. scipy/special/_ufuncs_defs.h +57 -0
  1200. scipy/special/add_newdocs.py +15 -0
  1201. scipy/special/basic.py +87 -0
  1202. scipy/special/cython_special.cpython-314-darwin.so +0 -0
  1203. scipy/special/cython_special.pxd +259 -0
  1204. scipy/special/cython_special.pyi +3 -0
  1205. scipy/special/orthogonal.py +45 -0
  1206. scipy/special/sf_error.py +20 -0
  1207. scipy/special/specfun.py +24 -0
  1208. scipy/special/spfun_stats.py +17 -0
  1209. scipy/special/tests/__init__.py +0 -0
  1210. scipy/special/tests/_cython_examples/extending.pyx +12 -0
  1211. scipy/special/tests/_cython_examples/meson.build +34 -0
  1212. scipy/special/tests/data/__init__.py +0 -0
  1213. scipy/special/tests/data/boost.npz +0 -0
  1214. scipy/special/tests/data/gsl.npz +0 -0
  1215. scipy/special/tests/data/local.npz +0 -0
  1216. scipy/special/tests/test_basic.py +4815 -0
  1217. scipy/special/tests/test_bdtr.py +112 -0
  1218. scipy/special/tests/test_boost_ufuncs.py +64 -0
  1219. scipy/special/tests/test_boxcox.py +125 -0
  1220. scipy/special/tests/test_cdflib.py +712 -0
  1221. scipy/special/tests/test_cdft_asymptotic.py +49 -0
  1222. scipy/special/tests/test_cephes_intp_cast.py +29 -0
  1223. scipy/special/tests/test_cosine_distr.py +83 -0
  1224. scipy/special/tests/test_cython_special.py +363 -0
  1225. scipy/special/tests/test_data.py +719 -0
  1226. scipy/special/tests/test_dd.py +42 -0
  1227. scipy/special/tests/test_digamma.py +45 -0
  1228. scipy/special/tests/test_ellip_harm.py +278 -0
  1229. scipy/special/tests/test_erfinv.py +89 -0
  1230. scipy/special/tests/test_exponential_integrals.py +118 -0
  1231. scipy/special/tests/test_extending.py +28 -0
  1232. scipy/special/tests/test_faddeeva.py +85 -0
  1233. scipy/special/tests/test_gamma.py +12 -0
  1234. scipy/special/tests/test_gammainc.py +152 -0
  1235. scipy/special/tests/test_hyp2f1.py +2566 -0
  1236. scipy/special/tests/test_hypergeometric.py +234 -0
  1237. scipy/special/tests/test_iv_ratio.py +249 -0
  1238. scipy/special/tests/test_kolmogorov.py +491 -0
  1239. scipy/special/tests/test_lambertw.py +109 -0
  1240. scipy/special/tests/test_legendre.py +1518 -0
  1241. scipy/special/tests/test_log1mexp.py +85 -0
  1242. scipy/special/tests/test_loggamma.py +70 -0
  1243. scipy/special/tests/test_logit.py +162 -0
  1244. scipy/special/tests/test_logsumexp.py +469 -0
  1245. scipy/special/tests/test_mpmath.py +2293 -0
  1246. scipy/special/tests/test_nan_inputs.py +65 -0
  1247. scipy/special/tests/test_ndtr.py +77 -0
  1248. scipy/special/tests/test_ndtri_exp.py +94 -0
  1249. scipy/special/tests/test_orthogonal.py +821 -0
  1250. scipy/special/tests/test_orthogonal_eval.py +275 -0
  1251. scipy/special/tests/test_owens_t.py +53 -0
  1252. scipy/special/tests/test_pcf.py +24 -0
  1253. scipy/special/tests/test_pdtr.py +48 -0
  1254. scipy/special/tests/test_powm1.py +65 -0
  1255. scipy/special/tests/test_precompute_expn_asy.py +24 -0
  1256. scipy/special/tests/test_precompute_gammainc.py +108 -0
  1257. scipy/special/tests/test_precompute_utils.py +36 -0
  1258. scipy/special/tests/test_round.py +18 -0
  1259. scipy/special/tests/test_sf_error.py +146 -0
  1260. scipy/special/tests/test_sici.py +36 -0
  1261. scipy/special/tests/test_specfun.py +48 -0
  1262. scipy/special/tests/test_spence.py +32 -0
  1263. scipy/special/tests/test_spfun_stats.py +61 -0
  1264. scipy/special/tests/test_sph_harm.py +85 -0
  1265. scipy/special/tests/test_spherical_bessel.py +400 -0
  1266. scipy/special/tests/test_support_alternative_backends.py +248 -0
  1267. scipy/special/tests/test_trig.py +72 -0
  1268. scipy/special/tests/test_ufunc_signatures.py +46 -0
  1269. scipy/special/tests/test_wright_bessel.py +205 -0
  1270. scipy/special/tests/test_wrightomega.py +117 -0
  1271. scipy/special/tests/test_zeta.py +301 -0
  1272. scipy/stats/__init__.py +670 -0
  1273. scipy/stats/_ansari_swilk_statistics.cpython-314-darwin.so +0 -0
  1274. scipy/stats/_axis_nan_policy.py +692 -0
  1275. scipy/stats/_biasedurn.cpython-314-darwin.so +0 -0
  1276. scipy/stats/_biasedurn.pxd +27 -0
  1277. scipy/stats/_binned_statistic.py +795 -0
  1278. scipy/stats/_binomtest.py +375 -0
  1279. scipy/stats/_bws_test.py +177 -0
  1280. scipy/stats/_censored_data.py +459 -0
  1281. scipy/stats/_common.py +5 -0
  1282. scipy/stats/_constants.py +42 -0
  1283. scipy/stats/_continued_fraction.py +387 -0
  1284. scipy/stats/_continuous_distns.py +12486 -0
  1285. scipy/stats/_correlation.py +210 -0
  1286. scipy/stats/_covariance.py +636 -0
  1287. scipy/stats/_crosstab.py +204 -0
  1288. scipy/stats/_discrete_distns.py +2098 -0
  1289. scipy/stats/_distn_infrastructure.py +4201 -0
  1290. scipy/stats/_distr_params.py +299 -0
  1291. scipy/stats/_distribution_infrastructure.py +5750 -0
  1292. scipy/stats/_entropy.py +428 -0
  1293. scipy/stats/_finite_differences.py +145 -0
  1294. scipy/stats/_fit.py +1351 -0
  1295. scipy/stats/_hypotests.py +2060 -0
  1296. scipy/stats/_kde.py +732 -0
  1297. scipy/stats/_ksstats.py +600 -0
  1298. scipy/stats/_levy_stable/__init__.py +1231 -0
  1299. scipy/stats/_levy_stable/levyst.cpython-314-darwin.so +0 -0
  1300. scipy/stats/_mannwhitneyu.py +492 -0
  1301. scipy/stats/_mgc.py +550 -0
  1302. scipy/stats/_morestats.py +4626 -0
  1303. scipy/stats/_mstats_basic.py +3658 -0
  1304. scipy/stats/_mstats_extras.py +521 -0
  1305. scipy/stats/_multicomp.py +449 -0
  1306. scipy/stats/_multivariate.py +7281 -0
  1307. scipy/stats/_new_distributions.py +452 -0
  1308. scipy/stats/_odds_ratio.py +466 -0
  1309. scipy/stats/_page_trend_test.py +486 -0
  1310. scipy/stats/_probability_distribution.py +1964 -0
  1311. scipy/stats/_qmc.py +2956 -0
  1312. scipy/stats/_qmc_cy.cpython-314-darwin.so +0 -0
  1313. scipy/stats/_qmc_cy.pyi +54 -0
  1314. scipy/stats/_qmvnt.py +454 -0
  1315. scipy/stats/_qmvnt_cy.cpython-314-darwin.so +0 -0
  1316. scipy/stats/_quantile.py +335 -0
  1317. scipy/stats/_rcont/__init__.py +4 -0
  1318. scipy/stats/_rcont/rcont.cpython-314-darwin.so +0 -0
  1319. scipy/stats/_relative_risk.py +263 -0
  1320. scipy/stats/_resampling.py +2352 -0
  1321. scipy/stats/_result_classes.py +40 -0
  1322. scipy/stats/_sampling.py +1314 -0
  1323. scipy/stats/_sensitivity_analysis.py +713 -0
  1324. scipy/stats/_sobol.cpython-314-darwin.so +0 -0
  1325. scipy/stats/_sobol.pyi +54 -0
  1326. scipy/stats/_sobol_direction_numbers.npz +0 -0
  1327. scipy/stats/_stats.cpython-314-darwin.so +0 -0
  1328. scipy/stats/_stats.pxd +10 -0
  1329. scipy/stats/_stats_mstats_common.py +322 -0
  1330. scipy/stats/_stats_py.py +11089 -0
  1331. scipy/stats/_stats_pythran.cpython-314-darwin.so +0 -0
  1332. scipy/stats/_survival.py +683 -0
  1333. scipy/stats/_tukeylambda_stats.py +199 -0
  1334. scipy/stats/_unuran/__init__.py +0 -0
  1335. scipy/stats/_unuran/unuran_wrapper.cpython-314-darwin.so +0 -0
  1336. scipy/stats/_unuran/unuran_wrapper.pyi +179 -0
  1337. scipy/stats/_variation.py +126 -0
  1338. scipy/stats/_warnings_errors.py +38 -0
  1339. scipy/stats/_wilcoxon.py +265 -0
  1340. scipy/stats/biasedurn.py +16 -0
  1341. scipy/stats/contingency.py +521 -0
  1342. scipy/stats/distributions.py +24 -0
  1343. scipy/stats/kde.py +18 -0
  1344. scipy/stats/morestats.py +27 -0
  1345. scipy/stats/mstats.py +140 -0
  1346. scipy/stats/mstats_basic.py +42 -0
  1347. scipy/stats/mstats_extras.py +25 -0
  1348. scipy/stats/mvn.py +17 -0
  1349. scipy/stats/qmc.py +236 -0
  1350. scipy/stats/sampling.py +73 -0
  1351. scipy/stats/stats.py +41 -0
  1352. scipy/stats/tests/__init__.py +0 -0
  1353. scipy/stats/tests/common_tests.py +356 -0
  1354. scipy/stats/tests/data/_mvt.py +171 -0
  1355. scipy/stats/tests/data/fisher_exact_results_from_r.py +607 -0
  1356. scipy/stats/tests/data/jf_skew_t_gamlss_pdf_data.npy +0 -0
  1357. scipy/stats/tests/data/levy_stable/stable-Z1-cdf-sample-data.npy +0 -0
  1358. scipy/stats/tests/data/levy_stable/stable-Z1-pdf-sample-data.npy +0 -0
  1359. scipy/stats/tests/data/levy_stable/stable-loc-scale-sample-data.npy +0 -0
  1360. scipy/stats/tests/data/nist_anova/AtmWtAg.dat +108 -0
  1361. scipy/stats/tests/data/nist_anova/SiRstv.dat +85 -0
  1362. scipy/stats/tests/data/nist_anova/SmLs01.dat +249 -0
  1363. scipy/stats/tests/data/nist_anova/SmLs02.dat +1869 -0
  1364. scipy/stats/tests/data/nist_anova/SmLs03.dat +18069 -0
  1365. scipy/stats/tests/data/nist_anova/SmLs04.dat +249 -0
  1366. scipy/stats/tests/data/nist_anova/SmLs05.dat +1869 -0
  1367. scipy/stats/tests/data/nist_anova/SmLs06.dat +18069 -0
  1368. scipy/stats/tests/data/nist_anova/SmLs07.dat +249 -0
  1369. scipy/stats/tests/data/nist_anova/SmLs08.dat +1869 -0
  1370. scipy/stats/tests/data/nist_anova/SmLs09.dat +18069 -0
  1371. scipy/stats/tests/data/nist_linregress/Norris.dat +97 -0
  1372. scipy/stats/tests/data/rel_breitwigner_pdf_sample_data_ROOT.npy +0 -0
  1373. scipy/stats/tests/data/studentized_range_mpmath_ref.json +1499 -0
  1374. scipy/stats/tests/test_axis_nan_policy.py +1388 -0
  1375. scipy/stats/tests/test_binned_statistic.py +568 -0
  1376. scipy/stats/tests/test_censored_data.py +152 -0
  1377. scipy/stats/tests/test_contingency.py +294 -0
  1378. scipy/stats/tests/test_continued_fraction.py +173 -0
  1379. scipy/stats/tests/test_continuous.py +2198 -0
  1380. scipy/stats/tests/test_continuous_basic.py +1053 -0
  1381. scipy/stats/tests/test_continuous_fit_censored.py +683 -0
  1382. scipy/stats/tests/test_correlation.py +80 -0
  1383. scipy/stats/tests/test_crosstab.py +115 -0
  1384. scipy/stats/tests/test_discrete_basic.py +580 -0
  1385. scipy/stats/tests/test_discrete_distns.py +700 -0
  1386. scipy/stats/tests/test_distributions.py +10413 -0
  1387. scipy/stats/tests/test_entropy.py +322 -0
  1388. scipy/stats/tests/test_fast_gen_inversion.py +435 -0
  1389. scipy/stats/tests/test_fit.py +1090 -0
  1390. scipy/stats/tests/test_hypotests.py +1991 -0
  1391. scipy/stats/tests/test_kdeoth.py +676 -0
  1392. scipy/stats/tests/test_marray.py +289 -0
  1393. scipy/stats/tests/test_mgc.py +217 -0
  1394. scipy/stats/tests/test_morestats.py +3259 -0
  1395. scipy/stats/tests/test_mstats_basic.py +2071 -0
  1396. scipy/stats/tests/test_mstats_extras.py +172 -0
  1397. scipy/stats/tests/test_multicomp.py +405 -0
  1398. scipy/stats/tests/test_multivariate.py +4381 -0
  1399. scipy/stats/tests/test_odds_ratio.py +148 -0
  1400. scipy/stats/tests/test_qmc.py +1492 -0
  1401. scipy/stats/tests/test_quantile.py +199 -0
  1402. scipy/stats/tests/test_rank.py +345 -0
  1403. scipy/stats/tests/test_relative_risk.py +95 -0
  1404. scipy/stats/tests/test_resampling.py +2000 -0
  1405. scipy/stats/tests/test_sampling.py +1450 -0
  1406. scipy/stats/tests/test_sensitivity_analysis.py +310 -0
  1407. scipy/stats/tests/test_stats.py +9707 -0
  1408. scipy/stats/tests/test_survival.py +466 -0
  1409. scipy/stats/tests/test_tukeylambda_stats.py +85 -0
  1410. scipy/stats/tests/test_variation.py +216 -0
  1411. scipy/version.py +12 -0
  1412. scipy-1.16.1.dist-info/LICENSE.txt +934 -0
  1413. scipy-1.16.1.dist-info/METADATA +1083 -0
  1414. scipy-1.16.1.dist-info/RECORD +1415 -0
  1415. scipy-1.16.1.dist-info/WHEEL +6 -0
@@ -0,0 +1,171 @@
1
+ """Delegation to existing implementations for Public API Functions."""
2
+
3
+ from collections.abc import Sequence
4
+ from types import ModuleType
5
+ from typing import Literal
6
+
7
+ from ._lib import _funcs
8
+ from ._lib._utils._compat import (
9
+ array_namespace,
10
+ is_cupy_namespace,
11
+ is_dask_namespace,
12
+ is_jax_namespace,
13
+ is_numpy_namespace,
14
+ is_pydata_sparse_namespace,
15
+ is_torch_namespace,
16
+ )
17
+ from ._lib._utils._helpers import asarrays
18
+ from ._lib._utils._typing import Array
19
+
20
+ __all__ = ["isclose", "pad"]
21
+
22
+
23
+ def isclose(
24
+ a: Array | complex,
25
+ b: Array | complex,
26
+ *,
27
+ rtol: float = 1e-05,
28
+ atol: float = 1e-08,
29
+ equal_nan: bool = False,
30
+ xp: ModuleType | None = None,
31
+ ) -> Array:
32
+ """
33
+ Return a boolean array where two arrays are element-wise equal within a tolerance.
34
+
35
+ The tolerance values are positive, typically very small numbers. The relative
36
+ difference ``(rtol * abs(b))`` and the absolute difference `atol` are added together
37
+ to compare against the absolute difference between `a` and `b`.
38
+
39
+ NaNs are treated as equal if they are in the same place and if ``equal_nan=True``.
40
+ Infs are treated as equal if they are in the same place and of the same sign in both
41
+ arrays.
42
+
43
+ Parameters
44
+ ----------
45
+ a, b : Array | int | float | complex | bool
46
+ Input objects to compare. At least one must be an array.
47
+ rtol : array_like, optional
48
+ The relative tolerance parameter (see Notes).
49
+ atol : array_like, optional
50
+ The absolute tolerance parameter (see Notes).
51
+ equal_nan : bool, optional
52
+ Whether to compare NaN's as equal. If True, NaN's in `a` will be considered
53
+ equal to NaN's in `b` in the output array.
54
+ xp : array_namespace, optional
55
+ The standard-compatible namespace for `a` and `b`. Default: infer.
56
+
57
+ Returns
58
+ -------
59
+ Array
60
+ A boolean array of shape broadcasted from `a` and `b`, containing ``True`` where
61
+ `a` is close to `b`, and ``False`` otherwise.
62
+
63
+ Warnings
64
+ --------
65
+ The default `atol` is not appropriate for comparing numbers with magnitudes much
66
+ smaller than one (see notes).
67
+
68
+ See Also
69
+ --------
70
+ math.isclose : Similar function in stdlib for Python scalars.
71
+
72
+ Notes
73
+ -----
74
+ For finite values, `isclose` uses the following equation to test whether two
75
+ floating point values are equivalent::
76
+
77
+ absolute(a - b) <= (atol + rtol * absolute(b))
78
+
79
+ Unlike the built-in `math.isclose`,
80
+ the above equation is not symmetric in `a` and `b`,
81
+ so that ``isclose(a, b)`` might be different from ``isclose(b, a)`` in some rare
82
+ cases.
83
+
84
+ The default value of `atol` is not appropriate when the reference value `b` has
85
+ magnitude smaller than one. For example, it is unlikely that ``a = 1e-9`` and
86
+ ``b = 2e-9`` should be considered "close", yet ``isclose(1e-9, 2e-9)`` is ``True``
87
+ with default settings. Be sure to select `atol` for the use case at hand, especially
88
+ for defining the threshold below which a non-zero value in `a` will be considered
89
+ "close" to a very small or zero value in `b`.
90
+
91
+ The comparison of `a` and `b` uses standard broadcasting, which means that `a` and
92
+ `b` need not have the same shape in order for ``isclose(a, b)`` to evaluate to
93
+ ``True``.
94
+
95
+ `isclose` is not defined for non-numeric data types.
96
+ ``bool`` is considered a numeric data-type for this purpose.
97
+ """
98
+ xp = array_namespace(a, b) if xp is None else xp
99
+
100
+ if (
101
+ is_numpy_namespace(xp)
102
+ or is_cupy_namespace(xp)
103
+ or is_dask_namespace(xp)
104
+ or is_jax_namespace(xp)
105
+ ):
106
+ return xp.isclose(a, b, rtol=rtol, atol=atol, equal_nan=equal_nan)
107
+
108
+ if is_torch_namespace(xp):
109
+ a, b = asarrays(a, b, xp=xp) # Array API 2024.12 support
110
+ return xp.isclose(a, b, rtol=rtol, atol=atol, equal_nan=equal_nan)
111
+
112
+ return _funcs.isclose(a, b, rtol=rtol, atol=atol, equal_nan=equal_nan, xp=xp)
113
+
114
+
115
+ def pad(
116
+ x: Array,
117
+ pad_width: int | tuple[int, int] | Sequence[tuple[int, int]],
118
+ mode: Literal["constant"] = "constant",
119
+ *,
120
+ constant_values: complex = 0,
121
+ xp: ModuleType | None = None,
122
+ ) -> Array:
123
+ """
124
+ Pad the input array.
125
+
126
+ Parameters
127
+ ----------
128
+ x : array
129
+ Input array.
130
+ pad_width : int or tuple of ints or sequence of pairs of ints
131
+ Pad the input array with this many elements from each side.
132
+ If a sequence of tuples, ``[(before_0, after_0), ... (before_N, after_N)]``,
133
+ each pair applies to the corresponding axis of ``x``.
134
+ A single tuple, ``(before, after)``, is equivalent to a list of ``x.ndim``
135
+ copies of this tuple.
136
+ mode : str, optional
137
+ Only "constant" mode is currently supported, which pads with
138
+ the value passed to `constant_values`.
139
+ constant_values : python scalar, optional
140
+ Use this value to pad the input. Default is zero.
141
+ xp : array_namespace, optional
142
+ The standard-compatible namespace for `x`. Default: infer.
143
+
144
+ Returns
145
+ -------
146
+ array
147
+ The input array,
148
+ padded with ``pad_width`` elements equal to ``constant_values``.
149
+ """
150
+ xp = array_namespace(x) if xp is None else xp
151
+
152
+ if mode != "constant":
153
+ msg = "Only `'constant'` mode is currently supported"
154
+ raise NotImplementedError(msg)
155
+
156
+ if (
157
+ is_numpy_namespace(xp)
158
+ or is_cupy_namespace(xp)
159
+ or is_jax_namespace(xp)
160
+ or is_pydata_sparse_namespace(xp)
161
+ ):
162
+ return xp.pad(x, pad_width, mode, constant_values=constant_values)
163
+
164
+ # https://github.com/pytorch/pytorch/blob/cf76c05b4dc629ac989d1fb8e789d4fac04a095a/torch/_numpy/_funcs_impl.py#L2045-L2056
165
+ if is_torch_namespace(xp):
166
+ pad_width = xp.asarray(pad_width)
167
+ pad_width = xp.broadcast_to(pad_width, (x.ndim, 2))
168
+ pad_width = xp.flip(pad_width, axis=(0,)).flatten()
169
+ return xp.nn.functional.pad(x, tuple(pad_width), value=constant_values) # type: ignore[arg-type] # pyright: ignore[reportArgumentType]
170
+
171
+ return _funcs.pad(x, pad_width, constant_values=constant_values, xp=xp)
@@ -0,0 +1 @@
1
+ """Internals of array-api-extra."""
@@ -0,0 +1,463 @@
1
+ """Update operations for read-only arrays."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import operator
6
+ from collections.abc import Callable
7
+ from enum import Enum
8
+ from types import ModuleType
9
+ from typing import TYPE_CHECKING, ClassVar, cast
10
+
11
+ from ._utils import _compat
12
+ from ._utils._compat import (
13
+ array_namespace,
14
+ is_dask_array,
15
+ is_jax_array,
16
+ is_torch_array,
17
+ is_writeable_array,
18
+ )
19
+ from ._utils._helpers import meta_namespace
20
+ from ._utils._typing import Array, SetIndex
21
+
22
+ if TYPE_CHECKING: # pragma: no cover
23
+ # TODO import from typing (requires Python >=3.11)
24
+ from typing_extensions import Self
25
+
26
+
27
+ class _AtOp(Enum):
28
+ """Operations for use in `xpx.at`."""
29
+
30
+ SET = "set"
31
+ ADD = "add"
32
+ SUBTRACT = "subtract"
33
+ MULTIPLY = "multiply"
34
+ DIVIDE = "divide"
35
+ POWER = "power"
36
+ MIN = "min"
37
+ MAX = "max"
38
+
39
+ # @override from Python 3.12
40
+ def __str__(self) -> str: # type: ignore[explicit-override] # pyright: ignore[reportImplicitOverride]
41
+ """
42
+ Return string representation (useful for pytest logs).
43
+
44
+ Returns
45
+ -------
46
+ str
47
+ The operation's name.
48
+ """
49
+ return self.value
50
+
51
+
52
+ class Undef(Enum):
53
+ """Sentinel for undefined values."""
54
+
55
+ UNDEF = 0
56
+
57
+
58
+ _undef = Undef.UNDEF
59
+
60
+
61
+ class at: # pylint: disable=invalid-name # numpydoc ignore=PR02
62
+ """
63
+ Update operations for read-only arrays.
64
+
65
+ This implements ``jax.numpy.ndarray.at`` for all writeable
66
+ backends (those that support ``__setitem__``) and routes
67
+ to the ``.at[]`` method for JAX arrays.
68
+
69
+ Parameters
70
+ ----------
71
+ x : array
72
+ Input array.
73
+ idx : index, optional
74
+ Only `array API standard compliant indices
75
+ <https://data-apis.org/array-api/latest/API_specification/indexing.html>`_
76
+ are supported.
77
+
78
+ You may use two alternate syntaxes::
79
+
80
+ >>> import array_api_extra as xpx
81
+ >>> xpx.at(x, idx).set(value) # or add(value), etc.
82
+ >>> xpx.at(x)[idx].set(value)
83
+
84
+ copy : bool, optional
85
+ None (default)
86
+ The array parameter *may* be modified in place if it is
87
+ possible and beneficial for performance.
88
+ You should not reuse it after calling this function.
89
+ True
90
+ Ensure that the inputs are not modified.
91
+ False
92
+ Ensure that the update operation writes back to the input.
93
+ Raise ``ValueError`` if a copy cannot be avoided.
94
+
95
+ xp : array_namespace, optional
96
+ The standard-compatible namespace for `x`. Default: infer.
97
+
98
+ Returns
99
+ -------
100
+ Updated input array.
101
+
102
+ Warnings
103
+ --------
104
+ (a) When you omit the ``copy`` parameter, you should never reuse the parameter
105
+ array later on; ideally, you should reassign it immediately::
106
+
107
+ >>> import array_api_extra as xpx
108
+ >>> x = xpx.at(x, 0).set(2)
109
+
110
+ The above best practice pattern ensures that the behaviour won't change depending
111
+ on whether ``x`` is writeable or not, as the original ``x`` object is dereferenced
112
+ as soon as ``xpx.at`` returns; this way there is no risk to accidentally update it
113
+ twice.
114
+
115
+ On the reverse, the anti-pattern below must be avoided, as it will result in
116
+ different behaviour on read-only versus writeable arrays::
117
+
118
+ >>> x = xp.asarray([0, 0, 0])
119
+ >>> y = xpx.at(x, 0).set(2)
120
+ >>> z = xpx.at(x, 1).set(3)
121
+
122
+ In the above example, both calls to ``xpx.at`` update ``x`` in place *if possible*.
123
+ This causes the behaviour to diverge depending on whether ``x`` is writeable or not:
124
+
125
+ - If ``x`` is writeable, then after the snippet above you'll have
126
+ ``x == y == z == [2, 3, 0]``
127
+ - If ``x`` is read-only, then you'll end up with
128
+ ``x == [0, 0, 0]``, ``y == [2, 0, 0]`` and ``z == [0, 3, 0]``.
129
+
130
+ The correct pattern to use if you want diverging outputs from the same input is
131
+ to enforce copies::
132
+
133
+ >>> x = xp.asarray([0, 0, 0])
134
+ >>> y = xpx.at(x, 0).set(2, copy=True) # Never updates x
135
+ >>> z = xpx.at(x, 1).set(3) # May or may not update x in place
136
+ >>> del x # avoid accidental reuse of x as we don't know its state anymore
137
+
138
+ (b) The array API standard does not support integer array indices.
139
+ The behaviour of update methods when the index is an array of integers is
140
+ undefined and will vary between backends; this is particularly true when the
141
+ index contains multiple occurrences of the same index, e.g.::
142
+
143
+ >>> import numpy as np
144
+ >>> import jax.numpy as jnp
145
+ >>> import array_api_extra as xpx
146
+ >>> xpx.at(np.asarray([123]), np.asarray([0, 0])).add(1)
147
+ array([124])
148
+ >>> xpx.at(jnp.asarray([123]), jnp.asarray([0, 0])).add(1)
149
+ Array([125], dtype=int32)
150
+
151
+ See Also
152
+ --------
153
+ jax.numpy.ndarray.at : Equivalent array method in JAX.
154
+
155
+ Notes
156
+ -----
157
+ `sparse <https://sparse.pydata.org/>`_, as well as read-only arrays from libraries
158
+ not explicitly covered by ``array-api-compat``, are not supported by update
159
+ methods.
160
+
161
+ Boolean masks are supported on Dask and jitted JAX arrays exclusively
162
+ when `idx` has the same shape as `x` and `y` is 0-dimensional.
163
+ Note that this support is not available in JAX's native
164
+ ``x.at[mask].set(y)``.
165
+
166
+ This pattern::
167
+
168
+ >>> mask = m(x)
169
+ >>> x[mask] = f(x[mask])
170
+
171
+ Can't be replaced by `at`, as it won't work on Dask and JAX inside jax.jit::
172
+
173
+ >>> mask = m(x)
174
+ >>> x = xpx.at(x, mask).set(f(x[mask]) # Crash on Dask and jax.jit
175
+
176
+ You should instead use::
177
+
178
+ >>> x = xp.where(m(x), f(x), x)
179
+
180
+ Examples
181
+ --------
182
+ Given either of these equivalent expressions::
183
+
184
+ >>> import array_api_extra as xpx
185
+ >>> x = xpx.at(x)[1].add(2)
186
+ >>> x = xpx.at(x, 1).add(2)
187
+
188
+ If x is a JAX array, they are the same as::
189
+
190
+ >>> x = x.at[1].add(2)
191
+
192
+ If x is a read-only NumPy array, they are the same as::
193
+
194
+ >>> x = x.copy()
195
+ >>> x[1] += 2
196
+
197
+ For other known backends, they are the same as::
198
+
199
+ >>> x[1] += 2
200
+ """
201
+
202
+ _x: Array
203
+ _idx: SetIndex | Undef
204
+ __slots__: ClassVar[tuple[str, ...]] = ("_idx", "_x")
205
+
206
+ def __init__(
207
+ self, x: Array, idx: SetIndex | Undef = _undef, /
208
+ ) -> None: # numpydoc ignore=GL08
209
+ self._x = x
210
+ self._idx = idx
211
+
212
+ def __getitem__(self, idx: SetIndex, /) -> Self: # numpydoc ignore=PR01,RT01
213
+ """
214
+ Allow for the alternate syntax ``at(x)[start:stop:step]``.
215
+
216
+ It looks prettier than ``at(x, slice(start, stop, step))``
217
+ and feels more intuitive coming from the JAX documentation.
218
+ """
219
+ if self._idx is not _undef:
220
+ msg = "Index has already been set"
221
+ raise ValueError(msg)
222
+ return type(self)(self._x, idx)
223
+
224
+ def _op(
225
+ self,
226
+ at_op: _AtOp,
227
+ in_place_op: Callable[[Array, Array | complex], Array] | None,
228
+ out_of_place_op: Callable[[Array, Array], Array] | None,
229
+ y: Array | complex,
230
+ /,
231
+ copy: bool | None,
232
+ xp: ModuleType | None,
233
+ ) -> Array:
234
+ """
235
+ Implement all update operations.
236
+
237
+ Parameters
238
+ ----------
239
+ at_op : _AtOp
240
+ Method of JAX's Array.at[].
241
+ in_place_op : Callable[[Array, Array | complex], Array] | None
242
+ In-place operation to apply on mutable backends::
243
+
244
+ x[idx] = in_place_op(x[idx], y)
245
+
246
+ If None::
247
+
248
+ x[idx] = y
249
+
250
+ out_of_place_op : Callable[[Array, Array], Array] | None
251
+ Out-of-place operation to apply when idx is a boolean mask and the backend
252
+ doesn't support in-place updates::
253
+
254
+ x = xp.where(idx, out_of_place_op(x, y), x)
255
+
256
+ If None::
257
+
258
+ x = xp.where(idx, y, x)
259
+
260
+ y : array or complex
261
+ Right-hand side of the operation.
262
+ copy : bool or None
263
+ Whether to copy the input array. See the class docstring for details.
264
+ xp : array_namespace, optional
265
+ The array namespace for the input array. Default: infer.
266
+
267
+ Returns
268
+ -------
269
+ Array
270
+ Updated `x`.
271
+ """
272
+ from ._funcs import apply_where # pylint: disable=cyclic-import
273
+
274
+ x, idx = self._x, self._idx
275
+ xp = array_namespace(x, y) if xp is None else xp
276
+
277
+ if isinstance(idx, Undef):
278
+ msg = (
279
+ "Index has not been set.\n"
280
+ "Usage: either\n"
281
+ " at(x, idx).set(value)\n"
282
+ "or\n"
283
+ " at(x)[idx].set(value)\n"
284
+ "(same for all other methods)."
285
+ )
286
+ raise ValueError(msg)
287
+
288
+ if copy not in (True, False, None):
289
+ msg = f"copy must be True, False, or None; got {copy!r}"
290
+ raise ValueError(msg)
291
+
292
+ writeable = None if copy else is_writeable_array(x)
293
+
294
+ # JAX inside jax.jit doesn't support in-place updates with boolean
295
+ # masks; Dask exclusively supports __setitem__ but not iops.
296
+ # We can handle the common special case of 0-dimensional y
297
+ # with where(idx, y, x) instead.
298
+ if (
299
+ (is_dask_array(idx) or is_jax_array(idx))
300
+ and idx.dtype == xp.bool
301
+ and idx.shape == x.shape
302
+ ):
303
+ y_xp = xp.asarray(y, dtype=x.dtype, device=_compat.device(x))
304
+ if y_xp.ndim == 0:
305
+ if out_of_place_op: # add(), subtract(), ...
306
+ # suppress inf warnings on Dask
307
+ out = apply_where(
308
+ idx, (x, y_xp), out_of_place_op, fill_value=x, xp=xp
309
+ )
310
+ # Undo int->float promotion on JAX after _AtOp.DIVIDE
311
+ out = xp.astype(out, x.dtype, copy=False)
312
+ else: # set()
313
+ out = xp.where(idx, y_xp, x)
314
+
315
+ if copy is False:
316
+ x[()] = out
317
+ return x
318
+ return out
319
+
320
+ # else: this will work on eager JAX and crash on jax.jit and Dask
321
+
322
+ if copy or (copy is None and not writeable):
323
+ if is_jax_array(x):
324
+ # Use JAX's at[]
325
+ func = cast(
326
+ Callable[[Array | complex], Array],
327
+ getattr(x.at[idx], at_op.value), # type: ignore[attr-defined] # pyright: ignore[reportAttributeAccessIssue,reportUnknownArgumentType]
328
+ )
329
+ out = func(y)
330
+ # Undo int->float promotion on JAX after _AtOp.DIVIDE
331
+ return xp.astype(out, x.dtype, copy=False)
332
+
333
+ # Emulate at[] behaviour for non-JAX arrays
334
+ # with a copy followed by an update
335
+
336
+ x = xp.asarray(x, copy=True)
337
+ # A copy of a read-only numpy array is writeable
338
+ # Note: this assumes that a copy of a writeable array is writeable
339
+ assert not writeable
340
+ writeable = None
341
+
342
+ if writeable is None:
343
+ writeable = is_writeable_array(x)
344
+ if not writeable:
345
+ # sparse crashes here
346
+ msg = f"Can't update read-only array {x}"
347
+ raise ValueError(msg)
348
+
349
+ # Work around bug in PyTorch where __setitem__ doesn't
350
+ # always support mismatched dtypes
351
+ # https://github.com/pytorch/pytorch/issues/150017
352
+ if is_torch_array(y):
353
+ y = xp.astype(y, x.dtype, copy=False)
354
+
355
+ # Backends without boolean indexing (other than JAX) crash here
356
+ if in_place_op: # add(), subtract(), ...
357
+ x[idx] = in_place_op(x[idx], y)
358
+ else: # set()
359
+ x[idx] = y
360
+ return x
361
+
362
+ def set(
363
+ self,
364
+ y: Array | complex,
365
+ /,
366
+ copy: bool | None = None,
367
+ xp: ModuleType | None = None,
368
+ ) -> Array: # numpydoc ignore=PR01,RT01
369
+ """Apply ``x[idx] = y`` and return the update array."""
370
+ return self._op(_AtOp.SET, None, None, y, copy=copy, xp=xp)
371
+
372
+ def add(
373
+ self,
374
+ y: Array | complex,
375
+ /,
376
+ copy: bool | None = None,
377
+ xp: ModuleType | None = None,
378
+ ) -> Array: # numpydoc ignore=PR01,RT01
379
+ """Apply ``x[idx] += y`` and return the updated array."""
380
+
381
+ # Note for this and all other methods based on _iop:
382
+ # operator.iadd and operator.add subtly differ in behaviour, as
383
+ # only iadd will trigger exceptions when y has an incompatible dtype.
384
+ return self._op(_AtOp.ADD, operator.iadd, operator.add, y, copy=copy, xp=xp)
385
+
386
+ def subtract(
387
+ self,
388
+ y: Array | complex,
389
+ /,
390
+ copy: bool | None = None,
391
+ xp: ModuleType | None = None,
392
+ ) -> Array: # numpydoc ignore=PR01,RT01
393
+ """Apply ``x[idx] -= y`` and return the updated array."""
394
+ return self._op(
395
+ _AtOp.SUBTRACT, operator.isub, operator.sub, y, copy=copy, xp=xp
396
+ )
397
+
398
+ def multiply(
399
+ self,
400
+ y: Array | complex,
401
+ /,
402
+ copy: bool | None = None,
403
+ xp: ModuleType | None = None,
404
+ ) -> Array: # numpydoc ignore=PR01,RT01
405
+ """Apply ``x[idx] *= y`` and return the updated array."""
406
+ return self._op(
407
+ _AtOp.MULTIPLY, operator.imul, operator.mul, y, copy=copy, xp=xp
408
+ )
409
+
410
+ def divide(
411
+ self,
412
+ y: Array | complex,
413
+ /,
414
+ copy: bool | None = None,
415
+ xp: ModuleType | None = None,
416
+ ) -> Array: # numpydoc ignore=PR01,RT01
417
+ """Apply ``x[idx] /= y`` and return the updated array."""
418
+ return self._op(
419
+ _AtOp.DIVIDE, operator.itruediv, operator.truediv, y, copy=copy, xp=xp
420
+ )
421
+
422
+ def power(
423
+ self,
424
+ y: Array | complex,
425
+ /,
426
+ copy: bool | None = None,
427
+ xp: ModuleType | None = None,
428
+ ) -> Array: # numpydoc ignore=PR01,RT01
429
+ """Apply ``x[idx] **= y`` and return the updated array."""
430
+ return self._op(_AtOp.POWER, operator.ipow, operator.pow, y, copy=copy, xp=xp)
431
+
432
+ def min(
433
+ self,
434
+ y: Array | complex,
435
+ /,
436
+ copy: bool | None = None,
437
+ xp: ModuleType | None = None,
438
+ ) -> Array: # numpydoc ignore=PR01,RT01
439
+ """Apply ``x[idx] = minimum(x[idx], y)`` and return the updated array."""
440
+ # On Dask, this function runs on the chunks, so we need to determine the
441
+ # namespace that Dask is wrapping.
442
+ # Note that da.minimum _incidentally_ works on NumPy, CuPy, and sparse
443
+ # thanks to all these meta-namespaces implementing the __array_ufunc__
444
+ # interface, but there's no guarantee that it will work for other
445
+ # wrapped libraries in the future.
446
+ xp = array_namespace(self._x) if xp is None else xp
447
+ mxp = meta_namespace(self._x, xp=xp)
448
+ y = xp.asarray(y)
449
+ return self._op(_AtOp.MIN, mxp.minimum, mxp.minimum, y, copy=copy, xp=xp)
450
+
451
+ def max(
452
+ self,
453
+ y: Array | complex,
454
+ /,
455
+ copy: bool | None = None,
456
+ xp: ModuleType | None = None,
457
+ ) -> Array: # numpydoc ignore=PR01,RT01
458
+ """Apply ``x[idx] = maximum(x[idx], y)`` and return the updated array."""
459
+ # See note on min()
460
+ xp = array_namespace(self._x) if xp is None else xp
461
+ mxp = meta_namespace(self._x, xp=xp)
462
+ y = xp.asarray(y)
463
+ return self._op(_AtOp.MAX, mxp.maximum, mxp.maximum, y, copy=copy, xp=xp)
@@ -0,0 +1,46 @@
1
+ """Backends against which array-api-extra runs its tests."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from enum import Enum
6
+
7
+ __all__ = ["Backend"]
8
+
9
+
10
+ class Backend(Enum): # numpydoc ignore=PR02
11
+ """
12
+ All array library backends explicitly tested by array-api-extra.
13
+
14
+ Parameters
15
+ ----------
16
+ value : str
17
+ Tag of the backend's module, in the format ``<namespace>[:<extra tag>]``.
18
+ """
19
+
20
+ # Use :<tag> to prevent Enum from deduplicating items with the same value
21
+ ARRAY_API_STRICT = "array_api_strict"
22
+ ARRAY_API_STRICTEST = "array_api_strict:strictest"
23
+ NUMPY = "numpy"
24
+ NUMPY_READONLY = "numpy:readonly"
25
+ CUPY = "cupy"
26
+ TORCH = "torch"
27
+ TORCH_GPU = "torch:gpu"
28
+ DASK = "dask.array"
29
+ SPARSE = "sparse"
30
+ JAX = "jax.numpy"
31
+ JAX_GPU = "jax.numpy:gpu"
32
+
33
+ def __str__(self) -> str: # type: ignore[explicit-override] # pyright: ignore[reportImplicitOverride] # numpydoc ignore=RT01
34
+ """Pretty-print parameterized test names."""
35
+ return (
36
+ self.name.lower().replace("_gpu", ":gpu").replace("_readonly", ":readonly")
37
+ )
38
+
39
+ @property
40
+ def modname(self) -> str: # numpydoc ignore=RT01
41
+ """Module name to be imported."""
42
+ return self.value.split(":")[0]
43
+
44
+ def like(self, *others: Backend) -> bool: # numpydoc ignore=PR01,RT01
45
+ """Check if this backend uses the same module as others."""
46
+ return any(self.modname == other.modname for other in others)