scipy 1.16.1__cp314-cp314t-macosx_14_0_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  23. scipy/_lib/_test_deprecation_call.cpython-314t-darwin.so +0 -0
  24. scipy/_lib/_test_deprecation_def.cpython-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  143. scipy/cluster/_optimal_leaf_ordering.cpython-314t-darwin.so +0 -0
  144. scipy/cluster/_vq.cpython-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  237. scipy/integrate/_ode.py +1395 -0
  238. scipy/integrate/_odepack.cpython-314t-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-314t-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-314t-darwin.so +0 -0
  251. scipy/integrate/_test_odeint_banded.cpython-314t-darwin.so +0 -0
  252. scipy/integrate/_vode.cpython-314t-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-314t-darwin.so +0 -0
  273. scipy/interpolate/_dierckx.cpython-314t-darwin.so +0 -0
  274. scipy/interpolate/_fitpack.cpython-314t-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-314t-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-314t-darwin.so +0 -0
  286. scipy/interpolate/_rbf.py +290 -0
  287. scipy/interpolate/_rbfinterp.py +550 -0
  288. scipy/interpolate/_rbfinterp_pythran.cpython-314t-darwin.so +0 -0
  289. scipy/interpolate/_rgi.py +764 -0
  290. scipy/interpolate/_rgi_cython.cpython-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  360. scipy/io/matlab/_mio_utils.cpython-314t-darwin.so +0 -0
  361. scipy/io/matlab/_miobase.py +435 -0
  362. scipy/io/matlab/_streams.cpython-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  610. scipy/linalg/_expm_frechet.py +417 -0
  611. scipy/linalg/_fblas.cpython-314t-darwin.so +0 -0
  612. scipy/linalg/_flapack.cpython-314t-darwin.so +0 -0
  613. scipy/linalg/_lapack_subroutines.h +1521 -0
  614. scipy/linalg/_linalg_pythran.cpython-314t-darwin.so +0 -0
  615. scipy/linalg/_matfuncs.py +1050 -0
  616. scipy/linalg/_matfuncs_expm.cpython-314t-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-314t-darwin.so +0 -0
  620. scipy/linalg/_matfuncs_sqrtm.py +107 -0
  621. scipy/linalg/_matfuncs_sqrtm_triu.cpython-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  686. scipy/ndimage/_cytest.cpython-314t-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-314t-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-314t-darwin.so +0 -0
  697. scipy/ndimage/_ni_support.py +139 -0
  698. scipy/ndimage/_rank_filter_1d.cpython-314t-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-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  748. scipy/optimize/_highspy/_highs_options.cpython-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  774. scipy/optimize/_minpack_py.py +1178 -0
  775. scipy/optimize/_moduleTNC.cpython-314t-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-314t-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-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  890. scipy/signal/_peak_finding.py +1310 -0
  891. scipy/signal/_peak_finding_utils.cpython-314t-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-314t-darwin.so +0 -0
  898. scipy/signal/_sosfilt.cpython-314t-darwin.so +0 -0
  899. scipy/signal/_spectral_py.py +2471 -0
  900. scipy/signal/_spline.cpython-314t-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-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  972. scipy/sparse/csgraph/_laplacian.py +563 -0
  973. scipy/sparse/csgraph/_matching.cpython-314t-darwin.so +0 -0
  974. scipy/sparse/csgraph/_min_spanning_tree.cpython-314t-darwin.so +0 -0
  975. scipy/sparse/csgraph/_reordering.cpython-314t-darwin.so +0 -0
  976. scipy/sparse/csgraph/_shortest_path.cpython-314t-darwin.so +0 -0
  977. scipy/sparse/csgraph/_tools.cpython-314t-darwin.so +0 -0
  978. scipy/sparse/csgraph/_traversal.cpython-314t-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-314t-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-314t-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-314t-darwin.so +0 -0
  1042. scipy/sparse/linalg/_propack/_dpropack.cpython-314t-darwin.so +0 -0
  1043. scipy/sparse/linalg/_propack/_spropack.cpython-314t-darwin.so +0 -0
  1044. scipy/sparse/linalg/_propack/_zpropack.cpython-314t-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-314t-darwin.so +0 -0
  1086. scipy/spatial/_distance_pybind.cpython-314t-darwin.so +0 -0
  1087. scipy/spatial/_distance_wrap.cpython-314t-darwin.so +0 -0
  1088. scipy/spatial/_geometric_slerp.py +238 -0
  1089. scipy/spatial/_hausdorff.cpython-314t-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-314t-darwin.so +0 -0
  1094. scipy/spatial/_qhull.pyi +213 -0
  1095. scipy/spatial/_spherical_voronoi.py +341 -0
  1096. scipy/spatial/_voronoi.cpython-314t-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-314t-darwin.so +0 -0
  1145. scipy/spatial/transform/_rotation.cpython-314t-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-314t-darwin.so +0 -0
  1159. scipy/special/_ellip_harm.py +214 -0
  1160. scipy/special/_ellip_harm_2.cpython-314t-darwin.so +0 -0
  1161. scipy/special/_gufuncs.cpython-314t-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-314t-darwin.so +0 -0
  1185. scipy/special/_special_ufuncs.cpython-314t-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-314t-darwin.so +0 -0
  1190. scipy/special/_test_internal.pyi +9 -0
  1191. scipy/special/_testutils.py +321 -0
  1192. scipy/special/_ufuncs.cpython-314t-darwin.so +0 -0
  1193. scipy/special/_ufuncs.pyi +522 -0
  1194. scipy/special/_ufuncs.pyx +13173 -0
  1195. scipy/special/_ufuncs_cxx.cpython-314t-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-314t-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-314t-darwin.so +0 -0
  1274. scipy/stats/_axis_nan_policy.py +692 -0
  1275. scipy/stats/_biasedurn.cpython-314t-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-314t-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-314t-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-314t-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-314t-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-314t-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-314t-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-314t-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-314t-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,551 @@
1
+ import math
2
+ import numpy as np
3
+ import scipy._lib._elementwise_iterative_method as eim
4
+ from scipy._lib._util import _RichResult
5
+ from scipy._lib._array_api import xp_copy
6
+
7
+ # TODO:
8
+ # - (maybe?) don't use fancy indexing assignment
9
+ # - figure out how to replace the new `try`/`except`s
10
+
11
+
12
+ def _chandrupatla(func, a, b, *, args=(), xatol=None, xrtol=None,
13
+ fatol=None, frtol=0, maxiter=None, callback=None):
14
+ """Find the root of an elementwise function using Chandrupatla's algorithm.
15
+
16
+ For each element of the output of `func`, `chandrupatla` seeks the scalar
17
+ root that makes the element 0. This function allows for `a`, `b`, and the
18
+ output of `func` to be of any broadcastable shapes.
19
+
20
+ Parameters
21
+ ----------
22
+ func : callable
23
+ The function whose root is desired. The signature must be::
24
+
25
+ func(x: ndarray, *args) -> ndarray
26
+
27
+ where each element of ``x`` is a finite real and ``args`` is a tuple,
28
+ which may contain an arbitrary number of components of any type(s).
29
+ ``func`` must be an elementwise function: each element ``func(x)[i]``
30
+ must equal ``func(x[i])`` for all indices ``i``. `_chandrupatla`
31
+ seeks an array ``x`` such that ``func(x)`` is an array of zeros.
32
+ a, b : array_like
33
+ The lower and upper bounds of the root of the function. Must be
34
+ broadcastable with one another.
35
+ args : tuple, optional
36
+ Additional positional arguments to be passed to `func`.
37
+ xatol, xrtol, fatol, frtol : float, optional
38
+ Absolute and relative tolerances on the root and function value.
39
+ See Notes for details.
40
+ maxiter : int, optional
41
+ The maximum number of iterations of the algorithm to perform.
42
+ The default is the maximum possible number of bisections within
43
+ the (normal) floating point numbers of the relevant dtype.
44
+ callback : callable, optional
45
+ An optional user-supplied function to be called before the first
46
+ iteration and after each iteration.
47
+ Called as ``callback(res)``, where ``res`` is a ``_RichResult``
48
+ similar to that returned by `_chandrupatla` (but containing the current
49
+ iterate's values of all variables). If `callback` raises a
50
+ ``StopIteration``, the algorithm will terminate immediately and
51
+ `_chandrupatla` will return a result.
52
+
53
+ Returns
54
+ -------
55
+ res : _RichResult
56
+ An instance of `scipy._lib._util._RichResult` with the following
57
+ attributes. The descriptions are written as though the values will be
58
+ scalars; however, if `func` returns an array, the outputs will be
59
+ arrays of the same shape.
60
+
61
+ x : float
62
+ The root of the function, if the algorithm terminated successfully.
63
+ nfev : int
64
+ The number of times the function was called to find the root.
65
+ nit : int
66
+ The number of iterations of Chandrupatla's algorithm performed.
67
+ status : int
68
+ An integer representing the exit status of the algorithm.
69
+ ``0`` : The algorithm converged to the specified tolerances.
70
+ ``-1`` : The algorithm encountered an invalid bracket.
71
+ ``-2`` : The maximum number of iterations was reached.
72
+ ``-3`` : A non-finite value was encountered.
73
+ ``-4`` : Iteration was terminated by `callback`.
74
+ ``1`` : The algorithm is proceeding normally (in `callback` only).
75
+ success : bool
76
+ ``True`` when the algorithm terminated successfully (status ``0``).
77
+ fun : float
78
+ The value of `func` evaluated at `x`.
79
+ xl, xr : float
80
+ The lower and upper ends of the bracket.
81
+ fl, fr : float
82
+ The function value at the lower and upper ends of the bracket.
83
+
84
+ Notes
85
+ -----
86
+ Implemented based on Chandrupatla's original paper [1]_.
87
+
88
+ If ``xl`` and ``xr`` are the left and right ends of the bracket,
89
+ ``xmin = xl if abs(func(xl)) <= abs(func(xr)) else xr``,
90
+ and ``fmin0 = min(func(a), func(b))``, then the algorithm is considered to
91
+ have converged when ``abs(xr - xl) < xatol + abs(xmin) * xrtol`` or
92
+ ``fun(xmin) <= fatol + abs(fmin0) * frtol``. This is equivalent to the
93
+ termination condition described in [1]_ with ``xrtol = 4e-10``,
94
+ ``xatol = 1e-5``, and ``fatol = frtol = 0``. The default values are
95
+ ``xatol = 4*tiny``, ``xrtol = 4*eps``, ``frtol = 0``, and ``fatol = tiny``,
96
+ where ``eps`` and ``tiny`` are the precision and smallest normal number
97
+ of the result ``dtype`` of function inputs and outputs.
98
+
99
+ References
100
+ ----------
101
+
102
+ .. [1] Chandrupatla, Tirupathi R.
103
+ "A new hybrid quadratic/bisection algorithm for finding the zero of a
104
+ nonlinear function without using derivatives".
105
+ Advances in Engineering Software, 28(3), 145-149.
106
+ https://doi.org/10.1016/s0965-9978(96)00051-8
107
+
108
+ See Also
109
+ --------
110
+ brentq, brenth, ridder, bisect, newton
111
+
112
+ Examples
113
+ --------
114
+ >>> from scipy import optimize
115
+ >>> def f(x, c):
116
+ ... return x**3 - 2*x - c
117
+ >>> c = 5
118
+ >>> res = optimize._chandrupatla._chandrupatla(f, 0, 3, args=(c,))
119
+ >>> res.x
120
+ 2.0945514818937463
121
+
122
+ >>> c = [3, 4, 5]
123
+ >>> res = optimize._chandrupatla._chandrupatla(f, 0, 3, args=(c,))
124
+ >>> res.x
125
+ array([1.8932892 , 2. , 2.09455148])
126
+
127
+ """
128
+ res = _chandrupatla_iv(func, args, xatol, xrtol,
129
+ fatol, frtol, maxiter, callback)
130
+ func, args, xatol, xrtol, fatol, frtol, maxiter, callback = res
131
+
132
+ # Initialization
133
+ temp = eim._initialize(func, (a, b), args)
134
+ func, xs, fs, args, shape, dtype, xp = temp
135
+ x1, x2 = xs
136
+ f1, f2 = fs
137
+ status = xp.full_like(x1, eim._EINPROGRESS,
138
+ dtype=xp.int32) # in progress
139
+ nit, nfev = 0, 2 # two function evaluations performed above
140
+ finfo = xp.finfo(dtype)
141
+ xatol = 4*finfo.smallest_normal if xatol is None else xatol
142
+ xrtol = 4*finfo.eps if xrtol is None else xrtol
143
+ fatol = finfo.smallest_normal if fatol is None else fatol
144
+ frtol = frtol * xp.minimum(xp.abs(f1), xp.abs(f2))
145
+ maxiter = (math.log2(finfo.max) - math.log2(finfo.smallest_normal)
146
+ if maxiter is None else maxiter)
147
+ work = _RichResult(x1=x1, f1=f1, x2=x2, f2=f2, x3=None, f3=None, t=0.5,
148
+ xatol=xatol, xrtol=xrtol, fatol=fatol, frtol=frtol,
149
+ nit=nit, nfev=nfev, status=status)
150
+ res_work_pairs = [('status', 'status'), ('x', 'xmin'), ('fun', 'fmin'),
151
+ ('nit', 'nit'), ('nfev', 'nfev'), ('xl', 'x1'),
152
+ ('fl', 'f1'), ('xr', 'x2'), ('fr', 'f2')]
153
+
154
+ def pre_func_eval(work):
155
+ # [1] Figure 1 (first box)
156
+ x = work.x1 + work.t * (work.x2 - work.x1)
157
+ return x
158
+
159
+ def post_func_eval(x, f, work):
160
+ # [1] Figure 1 (first diamond and boxes)
161
+ # Note: y/n are reversed in figure; compare to BASIC in appendix
162
+ work.x3, work.f3 = (xp.asarray(work.x2, copy=True),
163
+ xp.asarray(work.f2, copy=True))
164
+ j = xp.sign(f) == xp.sign(work.f1)
165
+ nj = ~j
166
+ work.x3[j], work.f3[j] = work.x1[j], work.f1[j]
167
+ work.x2[nj], work.f2[nj] = work.x1[nj], work.f1[nj]
168
+ work.x1, work.f1 = x, f
169
+
170
+ def check_termination(work):
171
+ # [1] Figure 1 (second diamond)
172
+ # Check for all terminal conditions and record statuses.
173
+
174
+ # See [1] Section 4 (first two sentences)
175
+ i = xp.abs(work.f1) < xp.abs(work.f2)
176
+ work.xmin = xp.where(i, work.x1, work.x2)
177
+ work.fmin = xp.where(i, work.f1, work.f2)
178
+ stop = xp.zeros_like(work.x1, dtype=xp.bool) # termination condition met
179
+
180
+ # If function value tolerance is met, report successful convergence,
181
+ # regardless of other conditions. Note that `frtol` has been redefined
182
+ # as `frtol = frtol * minimum(f1, f2)`, where `f1` and `f2` are the
183
+ # function evaluated at the original ends of the bracket.
184
+ i = xp.abs(work.fmin) <= work.fatol + work.frtol
185
+ work.status[i] = eim._ECONVERGED
186
+ stop[i] = True
187
+
188
+ # If the bracket is no longer valid, report failure (unless a function
189
+ # tolerance is met, as detected above).
190
+ i = (xp.sign(work.f1) == xp.sign(work.f2)) & ~stop
191
+ NaN = xp.asarray(xp.nan, dtype=work.xmin.dtype)
192
+ work.xmin[i], work.fmin[i], work.status[i] = NaN, NaN, eim._ESIGNERR
193
+ stop[i] = True
194
+
195
+ # If the abscissae are non-finite or either function value is NaN,
196
+ # report failure.
197
+ x_nonfinite = ~(xp.isfinite(work.x1) & xp.isfinite(work.x2))
198
+ f_nan = xp.isnan(work.f1) & xp.isnan(work.f2)
199
+ i = (x_nonfinite | f_nan) & ~stop
200
+ work.xmin[i], work.fmin[i], work.status[i] = NaN, NaN, eim._EVALUEERR
201
+ stop[i] = True
202
+
203
+ # This is the convergence criterion used in bisect. Chandrupatla's
204
+ # criterion is equivalent to this except with a factor of 4 on `xrtol`.
205
+ work.dx = xp.abs(work.x2 - work.x1)
206
+ work.tol = xp.abs(work.xmin) * work.xrtol + work.xatol
207
+ i = work.dx < work.tol
208
+ work.status[i] = eim._ECONVERGED
209
+ stop[i] = True
210
+
211
+ return stop
212
+
213
+ def post_termination_check(work):
214
+ # [1] Figure 1 (third diamond and boxes / Equation 1)
215
+ xi1 = (work.x1 - work.x2) / (work.x3 - work.x2)
216
+ with np.errstate(divide='ignore', invalid='ignore'):
217
+ phi1 = (work.f1 - work.f2) / (work.f3 - work.f2)
218
+ alpha = (work.x3 - work.x1) / (work.x2 - work.x1)
219
+ j = ((1 - xp.sqrt(1 - xi1)) < phi1) & (phi1 < xp.sqrt(xi1))
220
+
221
+ f1j, f2j, f3j, alphaj = work.f1[j], work.f2[j], work.f3[j], alpha[j]
222
+ t = xp.full_like(alpha, 0.5)
223
+ t[j] = (f1j / (f1j - f2j) * f3j / (f3j - f2j)
224
+ - alphaj * f1j / (f3j - f1j) * f2j / (f2j - f3j))
225
+
226
+ # [1] Figure 1 (last box; see also BASIC in appendix with comment
227
+ # "Adjust T Away from the Interval Boundary")
228
+ tl = 0.5 * work.tol / work.dx
229
+ work.t = xp.clip(t, tl, 1 - tl)
230
+
231
+ def customize_result(res, shape):
232
+ xl, xr, fl, fr = res['xl'], res['xr'], res['fl'], res['fr']
233
+ i = res['xl'] < res['xr']
234
+ res['xl'] = xp.where(i, xl, xr)
235
+ res['xr'] = xp.where(i, xr, xl)
236
+ res['fl'] = xp.where(i, fl, fr)
237
+ res['fr'] = xp.where(i, fr, fl)
238
+ return shape
239
+
240
+ return eim._loop(work, callback, shape, maxiter, func, args, dtype,
241
+ pre_func_eval, post_func_eval, check_termination,
242
+ post_termination_check, customize_result, res_work_pairs,
243
+ xp=xp)
244
+
245
+
246
+ def _chandrupatla_iv(func, args, xatol, xrtol,
247
+ fatol, frtol, maxiter, callback):
248
+ # Input validation for `_chandrupatla`
249
+
250
+ if not callable(func):
251
+ raise ValueError('`func` must be callable.')
252
+
253
+ if not np.iterable(args):
254
+ args = (args,)
255
+
256
+ # tolerances are floats, not arrays; OK to use NumPy
257
+ tols = np.asarray([xatol if xatol is not None else 1,
258
+ xrtol if xrtol is not None else 1,
259
+ fatol if fatol is not None else 1,
260
+ frtol if frtol is not None else 1])
261
+ if (not np.issubdtype(tols.dtype, np.number) or np.any(tols < 0)
262
+ or np.any(np.isnan(tols)) or tols.shape != (4,)):
263
+ raise ValueError('Tolerances must be non-negative scalars.')
264
+
265
+ if maxiter is not None:
266
+ maxiter_int = int(maxiter)
267
+ if maxiter != maxiter_int or maxiter < 0:
268
+ raise ValueError('`maxiter` must be a non-negative integer.')
269
+
270
+ if callback is not None and not callable(callback):
271
+ raise ValueError('`callback` must be callable.')
272
+
273
+ return func, args, xatol, xrtol, fatol, frtol, maxiter, callback
274
+
275
+
276
+ def _chandrupatla_minimize(func, x1, x2, x3, *, args=(), xatol=None,
277
+ xrtol=None, fatol=None, frtol=None, maxiter=100,
278
+ callback=None):
279
+ """Find the minimizer of an elementwise function.
280
+
281
+ For each element of the output of `func`, `_chandrupatla_minimize` seeks
282
+ the scalar minimizer that minimizes the element. This function allows for
283
+ `x1`, `x2`, `x3`, and the elements of `args` to be arrays of any
284
+ broadcastable shapes.
285
+
286
+ Parameters
287
+ ----------
288
+ func : callable
289
+ The function whose minimizer is desired. The signature must be::
290
+
291
+ func(x: ndarray, *args) -> ndarray
292
+
293
+ where each element of ``x`` is a finite real and ``args`` is a tuple,
294
+ which may contain an arbitrary number of arrays that are broadcastable
295
+ with `x`. ``func`` must be an elementwise function: each element
296
+ ``func(x)[i]`` must equal ``func(x[i])`` for all indices ``i``.
297
+ `_chandrupatla` seeks an array ``x`` such that ``func(x)`` is an array
298
+ of minima.
299
+ x1, x2, x3 : array_like
300
+ The abscissae of a standard scalar minimization bracket. A bracket is
301
+ valid if ``x1 < x2 < x3`` and ``func(x1) > func(x2) <= func(x3)``.
302
+ Must be broadcastable with one another and `args`.
303
+ args : tuple, optional
304
+ Additional positional arguments to be passed to `func`. Must be arrays
305
+ broadcastable with `x1`, `x2`, and `x3`. If the callable to be
306
+ differentiated requires arguments that are not broadcastable with `x`,
307
+ wrap that callable with `func` such that `func` accepts only `x` and
308
+ broadcastable arrays.
309
+ xatol, xrtol, fatol, frtol : float, optional
310
+ Absolute and relative tolerances on the minimizer and function value.
311
+ See Notes for details.
312
+ maxiter : int, optional
313
+ The maximum number of iterations of the algorithm to perform.
314
+ callback : callable, optional
315
+ An optional user-supplied function to be called before the first
316
+ iteration and after each iteration.
317
+ Called as ``callback(res)``, where ``res`` is a ``_RichResult``
318
+ similar to that returned by `_chandrupatla_minimize` (but containing
319
+ the current iterate's values of all variables). If `callback` raises a
320
+ ``StopIteration``, the algorithm will terminate immediately and
321
+ `_chandrupatla_minimize` will return a result.
322
+
323
+ Returns
324
+ -------
325
+ res : _RichResult
326
+ An instance of `scipy._lib._util._RichResult` with the following
327
+ attributes. (The descriptions are written as though the values will be
328
+ scalars; however, if `func` returns an array, the outputs will be
329
+ arrays of the same shape.)
330
+
331
+ success : bool
332
+ ``True`` when the algorithm terminated successfully (status ``0``).
333
+ status : int
334
+ An integer representing the exit status of the algorithm.
335
+ ``0`` : The algorithm converged to the specified tolerances.
336
+ ``-1`` : The algorithm encountered an invalid bracket.
337
+ ``-2`` : The maximum number of iterations was reached.
338
+ ``-3`` : A non-finite value was encountered.
339
+ ``-4`` : Iteration was terminated by `callback`.
340
+ ``1`` : The algorithm is proceeding normally (in `callback` only).
341
+ x : float
342
+ The minimizer of the function, if the algorithm terminated
343
+ successfully.
344
+ fun : float
345
+ The value of `func` evaluated at `x`.
346
+ nfev : int
347
+ The number of points at which `func` was evaluated.
348
+ nit : int
349
+ The number of iterations of the algorithm that were performed.
350
+ xl, xm, xr : float
351
+ The final three-point bracket.
352
+ fl, fm, fr : float
353
+ The function value at the bracket points.
354
+
355
+ Notes
356
+ -----
357
+ Implemented based on Chandrupatla's original paper [1]_.
358
+
359
+ If ``x1 < x2 < x3`` are the points of the bracket and ``f1 > f2 <= f3``
360
+ are the values of ``func`` at those points, then the algorithm is
361
+ considered to have converged when ``x3 - x1 <= abs(x2)*xrtol + xatol``
362
+ or ``(f1 - 2*f2 + f3)/2 <= abs(f2)*frtol + fatol``. Note that first of
363
+ these differs from the termination conditions described in [1]_. The
364
+ default values of `xrtol` is the square root of the precision of the
365
+ appropriate dtype, and ``xatol = fatol = frtol`` is the smallest normal
366
+ number of the appropriate dtype.
367
+
368
+ References
369
+ ----------
370
+ .. [1] Chandrupatla, Tirupathi R. (1998).
371
+ "An efficient quadratic fit-sectioning algorithm for minimization
372
+ without derivatives".
373
+ Computer Methods in Applied Mechanics and Engineering, 152 (1-2),
374
+ 211-217. https://doi.org/10.1016/S0045-7825(97)00190-4
375
+
376
+ See Also
377
+ --------
378
+ golden, brent, bounded
379
+
380
+ Examples
381
+ --------
382
+ >>> from scipy.optimize._chandrupatla import _chandrupatla_minimize
383
+ >>> def f(x, args=1):
384
+ ... return (x - args)**2
385
+ >>> res = _chandrupatla_minimize(f, -5, 0, 5)
386
+ >>> res.x
387
+ 1.0
388
+ >>> c = [1, 1.5, 2]
389
+ >>> res = _chandrupatla_minimize(f, -5, 0, 5, args=(c,))
390
+ >>> res.x
391
+ array([1. , 1.5, 2. ])
392
+ """
393
+ res = _chandrupatla_iv(func, args, xatol, xrtol,
394
+ fatol, frtol, maxiter, callback)
395
+ func, args, xatol, xrtol, fatol, frtol, maxiter, callback = res
396
+
397
+ # Initialization
398
+ xs = (x1, x2, x3)
399
+ temp = eim._initialize(func, xs, args)
400
+ func, xs, fs, args, shape, dtype, xp = temp # line split for PEP8
401
+ x1, x2, x3 = xs
402
+ f1, f2, f3 = fs
403
+ phi = xp.asarray(0.5 + 0.5*5**0.5, dtype=dtype)[()] # golden ratio
404
+ status = xp.full_like(x1, eim._EINPROGRESS, dtype=xp.int32) # in progress
405
+ nit, nfev = 0, 3 # three function evaluations performed above
406
+ fatol = xp.finfo(dtype).smallest_normal if fatol is None else fatol
407
+ frtol = xp.finfo(dtype).smallest_normal if frtol is None else frtol
408
+ xatol = xp.finfo(dtype).smallest_normal if xatol is None else xatol
409
+ xrtol = math.sqrt(xp.finfo(dtype).eps) if xrtol is None else xrtol
410
+
411
+ # Ensure that x1 < x2 < x3 initially.
412
+ xs, fs = xp.stack((x1, x2, x3)), xp.stack((f1, f2, f3))
413
+ i = xp.argsort(xs, axis=0)
414
+ x1, x2, x3 = xp.take_along_axis(xs, i, axis=0) # data-apis/array-api#808
415
+ f1, f2, f3 = xp.take_along_axis(fs, i, axis=0) # data-apis/array-api#808
416
+ q0 = xp_copy(x3) # "At the start, q0 is set at x3..." ([1] after (7))
417
+
418
+ work = _RichResult(x1=x1, f1=f1, x2=x2, f2=f2, x3=x3, f3=f3, phi=phi,
419
+ xatol=xatol, xrtol=xrtol, fatol=fatol, frtol=frtol,
420
+ nit=nit, nfev=nfev, status=status, q0=q0, args=args)
421
+ res_work_pairs = [('status', 'status'),
422
+ ('x', 'x2'), ('fun', 'f2'),
423
+ ('nit', 'nit'), ('nfev', 'nfev'),
424
+ ('xl', 'x1'), ('xm', 'x2'), ('xr', 'x3'),
425
+ ('fl', 'f1'), ('fm', 'f2'), ('fr', 'f3')]
426
+
427
+ def pre_func_eval(work):
428
+ # `_check_termination` is called first -> `x3 - x2 > x2 - x1`
429
+ # But let's calculate a few terms that we'll reuse
430
+ x21 = work.x2 - work.x1
431
+ x32 = work.x3 - work.x2
432
+
433
+ # [1] Section 3. "The quadratic minimum point Q1 is calculated using
434
+ # the relations developed in the previous section." [1] Section 2 (5/6)
435
+ A = x21 * (work.f3 - work.f2)
436
+ B = x32 * (work.f1 - work.f2)
437
+ C = A / (A + B)
438
+ # q1 = C * (work.x1 + work.x2) / 2 + (1 - C) * (work.x2 + work.x3) / 2
439
+ q1 = 0.5 * (C*(work.x1 - work.x3) + work.x2 + work.x3) # much faster
440
+ # this is an array, so multiplying by 0.5 does not change dtype
441
+
442
+ # "If Q1 and Q0 are sufficiently close... Q1 is accepted if it is
443
+ # sufficiently away from the inside point x2"
444
+ i = xp.abs(q1 - work.q0) < 0.5 * xp.abs(x21) # [1] (7)
445
+ xi = q1[i]
446
+ # Later, after (9), "If the point Q1 is in a +/- xtol neighborhood of
447
+ # x2, the new point is chosen in the larger interval at a distance
448
+ # tol away from x2."
449
+ # See also QBASIC code after "Accept Ql adjust if close to X2".
450
+ j = xp.abs(q1[i] - work.x2[i]) <= work.xtol[i]
451
+ xi[j] = work.x2[i][j] + xp.sign(x32[i][j]) * work.xtol[i][j]
452
+
453
+ # "If condition (7) is not satisfied, golden sectioning of the larger
454
+ # interval is carried out to introduce the new point."
455
+ # (For simplicity, we go ahead and calculate it for all points, but we
456
+ # change the elements for which the condition was satisfied.)
457
+ x = work.x2 + (2 - work.phi) * x32
458
+ x[i] = xi
459
+
460
+ # "We define Q0 as the value of Q1 at the previous iteration."
461
+ work.q0 = q1
462
+ return x
463
+
464
+ def post_func_eval(x, f, work):
465
+ # Standard logic for updating a three-point bracket based on a new
466
+ # point. In QBASIC code, see "IF SGN(X-X2) = SGN(X3-X2) THEN...".
467
+ # There is an awful lot of data copying going on here; this would
468
+ # probably benefit from code optimization or implementation in Pythran.
469
+ i = xp.sign(x - work.x2) == xp.sign(work.x3 - work.x2)
470
+ xi, x1i, x2i, x3i = x[i], work.x1[i], work.x2[i], work.x3[i],
471
+ fi, f1i, f2i, f3i = f[i], work.f1[i], work.f2[i], work.f3[i]
472
+ j = fi > f2i
473
+ x3i[j], f3i[j] = xi[j], fi[j]
474
+ j = ~j
475
+ x1i[j], f1i[j], x2i[j], f2i[j] = x2i[j], f2i[j], xi[j], fi[j]
476
+
477
+ ni = ~i
478
+ xni, x1ni, x2ni, x3ni = x[ni], work.x1[ni], work.x2[ni], work.x3[ni],
479
+ fni, f1ni, f2ni, f3ni = f[ni], work.f1[ni], work.f2[ni], work.f3[ni]
480
+ j = fni > f2ni
481
+ x1ni[j], f1ni[j] = xni[j], fni[j]
482
+ j = ~j
483
+ x3ni[j], f3ni[j], x2ni[j], f2ni[j] = x2ni[j], f2ni[j], xni[j], fni[j]
484
+
485
+ work.x1[i], work.x2[i], work.x3[i] = x1i, x2i, x3i
486
+ work.f1[i], work.f2[i], work.f3[i] = f1i, f2i, f3i
487
+ work.x1[ni], work.x2[ni], work.x3[ni] = x1ni, x2ni, x3ni,
488
+ work.f1[ni], work.f2[ni], work.f3[ni] = f1ni, f2ni, f3ni
489
+
490
+ def check_termination(work):
491
+ # Check for all terminal conditions and record statuses.
492
+ stop = xp.zeros_like(work.x1, dtype=bool) # termination condition met
493
+
494
+ # Bracket is invalid; stop and don't return minimizer/minimum
495
+ i = ((work.f2 > work.f1) | (work.f2 > work.f3))
496
+ work.x2[i], work.f2[i] = xp.nan, xp.nan
497
+ stop[i], work.status[i] = True, eim._ESIGNERR
498
+
499
+ # Non-finite values; stop and don't return minimizer/minimum
500
+ finite = xp.isfinite(work.x1+work.x2+work.x3+work.f1+work.f2+work.f3)
501
+ i = ~(finite | stop)
502
+ work.x2[i], work.f2[i] = xp.nan, xp.nan
503
+ stop[i], work.status[i] = True, eim._EVALUEERR
504
+
505
+ # [1] Section 3 "Points 1 and 3 are interchanged if necessary to make
506
+ # the (x2, x3) the larger interval."
507
+ # Note: I had used np.choose; this is much faster. This would be a good
508
+ # place to save e.g. `work.x3 - work.x2` for reuse, but I tried and
509
+ # didn't notice a speed boost, so let's keep it simple.
510
+ i = xp.abs(work.x3 - work.x2) < xp.abs(work.x2 - work.x1)
511
+ temp = work.x1[i]
512
+ work.x1[i] = work.x3[i]
513
+ work.x3[i] = temp
514
+ temp = work.f1[i]
515
+ work.f1[i] = work.f3[i]
516
+ work.f3[i] = temp
517
+
518
+ # [1] Section 3 (bottom of page 212)
519
+ # "We set a tolerance value xtol..."
520
+ work.xtol = xp.abs(work.x2) * work.xrtol + work.xatol # [1] (8)
521
+ # "The convergence based on interval is achieved when..."
522
+ # Note: Equality allowed in case of `xtol=0`
523
+ i = xp.abs(work.x3 - work.x2) <= 2 * work.xtol # [1] (9)
524
+
525
+ # "We define ftol using..."
526
+ ftol = xp.abs(work.f2) * work.frtol + work.fatol # [1] (10)
527
+ # "The convergence based on function values is achieved when..."
528
+ # Note 1: modify in place to incorporate tolerance on function value.
529
+ # Note 2: factor of 2 is not in the text; see QBASIC start of DO loop
530
+ i |= (work.f1 - 2 * work.f2 + work.f3) <= 2*ftol # [1] (11)
531
+ i &= ~stop
532
+ stop[i], work.status[i] = True, eim._ECONVERGED
533
+
534
+ return stop
535
+
536
+ def post_termination_check(work):
537
+ pass
538
+
539
+ def customize_result(res, shape):
540
+ xl, xr, fl, fr = res['xl'], res['xr'], res['fl'], res['fr']
541
+ i = res['xl'] >= res['xr']
542
+ res['xl'] = xp.where(i, xr, xl)
543
+ res['xr'] = xp.where(i, xl, xr)
544
+ res['fl'] = xp.where(i, fr, fl)
545
+ res['fr'] = xp.where(i, fl, fr)
546
+ return shape
547
+
548
+ return eim._loop(work, callback, shape, maxiter, func, args, dtype,
549
+ pre_func_eval, post_func_eval, check_termination,
550
+ post_termination_check, customize_result, res_work_pairs,
551
+ xp=xp)