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,9 @@
1
+ # DO NOT RENAME THIS FILE
2
+ # This is a hook for array_api_extra/src/array_api_extra/_lib/_compat.py
3
+ # to override functions of array_api_compat.
4
+
5
+ from .array_api_compat import * # noqa: F403
6
+ from ._array_api import array_namespace as scipy_array_namespace
7
+
8
+ # overrides array_api_compat.array_namespace inside array-api-extra
9
+ array_namespace = scipy_array_namespace # type: ignore[assignment]
@@ -0,0 +1,103 @@
1
+ """
2
+ Extra testing functions that forbid 0d-input, see #21044
3
+
4
+ While the xp_assert_* functions generally aim to follow the conventions of the
5
+ underlying `xp` library, NumPy in particular is inconsistent in its handling
6
+ of scalars vs. 0d-arrays, see https://github.com/numpy/numpy/issues/24897.
7
+
8
+ For example, this means that the following operations (as of v2.0.1) currently
9
+ return scalars, even though a 0d-array would often be more appropriate:
10
+
11
+ import numpy as np
12
+ np.array(0) * 2 # scalar, not 0d array
13
+ - np.array(0) # scalar, not 0d-array
14
+ np.sin(np.array(0)) # scalar, not 0d array
15
+ np.mean([1, 2, 3]) # scalar, not 0d array
16
+
17
+ Libraries like CuPy tend to return a 0d-array in scenarios like those above,
18
+ and even `xp.asarray(0)[()]` remains a 0d-array there. To deal with the reality
19
+ of the inconsistencies present in NumPy, as well as 20+ years of code on top,
20
+ the `xp_assert_*` functions here enforce consistency in the only way that
21
+ doesn't go against the tide, i.e. by forbidding 0d-arrays as the return type.
22
+
23
+ However, when scalars are not generally the expected NumPy return type,
24
+ it remains preferable to use the assert functions from
25
+ the `scipy._lib._array_api` module, which have less surprising behaviour.
26
+ """
27
+ from scipy._lib._array_api import array_namespace, is_numpy
28
+ from scipy._lib._array_api import (xp_assert_close as xp_assert_close_base,
29
+ xp_assert_equal as xp_assert_equal_base,
30
+ xp_assert_less as xp_assert_less_base)
31
+
32
+ __all__: list[str] = []
33
+
34
+
35
+ def _check_scalar(actual, desired, *, xp=None, **kwargs):
36
+ __tracebackhide__ = True # Hide traceback for py.test
37
+
38
+ if xp is None:
39
+ xp = array_namespace(actual)
40
+
41
+ # necessary to handle non-numpy scalars, e.g. bare `0.0` has no shape
42
+ desired = xp.asarray(desired)
43
+
44
+ # Only NumPy distinguishes between scalars and arrays;
45
+ # shape check in xp_assert_* is sufficient except for shape == ()
46
+ if not (is_numpy(xp) and desired.shape == ()):
47
+ return
48
+
49
+ _msg = ("Result is a NumPy 0d-array. Many SciPy functions intend to follow "
50
+ "the convention of many NumPy functions, returning a scalar when a "
51
+ "0d-array would be correct. The specialized `xp_assert_*` functions "
52
+ "in the `scipy._lib._array_api_no_0d` module err on the side of "
53
+ "caution and do not accept 0d-arrays by default. If the correct "
54
+ "result may legitimately be a 0d-array, pass `check_0d=True`, "
55
+ "or use the `xp_assert_*` functions from `scipy._lib._array_api`.")
56
+ assert xp.isscalar(actual), _msg
57
+
58
+
59
+ def xp_assert_equal(actual, desired, *, check_0d=False, **kwargs):
60
+ # in contrast to xp_assert_equal_base, this defaults to check_0d=False,
61
+ # but will do an extra check in that case, which forbids 0d-arrays for `actual`
62
+ __tracebackhide__ = True # Hide traceback for py.test
63
+
64
+ # array-ness (check_0d == True) is taken care of by the *_base functions
65
+ if not check_0d:
66
+ _check_scalar(actual, desired, **kwargs)
67
+ return xp_assert_equal_base(actual, desired, check_0d=check_0d, **kwargs)
68
+
69
+
70
+ def xp_assert_close(actual, desired, *, check_0d=False, **kwargs):
71
+ # as for xp_assert_equal
72
+ __tracebackhide__ = True
73
+
74
+ if not check_0d:
75
+ _check_scalar(actual, desired, **kwargs)
76
+ return xp_assert_close_base(actual, desired, check_0d=check_0d, **kwargs)
77
+
78
+
79
+ def xp_assert_less(actual, desired, *, check_0d=False, **kwargs):
80
+ # as for xp_assert_equal
81
+ __tracebackhide__ = True
82
+
83
+ if not check_0d:
84
+ _check_scalar(actual, desired, **kwargs)
85
+ return xp_assert_less_base(actual, desired, check_0d=check_0d, **kwargs)
86
+
87
+
88
+ def assert_array_almost_equal(actual, desired, decimal=6, *args, **kwds):
89
+ """Backwards compatible replacement. In new code, use xp_assert_close instead.
90
+ """
91
+ rtol, atol = 0, 1.5*10**(-decimal)
92
+ return xp_assert_close(actual, desired,
93
+ atol=atol, rtol=rtol, check_dtype=False, check_shape=False,
94
+ *args, **kwds)
95
+
96
+
97
+ def assert_almost_equal(actual, desired, decimal=7, *args, **kwds):
98
+ """Backwards compatible replacement. In new code, use xp_assert_close instead.
99
+ """
100
+ rtol, atol = 0, 1.5*10**(-decimal)
101
+ return xp_assert_close(actual, desired,
102
+ atol=atol, rtol=rtol, check_dtype=False, check_shape=False,
103
+ *args, **kwds)
scipy/_lib/_bunch.py ADDED
@@ -0,0 +1,229 @@
1
+ import sys as _sys
2
+ from keyword import iskeyword as _iskeyword
3
+
4
+
5
+ def _validate_names(typename, field_names, extra_field_names):
6
+ """
7
+ Ensure that all the given names are valid Python identifiers that
8
+ do not start with '_'. Also check that there are no duplicates
9
+ among field_names + extra_field_names.
10
+ """
11
+ for name in [typename] + field_names + extra_field_names:
12
+ if not isinstance(name, str):
13
+ raise TypeError('typename and all field names must be strings')
14
+ if not name.isidentifier():
15
+ raise ValueError('typename and all field names must be valid '
16
+ f'identifiers: {name!r}')
17
+ if _iskeyword(name):
18
+ raise ValueError('typename and all field names cannot be a '
19
+ f'keyword: {name!r}')
20
+
21
+ seen = set()
22
+ for name in field_names + extra_field_names:
23
+ if name.startswith('_'):
24
+ raise ValueError('Field names cannot start with an underscore: '
25
+ f'{name!r}')
26
+ if name in seen:
27
+ raise ValueError(f'Duplicate field name: {name!r}')
28
+ seen.add(name)
29
+
30
+
31
+ # Note: This code is adapted from CPython:Lib/collections/__init__.py
32
+ def _make_tuple_bunch(typename, field_names, extra_field_names=None,
33
+ module=None):
34
+ """
35
+ Create a namedtuple-like class with additional attributes.
36
+
37
+ This function creates a subclass of tuple that acts like a namedtuple
38
+ and that has additional attributes.
39
+
40
+ The additional attributes are listed in `extra_field_names`. The
41
+ values assigned to these attributes are not part of the tuple.
42
+
43
+ The reason this function exists is to allow functions in SciPy
44
+ that currently return a tuple or a namedtuple to returned objects
45
+ that have additional attributes, while maintaining backwards
46
+ compatibility.
47
+
48
+ This should only be used to enhance *existing* functions in SciPy.
49
+ New functions are free to create objects as return values without
50
+ having to maintain backwards compatibility with an old tuple or
51
+ namedtuple return value.
52
+
53
+ Parameters
54
+ ----------
55
+ typename : str
56
+ The name of the type.
57
+ field_names : list of str
58
+ List of names of the values to be stored in the tuple. These names
59
+ will also be attributes of instances, so the values in the tuple
60
+ can be accessed by indexing or as attributes. At least one name
61
+ is required. See the Notes for additional restrictions.
62
+ extra_field_names : list of str, optional
63
+ List of names of values that will be stored as attributes of the
64
+ object. See the notes for additional restrictions.
65
+
66
+ Returns
67
+ -------
68
+ cls : type
69
+ The new class.
70
+
71
+ Notes
72
+ -----
73
+ There are restrictions on the names that may be used in `field_names`
74
+ and `extra_field_names`:
75
+
76
+ * The names must be unique--no duplicates allowed.
77
+ * The names must be valid Python identifiers, and must not begin with
78
+ an underscore.
79
+ * The names must not be Python keywords (e.g. 'def', 'and', etc., are
80
+ not allowed).
81
+
82
+ Examples
83
+ --------
84
+ >>> from scipy._lib._bunch import _make_tuple_bunch
85
+
86
+ Create a class that acts like a namedtuple with length 2 (with field
87
+ names `x` and `y`) that will also have the attributes `w` and `beta`:
88
+
89
+ >>> Result = _make_tuple_bunch('Result', ['x', 'y'], ['w', 'beta'])
90
+
91
+ `Result` is the new class. We call it with keyword arguments to create
92
+ a new instance with given values.
93
+
94
+ >>> result1 = Result(x=1, y=2, w=99, beta=0.5)
95
+ >>> result1
96
+ Result(x=1, y=2, w=99, beta=0.5)
97
+
98
+ `result1` acts like a tuple of length 2:
99
+
100
+ >>> len(result1)
101
+ 2
102
+ >>> result1[:]
103
+ (1, 2)
104
+
105
+ The values assigned when the instance was created are available as
106
+ attributes:
107
+
108
+ >>> result1.y
109
+ 2
110
+ >>> result1.beta
111
+ 0.5
112
+ """
113
+ if len(field_names) == 0:
114
+ raise ValueError('field_names must contain at least one name')
115
+
116
+ if extra_field_names is None:
117
+ extra_field_names = []
118
+ _validate_names(typename, field_names, extra_field_names)
119
+
120
+ typename = _sys.intern(str(typename))
121
+ field_names = tuple(map(_sys.intern, field_names))
122
+ extra_field_names = tuple(map(_sys.intern, extra_field_names))
123
+
124
+ all_names = field_names + extra_field_names
125
+ arg_list = ', '.join(field_names)
126
+ full_list = ', '.join(all_names)
127
+ repr_fmt = ''.join(('(',
128
+ ', '.join(f'{name}=%({name})r' for name in all_names),
129
+ ')'))
130
+ tuple_new = tuple.__new__
131
+ _dict, _tuple, _zip = dict, tuple, zip
132
+
133
+ # Create all the named tuple methods to be added to the class namespace
134
+
135
+ s = f"""\
136
+ def __new__(_cls, {arg_list}, **extra_fields):
137
+ return _tuple_new(_cls, ({arg_list},))
138
+
139
+ def __init__(self, {arg_list}, **extra_fields):
140
+ for key in self._extra_fields:
141
+ if key not in extra_fields:
142
+ raise TypeError("missing keyword argument '%s'" % (key,))
143
+ for key, val in extra_fields.items():
144
+ if key not in self._extra_fields:
145
+ raise TypeError("unexpected keyword argument '%s'" % (key,))
146
+ self.__dict__[key] = val
147
+
148
+ def __setattr__(self, key, val):
149
+ if key in {repr(field_names)}:
150
+ raise AttributeError("can't set attribute %r of class %r"
151
+ % (key, self.__class__.__name__))
152
+ else:
153
+ self.__dict__[key] = val
154
+ """
155
+ del arg_list
156
+ namespace = {'_tuple_new': tuple_new,
157
+ '__builtins__': dict(TypeError=TypeError,
158
+ AttributeError=AttributeError),
159
+ '__name__': f'namedtuple_{typename}'}
160
+ exec(s, namespace)
161
+ __new__ = namespace['__new__']
162
+ __new__.__doc__ = f'Create new instance of {typename}({full_list})'
163
+ __init__ = namespace['__init__']
164
+ __init__.__doc__ = f'Instantiate instance of {typename}({full_list})'
165
+ __setattr__ = namespace['__setattr__']
166
+
167
+ def __repr__(self):
168
+ 'Return a nicely formatted representation string'
169
+ return self.__class__.__name__ + repr_fmt % self._asdict()
170
+
171
+ def _asdict(self):
172
+ 'Return a new dict which maps field names to their values.'
173
+ out = _dict(_zip(self._fields, self))
174
+ out.update(self.__dict__)
175
+ return out
176
+
177
+ def __getnewargs_ex__(self):
178
+ 'Return self as a plain tuple. Used by copy and pickle.'
179
+ return _tuple(self), self.__dict__
180
+
181
+ # Modify function metadata to help with introspection and debugging
182
+ for method in (__new__, __repr__, _asdict, __getnewargs_ex__):
183
+ method.__qualname__ = f'{typename}.{method.__name__}'
184
+
185
+ # Build-up the class namespace dictionary
186
+ # and use type() to build the result class
187
+ class_namespace = {
188
+ '__doc__': f'{typename}({full_list})',
189
+ '_fields': field_names,
190
+ '__new__': __new__,
191
+ '__init__': __init__,
192
+ '__repr__': __repr__,
193
+ '__setattr__': __setattr__,
194
+ '_asdict': _asdict,
195
+ '_extra_fields': extra_field_names,
196
+ '__getnewargs_ex__': __getnewargs_ex__,
197
+ # _field_defaults and _replace are added to get Polars to detect
198
+ # a bunch object as a namedtuple. See gh-22450
199
+ '_field_defaults': {},
200
+ '_replace': None,
201
+ }
202
+ for index, name in enumerate(field_names):
203
+
204
+ def _get(self, index=index):
205
+ return self[index]
206
+ class_namespace[name] = property(_get)
207
+ for name in extra_field_names:
208
+
209
+ def _get(self, name=name):
210
+ return self.__dict__[name]
211
+ class_namespace[name] = property(_get)
212
+
213
+ result = type(typename, (tuple,), class_namespace)
214
+
215
+ # For pickling to work, the __module__ variable needs to be set to the
216
+ # frame where the named tuple is created. Bypass this step in environments
217
+ # where sys._getframe is not defined (Jython for example) or sys._getframe
218
+ # is not defined for arguments greater than 0 (IronPython), or where the
219
+ # user has specified a particular module.
220
+ if module is None:
221
+ try:
222
+ module = _sys._getframe(1).f_globals.get('__name__', '__main__')
223
+ except (AttributeError, ValueError):
224
+ pass
225
+ if module is not None:
226
+ result.__module__ = module
227
+ __new__.__module__ = module
228
+
229
+ return result
@@ -0,0 +1,251 @@
1
+ from . import _ccallback_c
2
+
3
+ import ctypes
4
+
5
+ PyCFuncPtr = ctypes.CFUNCTYPE(ctypes.c_void_p).__bases__[0]
6
+
7
+ ffi = None
8
+
9
+ class CData:
10
+ pass
11
+
12
+ def _import_cffi():
13
+ global ffi, CData
14
+
15
+ if ffi is not None:
16
+ return
17
+
18
+ try:
19
+ import cffi
20
+ ffi = cffi.FFI()
21
+ CData = ffi.CData
22
+ except ImportError:
23
+ ffi = False
24
+
25
+
26
+ class LowLevelCallable(tuple):
27
+ """
28
+ Low-level callback function.
29
+
30
+ Some functions in SciPy take as arguments callback functions, which
31
+ can either be python callables or low-level compiled functions. Using
32
+ compiled callback functions can improve performance somewhat by
33
+ avoiding wrapping data in Python objects.
34
+
35
+ Such low-level functions in SciPy are wrapped in `LowLevelCallable`
36
+ objects, which can be constructed from function pointers obtained from
37
+ ctypes, cffi, Cython, or contained in Python `PyCapsule` objects.
38
+
39
+ .. seealso::
40
+
41
+ Functions accepting low-level callables:
42
+
43
+ `scipy.integrate.quad`, `scipy.ndimage.generic_filter`,
44
+ `scipy.ndimage.generic_filter1d`, `scipy.ndimage.geometric_transform`
45
+
46
+ Usage examples:
47
+
48
+ :ref:`ndimage-ccallbacks`, :ref:`quad-callbacks`
49
+
50
+ Parameters
51
+ ----------
52
+ function : {PyCapsule, ctypes function pointer, cffi function pointer}
53
+ Low-level callback function.
54
+ user_data : {PyCapsule, ctypes void pointer, cffi void pointer}
55
+ User data to pass on to the callback function.
56
+ signature : str, optional
57
+ Signature of the function. If omitted, determined from *function*,
58
+ if possible.
59
+
60
+ Attributes
61
+ ----------
62
+ function
63
+ Callback function given.
64
+ user_data
65
+ User data given.
66
+ signature
67
+ Signature of the function.
68
+
69
+ Methods
70
+ -------
71
+ from_cython
72
+ Class method for constructing callables from Cython C-exported
73
+ functions.
74
+
75
+ Notes
76
+ -----
77
+ The argument ``function`` can be one of:
78
+
79
+ - PyCapsule, whose name contains the C function signature
80
+ - ctypes function pointer
81
+ - cffi function pointer
82
+
83
+ The signature of the low-level callback must match one of those expected
84
+ by the routine it is passed to.
85
+
86
+ If constructing low-level functions from a PyCapsule, the name of the
87
+ capsule must be the corresponding signature, in the format::
88
+
89
+ return_type (arg1_type, arg2_type, ...)
90
+
91
+ For example::
92
+
93
+ "void (double)"
94
+ "double (double, int *, void *)"
95
+
96
+ The context of a PyCapsule passed in as ``function`` is used as ``user_data``,
97
+ if an explicit value for ``user_data`` was not given.
98
+
99
+ """
100
+
101
+ # Make the class immutable
102
+ __slots__ = ()
103
+
104
+ def __new__(cls, function, user_data=None, signature=None):
105
+ # We need to hold a reference to the function & user data,
106
+ # to prevent them going out of scope
107
+ item = cls._parse_callback(function, user_data, signature)
108
+ return tuple.__new__(cls, (item, function, user_data))
109
+
110
+ def __repr__(self):
111
+ return f"LowLevelCallable({self.function!r}, {self.user_data!r})"
112
+
113
+ @property
114
+ def function(self):
115
+ return tuple.__getitem__(self, 1)
116
+
117
+ @property
118
+ def user_data(self):
119
+ return tuple.__getitem__(self, 2)
120
+
121
+ @property
122
+ def signature(self):
123
+ return _ccallback_c.get_capsule_signature(tuple.__getitem__(self, 0))
124
+
125
+ def __getitem__(self, idx):
126
+ raise ValueError()
127
+
128
+ @classmethod
129
+ def from_cython(cls, module, name, user_data=None, signature=None):
130
+ """
131
+ Create a low-level callback function from an exported Cython function.
132
+
133
+ Parameters
134
+ ----------
135
+ module : module
136
+ Cython module where the exported function resides
137
+ name : str
138
+ Name of the exported function
139
+ user_data : {PyCapsule, ctypes void pointer, cffi void pointer}, optional
140
+ User data to pass on to the callback function.
141
+ signature : str, optional
142
+ Signature of the function. If omitted, determined from *function*.
143
+
144
+ """
145
+ try:
146
+ function = module.__pyx_capi__[name]
147
+ except AttributeError as e:
148
+ message = "Given module is not a Cython module with __pyx_capi__ attribute"
149
+ raise ValueError(message) from e
150
+ except KeyError as e:
151
+ message = f"No function {name!r} found in __pyx_capi__ of the module"
152
+ raise ValueError(message) from e
153
+ return cls(function, user_data, signature)
154
+
155
+ @classmethod
156
+ def _parse_callback(cls, obj, user_data=None, signature=None):
157
+ _import_cffi()
158
+
159
+ if isinstance(obj, LowLevelCallable):
160
+ func = tuple.__getitem__(obj, 0)
161
+ elif isinstance(obj, PyCFuncPtr):
162
+ func, signature = _get_ctypes_func(obj, signature)
163
+ elif isinstance(obj, CData):
164
+ func, signature = _get_cffi_func(obj, signature)
165
+ elif _ccallback_c.check_capsule(obj):
166
+ func = obj
167
+ else:
168
+ raise ValueError("Given input is not a callable or a "
169
+ "low-level callable (pycapsule/ctypes/cffi)")
170
+
171
+ if isinstance(user_data, ctypes.c_void_p):
172
+ context = _get_ctypes_data(user_data)
173
+ elif isinstance(user_data, CData):
174
+ context = _get_cffi_data(user_data)
175
+ elif user_data is None:
176
+ context = 0
177
+ elif _ccallback_c.check_capsule(user_data):
178
+ context = user_data
179
+ else:
180
+ raise ValueError("Given user data is not a valid "
181
+ "low-level void* pointer (pycapsule/ctypes/cffi)")
182
+
183
+ return _ccallback_c.get_raw_capsule(func, signature, context)
184
+
185
+
186
+ #
187
+ # ctypes helpers
188
+ #
189
+
190
+ def _get_ctypes_func(func, signature=None):
191
+ # Get function pointer
192
+ func_ptr = ctypes.cast(func, ctypes.c_void_p).value
193
+
194
+ # Construct function signature
195
+ if signature is None:
196
+ signature = _typename_from_ctypes(func.restype) + " ("
197
+ for j, arg in enumerate(func.argtypes):
198
+ if j == 0:
199
+ signature += _typename_from_ctypes(arg)
200
+ else:
201
+ signature += ", " + _typename_from_ctypes(arg)
202
+ signature += ")"
203
+
204
+ return func_ptr, signature
205
+
206
+
207
+ def _typename_from_ctypes(item):
208
+ if item is None:
209
+ return "void"
210
+ elif item is ctypes.c_void_p:
211
+ return "void *"
212
+
213
+ name = item.__name__
214
+
215
+ pointer_level = 0
216
+ while name.startswith("LP_"):
217
+ pointer_level += 1
218
+ name = name[3:]
219
+
220
+ if name.startswith('c_'):
221
+ name = name[2:]
222
+
223
+ if pointer_level > 0:
224
+ name += " " + "*"*pointer_level
225
+
226
+ return name
227
+
228
+
229
+ def _get_ctypes_data(data):
230
+ # Get voidp pointer
231
+ return ctypes.cast(data, ctypes.c_void_p).value
232
+
233
+
234
+ #
235
+ # CFFI helpers
236
+ #
237
+
238
+ def _get_cffi_func(func, signature=None):
239
+ # Get function pointer
240
+ func_ptr = ffi.cast('uintptr_t', func)
241
+
242
+ # Get signature
243
+ if signature is None:
244
+ signature = ffi.getctype(ffi.typeof(func)).replace('(*)', ' ')
245
+
246
+ return func_ptr, signature
247
+
248
+
249
+ def _get_cffi_data(data):
250
+ # Get pointer
251
+ return ffi.cast('uintptr_t', data)