scipy 1.16.1__cp314-cp314-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1415) hide show
  1. scipy/.dylibs/libgcc_s.1.1.dylib +0 -0
  2. scipy/.dylibs/libgfortran.5.dylib +0 -0
  3. scipy/.dylibs/libquadmath.0.dylib +0 -0
  4. scipy/__config__.py +161 -0
  5. scipy/__init__.py +138 -0
  6. scipy/_cyutility.cpython-314-darwin.so +0 -0
  7. scipy/_distributor_init.py +18 -0
  8. scipy/_lib/__init__.py +14 -0
  9. scipy/_lib/_array_api.py +931 -0
  10. scipy/_lib/_array_api_compat_vendor.py +9 -0
  11. scipy/_lib/_array_api_no_0d.py +103 -0
  12. scipy/_lib/_bunch.py +229 -0
  13. scipy/_lib/_ccallback.py +251 -0
  14. scipy/_lib/_ccallback_c.cpython-314-darwin.so +0 -0
  15. scipy/_lib/_disjoint_set.py +254 -0
  16. scipy/_lib/_docscrape.py +761 -0
  17. scipy/_lib/_elementwise_iterative_method.py +346 -0
  18. scipy/_lib/_fpumode.cpython-314-darwin.so +0 -0
  19. scipy/_lib/_gcutils.py +105 -0
  20. scipy/_lib/_pep440.py +487 -0
  21. scipy/_lib/_sparse.py +41 -0
  22. scipy/_lib/_test_ccallback.cpython-314-darwin.so +0 -0
  23. scipy/_lib/_test_deprecation_call.cpython-314-darwin.so +0 -0
  24. scipy/_lib/_test_deprecation_def.cpython-314-darwin.so +0 -0
  25. scipy/_lib/_testutils.py +373 -0
  26. scipy/_lib/_threadsafety.py +58 -0
  27. scipy/_lib/_tmpdirs.py +86 -0
  28. scipy/_lib/_uarray/LICENSE +29 -0
  29. scipy/_lib/_uarray/__init__.py +116 -0
  30. scipy/_lib/_uarray/_backend.py +707 -0
  31. scipy/_lib/_uarray/_uarray.cpython-314-darwin.so +0 -0
  32. scipy/_lib/_util.py +1283 -0
  33. scipy/_lib/array_api_compat/__init__.py +22 -0
  34. scipy/_lib/array_api_compat/_internal.py +59 -0
  35. scipy/_lib/array_api_compat/common/__init__.py +1 -0
  36. scipy/_lib/array_api_compat/common/_aliases.py +727 -0
  37. scipy/_lib/array_api_compat/common/_fft.py +213 -0
  38. scipy/_lib/array_api_compat/common/_helpers.py +1058 -0
  39. scipy/_lib/array_api_compat/common/_linalg.py +232 -0
  40. scipy/_lib/array_api_compat/common/_typing.py +192 -0
  41. scipy/_lib/array_api_compat/cupy/__init__.py +13 -0
  42. scipy/_lib/array_api_compat/cupy/_aliases.py +156 -0
  43. scipy/_lib/array_api_compat/cupy/_info.py +336 -0
  44. scipy/_lib/array_api_compat/cupy/_typing.py +31 -0
  45. scipy/_lib/array_api_compat/cupy/fft.py +36 -0
  46. scipy/_lib/array_api_compat/cupy/linalg.py +49 -0
  47. scipy/_lib/array_api_compat/dask/__init__.py +0 -0
  48. scipy/_lib/array_api_compat/dask/array/__init__.py +12 -0
  49. scipy/_lib/array_api_compat/dask/array/_aliases.py +376 -0
  50. scipy/_lib/array_api_compat/dask/array/_info.py +416 -0
  51. scipy/_lib/array_api_compat/dask/array/fft.py +21 -0
  52. scipy/_lib/array_api_compat/dask/array/linalg.py +72 -0
  53. scipy/_lib/array_api_compat/numpy/__init__.py +28 -0
  54. scipy/_lib/array_api_compat/numpy/_aliases.py +190 -0
  55. scipy/_lib/array_api_compat/numpy/_info.py +366 -0
  56. scipy/_lib/array_api_compat/numpy/_typing.py +30 -0
  57. scipy/_lib/array_api_compat/numpy/fft.py +35 -0
  58. scipy/_lib/array_api_compat/numpy/linalg.py +143 -0
  59. scipy/_lib/array_api_compat/torch/__init__.py +22 -0
  60. scipy/_lib/array_api_compat/torch/_aliases.py +855 -0
  61. scipy/_lib/array_api_compat/torch/_info.py +369 -0
  62. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  63. scipy/_lib/array_api_compat/torch/fft.py +85 -0
  64. scipy/_lib/array_api_compat/torch/linalg.py +121 -0
  65. scipy/_lib/array_api_extra/__init__.py +38 -0
  66. scipy/_lib/array_api_extra/_delegation.py +171 -0
  67. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  68. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  69. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  70. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  71. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  72. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  73. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  74. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  75. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  76. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  77. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  78. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  79. scipy/_lib/array_api_extra/testing.py +359 -0
  80. scipy/_lib/cobyqa/__init__.py +20 -0
  81. scipy/_lib/cobyqa/framework.py +1240 -0
  82. scipy/_lib/cobyqa/main.py +1506 -0
  83. scipy/_lib/cobyqa/models.py +1529 -0
  84. scipy/_lib/cobyqa/problem.py +1296 -0
  85. scipy/_lib/cobyqa/settings.py +132 -0
  86. scipy/_lib/cobyqa/subsolvers/__init__.py +14 -0
  87. scipy/_lib/cobyqa/subsolvers/geometry.py +387 -0
  88. scipy/_lib/cobyqa/subsolvers/optim.py +1203 -0
  89. scipy/_lib/cobyqa/utils/__init__.py +18 -0
  90. scipy/_lib/cobyqa/utils/exceptions.py +22 -0
  91. scipy/_lib/cobyqa/utils/math.py +77 -0
  92. scipy/_lib/cobyqa/utils/versions.py +67 -0
  93. scipy/_lib/decorator.py +399 -0
  94. scipy/_lib/deprecation.py +274 -0
  95. scipy/_lib/doccer.py +366 -0
  96. scipy/_lib/messagestream.cpython-314-darwin.so +0 -0
  97. scipy/_lib/pyprima/__init__.py +212 -0
  98. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  99. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  100. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  101. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  102. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  103. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  104. scipy/_lib/pyprima/cobyla/update.py +289 -0
  105. scipy/_lib/pyprima/common/__init__.py +0 -0
  106. scipy/_lib/pyprima/common/_bounds.py +34 -0
  107. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  108. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  109. scipy/_lib/pyprima/common/_project.py +173 -0
  110. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  111. scipy/_lib/pyprima/common/consts.py +47 -0
  112. scipy/_lib/pyprima/common/evaluate.py +99 -0
  113. scipy/_lib/pyprima/common/history.py +38 -0
  114. scipy/_lib/pyprima/common/infos.py +30 -0
  115. scipy/_lib/pyprima/common/linalg.py +435 -0
  116. scipy/_lib/pyprima/common/message.py +290 -0
  117. scipy/_lib/pyprima/common/powalg.py +131 -0
  118. scipy/_lib/pyprima/common/preproc.py +277 -0
  119. scipy/_lib/pyprima/common/present.py +5 -0
  120. scipy/_lib/pyprima/common/ratio.py +54 -0
  121. scipy/_lib/pyprima/common/redrho.py +47 -0
  122. scipy/_lib/pyprima/common/selectx.py +296 -0
  123. scipy/_lib/tests/__init__.py +0 -0
  124. scipy/_lib/tests/test__gcutils.py +110 -0
  125. scipy/_lib/tests/test__pep440.py +67 -0
  126. scipy/_lib/tests/test__testutils.py +32 -0
  127. scipy/_lib/tests/test__threadsafety.py +51 -0
  128. scipy/_lib/tests/test__util.py +641 -0
  129. scipy/_lib/tests/test_array_api.py +322 -0
  130. scipy/_lib/tests/test_bunch.py +169 -0
  131. scipy/_lib/tests/test_ccallback.py +196 -0
  132. scipy/_lib/tests/test_config.py +45 -0
  133. scipy/_lib/tests/test_deprecation.py +10 -0
  134. scipy/_lib/tests/test_doccer.py +143 -0
  135. scipy/_lib/tests/test_import_cycles.py +18 -0
  136. scipy/_lib/tests/test_public_api.py +482 -0
  137. scipy/_lib/tests/test_scipy_version.py +28 -0
  138. scipy/_lib/tests/test_tmpdirs.py +48 -0
  139. scipy/_lib/tests/test_warnings.py +137 -0
  140. scipy/_lib/uarray.py +31 -0
  141. scipy/cluster/__init__.py +31 -0
  142. scipy/cluster/_hierarchy.cpython-314-darwin.so +0 -0
  143. scipy/cluster/_optimal_leaf_ordering.cpython-314-darwin.so +0 -0
  144. scipy/cluster/_vq.cpython-314-darwin.so +0 -0
  145. scipy/cluster/hierarchy.py +4348 -0
  146. scipy/cluster/tests/__init__.py +0 -0
  147. scipy/cluster/tests/hierarchy_test_data.py +145 -0
  148. scipy/cluster/tests/test_disjoint_set.py +202 -0
  149. scipy/cluster/tests/test_hierarchy.py +1238 -0
  150. scipy/cluster/tests/test_vq.py +434 -0
  151. scipy/cluster/vq.py +832 -0
  152. scipy/conftest.py +683 -0
  153. scipy/constants/__init__.py +358 -0
  154. scipy/constants/_codata.py +2266 -0
  155. scipy/constants/_constants.py +369 -0
  156. scipy/constants/codata.py +21 -0
  157. scipy/constants/constants.py +53 -0
  158. scipy/constants/tests/__init__.py +0 -0
  159. scipy/constants/tests/test_codata.py +78 -0
  160. scipy/constants/tests/test_constants.py +83 -0
  161. scipy/datasets/__init__.py +90 -0
  162. scipy/datasets/_download_all.py +71 -0
  163. scipy/datasets/_fetchers.py +225 -0
  164. scipy/datasets/_registry.py +26 -0
  165. scipy/datasets/_utils.py +81 -0
  166. scipy/datasets/tests/__init__.py +0 -0
  167. scipy/datasets/tests/test_data.py +128 -0
  168. scipy/differentiate/__init__.py +27 -0
  169. scipy/differentiate/_differentiate.py +1129 -0
  170. scipy/differentiate/tests/__init__.py +0 -0
  171. scipy/differentiate/tests/test_differentiate.py +694 -0
  172. scipy/fft/__init__.py +114 -0
  173. scipy/fft/_backend.py +196 -0
  174. scipy/fft/_basic.py +1650 -0
  175. scipy/fft/_basic_backend.py +197 -0
  176. scipy/fft/_debug_backends.py +22 -0
  177. scipy/fft/_fftlog.py +223 -0
  178. scipy/fft/_fftlog_backend.py +200 -0
  179. scipy/fft/_helper.py +348 -0
  180. scipy/fft/_pocketfft/LICENSE.md +25 -0
  181. scipy/fft/_pocketfft/__init__.py +9 -0
  182. scipy/fft/_pocketfft/basic.py +251 -0
  183. scipy/fft/_pocketfft/helper.py +249 -0
  184. scipy/fft/_pocketfft/pypocketfft.cpython-314-darwin.so +0 -0
  185. scipy/fft/_pocketfft/realtransforms.py +109 -0
  186. scipy/fft/_pocketfft/tests/__init__.py +0 -0
  187. scipy/fft/_pocketfft/tests/test_basic.py +1011 -0
  188. scipy/fft/_pocketfft/tests/test_real_transforms.py +505 -0
  189. scipy/fft/_realtransforms.py +706 -0
  190. scipy/fft/_realtransforms_backend.py +63 -0
  191. scipy/fft/tests/__init__.py +0 -0
  192. scipy/fft/tests/mock_backend.py +96 -0
  193. scipy/fft/tests/test_backend.py +98 -0
  194. scipy/fft/tests/test_basic.py +504 -0
  195. scipy/fft/tests/test_fftlog.py +215 -0
  196. scipy/fft/tests/test_helper.py +558 -0
  197. scipy/fft/tests/test_multithreading.py +84 -0
  198. scipy/fft/tests/test_real_transforms.py +247 -0
  199. scipy/fftpack/__init__.py +103 -0
  200. scipy/fftpack/_basic.py +428 -0
  201. scipy/fftpack/_helper.py +115 -0
  202. scipy/fftpack/_pseudo_diffs.py +554 -0
  203. scipy/fftpack/_realtransforms.py +598 -0
  204. scipy/fftpack/basic.py +20 -0
  205. scipy/fftpack/convolve.cpython-314-darwin.so +0 -0
  206. scipy/fftpack/helper.py +19 -0
  207. scipy/fftpack/pseudo_diffs.py +22 -0
  208. scipy/fftpack/realtransforms.py +19 -0
  209. scipy/fftpack/tests/__init__.py +0 -0
  210. scipy/fftpack/tests/fftw_double_ref.npz +0 -0
  211. scipy/fftpack/tests/fftw_longdouble_ref.npz +0 -0
  212. scipy/fftpack/tests/fftw_single_ref.npz +0 -0
  213. scipy/fftpack/tests/test.npz +0 -0
  214. scipy/fftpack/tests/test_basic.py +877 -0
  215. scipy/fftpack/tests/test_helper.py +54 -0
  216. scipy/fftpack/tests/test_import.py +33 -0
  217. scipy/fftpack/tests/test_pseudo_diffs.py +388 -0
  218. scipy/fftpack/tests/test_real_transforms.py +836 -0
  219. scipy/integrate/__init__.py +122 -0
  220. scipy/integrate/_bvp.py +1160 -0
  221. scipy/integrate/_cubature.py +729 -0
  222. scipy/integrate/_dop.cpython-314-darwin.so +0 -0
  223. scipy/integrate/_ivp/__init__.py +8 -0
  224. scipy/integrate/_ivp/base.py +290 -0
  225. scipy/integrate/_ivp/bdf.py +478 -0
  226. scipy/integrate/_ivp/common.py +451 -0
  227. scipy/integrate/_ivp/dop853_coefficients.py +193 -0
  228. scipy/integrate/_ivp/ivp.py +755 -0
  229. scipy/integrate/_ivp/lsoda.py +224 -0
  230. scipy/integrate/_ivp/radau.py +572 -0
  231. scipy/integrate/_ivp/rk.py +601 -0
  232. scipy/integrate/_ivp/tests/__init__.py +0 -0
  233. scipy/integrate/_ivp/tests/test_ivp.py +1287 -0
  234. scipy/integrate/_ivp/tests/test_rk.py +37 -0
  235. scipy/integrate/_lebedev.py +5450 -0
  236. scipy/integrate/_lsoda.cpython-314-darwin.so +0 -0
  237. scipy/integrate/_ode.py +1395 -0
  238. scipy/integrate/_odepack.cpython-314-darwin.so +0 -0
  239. scipy/integrate/_odepack_py.py +273 -0
  240. scipy/integrate/_quad_vec.py +674 -0
  241. scipy/integrate/_quadpack.cpython-314-darwin.so +0 -0
  242. scipy/integrate/_quadpack_py.py +1283 -0
  243. scipy/integrate/_quadrature.py +1336 -0
  244. scipy/integrate/_rules/__init__.py +12 -0
  245. scipy/integrate/_rules/_base.py +518 -0
  246. scipy/integrate/_rules/_gauss_kronrod.py +202 -0
  247. scipy/integrate/_rules/_gauss_legendre.py +62 -0
  248. scipy/integrate/_rules/_genz_malik.py +210 -0
  249. scipy/integrate/_tanhsinh.py +1385 -0
  250. scipy/integrate/_test_multivariate.cpython-314-darwin.so +0 -0
  251. scipy/integrate/_test_odeint_banded.cpython-314-darwin.so +0 -0
  252. scipy/integrate/_vode.cpython-314-darwin.so +0 -0
  253. scipy/integrate/dop.py +15 -0
  254. scipy/integrate/lsoda.py +15 -0
  255. scipy/integrate/odepack.py +17 -0
  256. scipy/integrate/quadpack.py +23 -0
  257. scipy/integrate/tests/__init__.py +0 -0
  258. scipy/integrate/tests/test__quad_vec.py +211 -0
  259. scipy/integrate/tests/test_banded_ode_solvers.py +305 -0
  260. scipy/integrate/tests/test_bvp.py +714 -0
  261. scipy/integrate/tests/test_cubature.py +1375 -0
  262. scipy/integrate/tests/test_integrate.py +840 -0
  263. scipy/integrate/tests/test_odeint_jac.py +74 -0
  264. scipy/integrate/tests/test_quadpack.py +680 -0
  265. scipy/integrate/tests/test_quadrature.py +730 -0
  266. scipy/integrate/tests/test_tanhsinh.py +1171 -0
  267. scipy/integrate/vode.py +15 -0
  268. scipy/interpolate/__init__.py +228 -0
  269. scipy/interpolate/_bary_rational.py +715 -0
  270. scipy/interpolate/_bsplines.py +2469 -0
  271. scipy/interpolate/_cubic.py +973 -0
  272. scipy/interpolate/_dfitpack.cpython-314-darwin.so +0 -0
  273. scipy/interpolate/_dierckx.cpython-314-darwin.so +0 -0
  274. scipy/interpolate/_fitpack.cpython-314-darwin.so +0 -0
  275. scipy/interpolate/_fitpack2.py +2397 -0
  276. scipy/interpolate/_fitpack_impl.py +811 -0
  277. scipy/interpolate/_fitpack_py.py +898 -0
  278. scipy/interpolate/_fitpack_repro.py +996 -0
  279. scipy/interpolate/_interpnd.cpython-314-darwin.so +0 -0
  280. scipy/interpolate/_interpolate.py +2266 -0
  281. scipy/interpolate/_ndbspline.py +415 -0
  282. scipy/interpolate/_ndgriddata.py +329 -0
  283. scipy/interpolate/_pade.py +67 -0
  284. scipy/interpolate/_polyint.py +1025 -0
  285. scipy/interpolate/_ppoly.cpython-314-darwin.so +0 -0
  286. scipy/interpolate/_rbf.py +290 -0
  287. scipy/interpolate/_rbfinterp.py +550 -0
  288. scipy/interpolate/_rbfinterp_pythran.cpython-314-darwin.so +0 -0
  289. scipy/interpolate/_rgi.py +764 -0
  290. scipy/interpolate/_rgi_cython.cpython-314-darwin.so +0 -0
  291. scipy/interpolate/dfitpack.py +24 -0
  292. scipy/interpolate/fitpack.py +31 -0
  293. scipy/interpolate/fitpack2.py +29 -0
  294. scipy/interpolate/interpnd.py +24 -0
  295. scipy/interpolate/interpolate.py +30 -0
  296. scipy/interpolate/ndgriddata.py +23 -0
  297. scipy/interpolate/polyint.py +24 -0
  298. scipy/interpolate/rbf.py +18 -0
  299. scipy/interpolate/tests/__init__.py +0 -0
  300. scipy/interpolate/tests/data/bug-1310.npz +0 -0
  301. scipy/interpolate/tests/data/estimate_gradients_hang.npy +0 -0
  302. scipy/interpolate/tests/data/gcvspl.npz +0 -0
  303. scipy/interpolate/tests/test_bary_rational.py +368 -0
  304. scipy/interpolate/tests/test_bsplines.py +3754 -0
  305. scipy/interpolate/tests/test_fitpack.py +519 -0
  306. scipy/interpolate/tests/test_fitpack2.py +1431 -0
  307. scipy/interpolate/tests/test_gil.py +64 -0
  308. scipy/interpolate/tests/test_interpnd.py +452 -0
  309. scipy/interpolate/tests/test_interpolate.py +2630 -0
  310. scipy/interpolate/tests/test_ndgriddata.py +308 -0
  311. scipy/interpolate/tests/test_pade.py +107 -0
  312. scipy/interpolate/tests/test_polyint.py +972 -0
  313. scipy/interpolate/tests/test_rbf.py +246 -0
  314. scipy/interpolate/tests/test_rbfinterp.py +534 -0
  315. scipy/interpolate/tests/test_rgi.py +1151 -0
  316. scipy/io/__init__.py +116 -0
  317. scipy/io/_fast_matrix_market/__init__.py +600 -0
  318. scipy/io/_fast_matrix_market/_fmm_core.cpython-314-darwin.so +0 -0
  319. scipy/io/_fortran.py +354 -0
  320. scipy/io/_harwell_boeing/__init__.py +7 -0
  321. scipy/io/_harwell_boeing/_fortran_format_parser.py +316 -0
  322. scipy/io/_harwell_boeing/hb.py +571 -0
  323. scipy/io/_harwell_boeing/tests/__init__.py +0 -0
  324. scipy/io/_harwell_boeing/tests/test_fortran_format.py +74 -0
  325. scipy/io/_harwell_boeing/tests/test_hb.py +70 -0
  326. scipy/io/_idl.py +917 -0
  327. scipy/io/_mmio.py +968 -0
  328. scipy/io/_netcdf.py +1104 -0
  329. scipy/io/_test_fortran.cpython-314-darwin.so +0 -0
  330. scipy/io/arff/__init__.py +28 -0
  331. scipy/io/arff/_arffread.py +873 -0
  332. scipy/io/arff/arffread.py +19 -0
  333. scipy/io/arff/tests/__init__.py +0 -0
  334. scipy/io/arff/tests/data/iris.arff +225 -0
  335. scipy/io/arff/tests/data/missing.arff +8 -0
  336. scipy/io/arff/tests/data/nodata.arff +11 -0
  337. scipy/io/arff/tests/data/quoted_nominal.arff +13 -0
  338. scipy/io/arff/tests/data/quoted_nominal_spaces.arff +13 -0
  339. scipy/io/arff/tests/data/test1.arff +10 -0
  340. scipy/io/arff/tests/data/test10.arff +8 -0
  341. scipy/io/arff/tests/data/test11.arff +11 -0
  342. scipy/io/arff/tests/data/test2.arff +15 -0
  343. scipy/io/arff/tests/data/test3.arff +6 -0
  344. scipy/io/arff/tests/data/test4.arff +11 -0
  345. scipy/io/arff/tests/data/test5.arff +26 -0
  346. scipy/io/arff/tests/data/test6.arff +12 -0
  347. scipy/io/arff/tests/data/test7.arff +15 -0
  348. scipy/io/arff/tests/data/test8.arff +12 -0
  349. scipy/io/arff/tests/data/test9.arff +14 -0
  350. scipy/io/arff/tests/test_arffread.py +421 -0
  351. scipy/io/harwell_boeing.py +17 -0
  352. scipy/io/idl.py +17 -0
  353. scipy/io/matlab/__init__.py +66 -0
  354. scipy/io/matlab/_byteordercodes.py +75 -0
  355. scipy/io/matlab/_mio.py +375 -0
  356. scipy/io/matlab/_mio4.py +632 -0
  357. scipy/io/matlab/_mio5.py +901 -0
  358. scipy/io/matlab/_mio5_params.py +281 -0
  359. scipy/io/matlab/_mio5_utils.cpython-314-darwin.so +0 -0
  360. scipy/io/matlab/_mio_utils.cpython-314-darwin.so +0 -0
  361. scipy/io/matlab/_miobase.py +435 -0
  362. scipy/io/matlab/_streams.cpython-314-darwin.so +0 -0
  363. scipy/io/matlab/byteordercodes.py +17 -0
  364. scipy/io/matlab/mio.py +16 -0
  365. scipy/io/matlab/mio4.py +17 -0
  366. scipy/io/matlab/mio5.py +19 -0
  367. scipy/io/matlab/mio5_params.py +18 -0
  368. scipy/io/matlab/mio5_utils.py +17 -0
  369. scipy/io/matlab/mio_utils.py +17 -0
  370. scipy/io/matlab/miobase.py +16 -0
  371. scipy/io/matlab/streams.py +16 -0
  372. scipy/io/matlab/tests/__init__.py +0 -0
  373. scipy/io/matlab/tests/data/bad_miuint32.mat +0 -0
  374. scipy/io/matlab/tests/data/bad_miutf8_array_name.mat +0 -0
  375. scipy/io/matlab/tests/data/big_endian.mat +0 -0
  376. scipy/io/matlab/tests/data/broken_utf8.mat +0 -0
  377. scipy/io/matlab/tests/data/corrupted_zlib_checksum.mat +0 -0
  378. scipy/io/matlab/tests/data/corrupted_zlib_data.mat +0 -0
  379. scipy/io/matlab/tests/data/debigged_m4.mat +0 -0
  380. scipy/io/matlab/tests/data/japanese_utf8.txt +5 -0
  381. scipy/io/matlab/tests/data/little_endian.mat +0 -0
  382. scipy/io/matlab/tests/data/logical_sparse.mat +0 -0
  383. scipy/io/matlab/tests/data/malformed1.mat +0 -0
  384. scipy/io/matlab/tests/data/miuint32_for_miint32.mat +0 -0
  385. scipy/io/matlab/tests/data/miutf8_array_name.mat +0 -0
  386. scipy/io/matlab/tests/data/nasty_duplicate_fieldnames.mat +0 -0
  387. scipy/io/matlab/tests/data/one_by_zero_char.mat +0 -0
  388. scipy/io/matlab/tests/data/parabola.mat +0 -0
  389. scipy/io/matlab/tests/data/single_empty_string.mat +0 -0
  390. scipy/io/matlab/tests/data/some_functions.mat +0 -0
  391. scipy/io/matlab/tests/data/sqr.mat +0 -0
  392. scipy/io/matlab/tests/data/test3dmatrix_6.1_SOL2.mat +0 -0
  393. scipy/io/matlab/tests/data/test3dmatrix_6.5.1_GLNX86.mat +0 -0
  394. scipy/io/matlab/tests/data/test3dmatrix_7.1_GLNX86.mat +0 -0
  395. scipy/io/matlab/tests/data/test3dmatrix_7.4_GLNX86.mat +0 -0
  396. scipy/io/matlab/tests/data/test_empty_struct.mat +0 -0
  397. scipy/io/matlab/tests/data/test_mat4_le_floats.mat +0 -0
  398. scipy/io/matlab/tests/data/test_skip_variable.mat +0 -0
  399. scipy/io/matlab/tests/data/testbool_8_WIN64.mat +0 -0
  400. scipy/io/matlab/tests/data/testcell_6.1_SOL2.mat +0 -0
  401. scipy/io/matlab/tests/data/testcell_6.5.1_GLNX86.mat +0 -0
  402. scipy/io/matlab/tests/data/testcell_7.1_GLNX86.mat +0 -0
  403. scipy/io/matlab/tests/data/testcell_7.4_GLNX86.mat +0 -0
  404. scipy/io/matlab/tests/data/testcellnest_6.1_SOL2.mat +0 -0
  405. scipy/io/matlab/tests/data/testcellnest_6.5.1_GLNX86.mat +0 -0
  406. scipy/io/matlab/tests/data/testcellnest_7.1_GLNX86.mat +0 -0
  407. scipy/io/matlab/tests/data/testcellnest_7.4_GLNX86.mat +0 -0
  408. scipy/io/matlab/tests/data/testcomplex_4.2c_SOL2.mat +0 -0
  409. scipy/io/matlab/tests/data/testcomplex_6.1_SOL2.mat +0 -0
  410. scipy/io/matlab/tests/data/testcomplex_6.5.1_GLNX86.mat +0 -0
  411. scipy/io/matlab/tests/data/testcomplex_7.1_GLNX86.mat +0 -0
  412. scipy/io/matlab/tests/data/testcomplex_7.4_GLNX86.mat +0 -0
  413. scipy/io/matlab/tests/data/testdouble_4.2c_SOL2.mat +0 -0
  414. scipy/io/matlab/tests/data/testdouble_6.1_SOL2.mat +0 -0
  415. scipy/io/matlab/tests/data/testdouble_6.5.1_GLNX86.mat +0 -0
  416. scipy/io/matlab/tests/data/testdouble_7.1_GLNX86.mat +0 -0
  417. scipy/io/matlab/tests/data/testdouble_7.4_GLNX86.mat +0 -0
  418. scipy/io/matlab/tests/data/testemptycell_5.3_SOL2.mat +0 -0
  419. scipy/io/matlab/tests/data/testemptycell_6.5.1_GLNX86.mat +0 -0
  420. scipy/io/matlab/tests/data/testemptycell_7.1_GLNX86.mat +0 -0
  421. scipy/io/matlab/tests/data/testemptycell_7.4_GLNX86.mat +0 -0
  422. scipy/io/matlab/tests/data/testfunc_7.4_GLNX86.mat +0 -0
  423. scipy/io/matlab/tests/data/testhdf5_7.4_GLNX86.mat +0 -0
  424. scipy/io/matlab/tests/data/testmatrix_4.2c_SOL2.mat +0 -0
  425. scipy/io/matlab/tests/data/testmatrix_6.1_SOL2.mat +0 -0
  426. scipy/io/matlab/tests/data/testmatrix_6.5.1_GLNX86.mat +0 -0
  427. scipy/io/matlab/tests/data/testmatrix_7.1_GLNX86.mat +0 -0
  428. scipy/io/matlab/tests/data/testmatrix_7.4_GLNX86.mat +0 -0
  429. scipy/io/matlab/tests/data/testminus_4.2c_SOL2.mat +0 -0
  430. scipy/io/matlab/tests/data/testminus_6.1_SOL2.mat +0 -0
  431. scipy/io/matlab/tests/data/testminus_6.5.1_GLNX86.mat +0 -0
  432. scipy/io/matlab/tests/data/testminus_7.1_GLNX86.mat +0 -0
  433. scipy/io/matlab/tests/data/testminus_7.4_GLNX86.mat +0 -0
  434. scipy/io/matlab/tests/data/testmulti_4.2c_SOL2.mat +0 -0
  435. scipy/io/matlab/tests/data/testmulti_7.1_GLNX86.mat +0 -0
  436. scipy/io/matlab/tests/data/testmulti_7.4_GLNX86.mat +0 -0
  437. scipy/io/matlab/tests/data/testobject_6.1_SOL2.mat +0 -0
  438. scipy/io/matlab/tests/data/testobject_6.5.1_GLNX86.mat +0 -0
  439. scipy/io/matlab/tests/data/testobject_7.1_GLNX86.mat +0 -0
  440. scipy/io/matlab/tests/data/testobject_7.4_GLNX86.mat +0 -0
  441. scipy/io/matlab/tests/data/testonechar_4.2c_SOL2.mat +0 -0
  442. scipy/io/matlab/tests/data/testonechar_6.1_SOL2.mat +0 -0
  443. scipy/io/matlab/tests/data/testonechar_6.5.1_GLNX86.mat +0 -0
  444. scipy/io/matlab/tests/data/testonechar_7.1_GLNX86.mat +0 -0
  445. scipy/io/matlab/tests/data/testonechar_7.4_GLNX86.mat +0 -0
  446. scipy/io/matlab/tests/data/testscalarcell_7.4_GLNX86.mat +0 -0
  447. scipy/io/matlab/tests/data/testsimplecell.mat +0 -0
  448. scipy/io/matlab/tests/data/testsparse_4.2c_SOL2.mat +0 -0
  449. scipy/io/matlab/tests/data/testsparse_6.1_SOL2.mat +0 -0
  450. scipy/io/matlab/tests/data/testsparse_6.5.1_GLNX86.mat +0 -0
  451. scipy/io/matlab/tests/data/testsparse_7.1_GLNX86.mat +0 -0
  452. scipy/io/matlab/tests/data/testsparse_7.4_GLNX86.mat +0 -0
  453. scipy/io/matlab/tests/data/testsparsecomplex_4.2c_SOL2.mat +0 -0
  454. scipy/io/matlab/tests/data/testsparsecomplex_6.1_SOL2.mat +0 -0
  455. scipy/io/matlab/tests/data/testsparsecomplex_6.5.1_GLNX86.mat +0 -0
  456. scipy/io/matlab/tests/data/testsparsecomplex_7.1_GLNX86.mat +0 -0
  457. scipy/io/matlab/tests/data/testsparsecomplex_7.4_GLNX86.mat +0 -0
  458. scipy/io/matlab/tests/data/testsparsefloat_7.4_GLNX86.mat +0 -0
  459. scipy/io/matlab/tests/data/teststring_4.2c_SOL2.mat +0 -0
  460. scipy/io/matlab/tests/data/teststring_6.1_SOL2.mat +0 -0
  461. scipy/io/matlab/tests/data/teststring_6.5.1_GLNX86.mat +0 -0
  462. scipy/io/matlab/tests/data/teststring_7.1_GLNX86.mat +0 -0
  463. scipy/io/matlab/tests/data/teststring_7.4_GLNX86.mat +0 -0
  464. scipy/io/matlab/tests/data/teststringarray_4.2c_SOL2.mat +0 -0
  465. scipy/io/matlab/tests/data/teststringarray_6.1_SOL2.mat +0 -0
  466. scipy/io/matlab/tests/data/teststringarray_6.5.1_GLNX86.mat +0 -0
  467. scipy/io/matlab/tests/data/teststringarray_7.1_GLNX86.mat +0 -0
  468. scipy/io/matlab/tests/data/teststringarray_7.4_GLNX86.mat +0 -0
  469. scipy/io/matlab/tests/data/teststruct_6.1_SOL2.mat +0 -0
  470. scipy/io/matlab/tests/data/teststruct_6.5.1_GLNX86.mat +0 -0
  471. scipy/io/matlab/tests/data/teststruct_7.1_GLNX86.mat +0 -0
  472. scipy/io/matlab/tests/data/teststruct_7.4_GLNX86.mat +0 -0
  473. scipy/io/matlab/tests/data/teststructarr_6.1_SOL2.mat +0 -0
  474. scipy/io/matlab/tests/data/teststructarr_6.5.1_GLNX86.mat +0 -0
  475. scipy/io/matlab/tests/data/teststructarr_7.1_GLNX86.mat +0 -0
  476. scipy/io/matlab/tests/data/teststructarr_7.4_GLNX86.mat +0 -0
  477. scipy/io/matlab/tests/data/teststructnest_6.1_SOL2.mat +0 -0
  478. scipy/io/matlab/tests/data/teststructnest_6.5.1_GLNX86.mat +0 -0
  479. scipy/io/matlab/tests/data/teststructnest_7.1_GLNX86.mat +0 -0
  480. scipy/io/matlab/tests/data/teststructnest_7.4_GLNX86.mat +0 -0
  481. scipy/io/matlab/tests/data/testunicode_7.1_GLNX86.mat +0 -0
  482. scipy/io/matlab/tests/data/testunicode_7.4_GLNX86.mat +0 -0
  483. scipy/io/matlab/tests/data/testvec_4_GLNX86.mat +0 -0
  484. scipy/io/matlab/tests/test_byteordercodes.py +29 -0
  485. scipy/io/matlab/tests/test_mio.py +1399 -0
  486. scipy/io/matlab/tests/test_mio5_utils.py +179 -0
  487. scipy/io/matlab/tests/test_mio_funcs.py +51 -0
  488. scipy/io/matlab/tests/test_mio_utils.py +45 -0
  489. scipy/io/matlab/tests/test_miobase.py +32 -0
  490. scipy/io/matlab/tests/test_pathological.py +33 -0
  491. scipy/io/matlab/tests/test_streams.py +241 -0
  492. scipy/io/mmio.py +17 -0
  493. scipy/io/netcdf.py +17 -0
  494. scipy/io/tests/__init__.py +0 -0
  495. scipy/io/tests/data/Transparent Busy.ani +0 -0
  496. scipy/io/tests/data/array_float32_1d.sav +0 -0
  497. scipy/io/tests/data/array_float32_2d.sav +0 -0
  498. scipy/io/tests/data/array_float32_3d.sav +0 -0
  499. scipy/io/tests/data/array_float32_4d.sav +0 -0
  500. scipy/io/tests/data/array_float32_5d.sav +0 -0
  501. scipy/io/tests/data/array_float32_6d.sav +0 -0
  502. scipy/io/tests/data/array_float32_7d.sav +0 -0
  503. scipy/io/tests/data/array_float32_8d.sav +0 -0
  504. scipy/io/tests/data/array_float32_pointer_1d.sav +0 -0
  505. scipy/io/tests/data/array_float32_pointer_2d.sav +0 -0
  506. scipy/io/tests/data/array_float32_pointer_3d.sav +0 -0
  507. scipy/io/tests/data/array_float32_pointer_4d.sav +0 -0
  508. scipy/io/tests/data/array_float32_pointer_5d.sav +0 -0
  509. scipy/io/tests/data/array_float32_pointer_6d.sav +0 -0
  510. scipy/io/tests/data/array_float32_pointer_7d.sav +0 -0
  511. scipy/io/tests/data/array_float32_pointer_8d.sav +0 -0
  512. scipy/io/tests/data/example_1.nc +0 -0
  513. scipy/io/tests/data/example_2.nc +0 -0
  514. scipy/io/tests/data/example_3_maskedvals.nc +0 -0
  515. scipy/io/tests/data/fortran-3x3d-2i.dat +0 -0
  516. scipy/io/tests/data/fortran-mixed.dat +0 -0
  517. scipy/io/tests/data/fortran-sf8-11x1x10.dat +0 -0
  518. scipy/io/tests/data/fortran-sf8-15x10x22.dat +0 -0
  519. scipy/io/tests/data/fortran-sf8-1x1x1.dat +0 -0
  520. scipy/io/tests/data/fortran-sf8-1x1x5.dat +0 -0
  521. scipy/io/tests/data/fortran-sf8-1x1x7.dat +0 -0
  522. scipy/io/tests/data/fortran-sf8-1x3x5.dat +0 -0
  523. scipy/io/tests/data/fortran-si4-11x1x10.dat +0 -0
  524. scipy/io/tests/data/fortran-si4-15x10x22.dat +0 -0
  525. scipy/io/tests/data/fortran-si4-1x1x1.dat +0 -0
  526. scipy/io/tests/data/fortran-si4-1x1x5.dat +0 -0
  527. scipy/io/tests/data/fortran-si4-1x1x7.dat +0 -0
  528. scipy/io/tests/data/fortran-si4-1x3x5.dat +0 -0
  529. scipy/io/tests/data/invalid_pointer.sav +0 -0
  530. scipy/io/tests/data/null_pointer.sav +0 -0
  531. scipy/io/tests/data/scalar_byte.sav +0 -0
  532. scipy/io/tests/data/scalar_byte_descr.sav +0 -0
  533. scipy/io/tests/data/scalar_complex32.sav +0 -0
  534. scipy/io/tests/data/scalar_complex64.sav +0 -0
  535. scipy/io/tests/data/scalar_float32.sav +0 -0
  536. scipy/io/tests/data/scalar_float64.sav +0 -0
  537. scipy/io/tests/data/scalar_heap_pointer.sav +0 -0
  538. scipy/io/tests/data/scalar_int16.sav +0 -0
  539. scipy/io/tests/data/scalar_int32.sav +0 -0
  540. scipy/io/tests/data/scalar_int64.sav +0 -0
  541. scipy/io/tests/data/scalar_string.sav +0 -0
  542. scipy/io/tests/data/scalar_uint16.sav +0 -0
  543. scipy/io/tests/data/scalar_uint32.sav +0 -0
  544. scipy/io/tests/data/scalar_uint64.sav +0 -0
  545. scipy/io/tests/data/struct_arrays.sav +0 -0
  546. scipy/io/tests/data/struct_arrays_byte_idl80.sav +0 -0
  547. scipy/io/tests/data/struct_arrays_replicated.sav +0 -0
  548. scipy/io/tests/data/struct_arrays_replicated_3d.sav +0 -0
  549. scipy/io/tests/data/struct_inherit.sav +0 -0
  550. scipy/io/tests/data/struct_pointer_arrays.sav +0 -0
  551. scipy/io/tests/data/struct_pointer_arrays_replicated.sav +0 -0
  552. scipy/io/tests/data/struct_pointer_arrays_replicated_3d.sav +0 -0
  553. scipy/io/tests/data/struct_pointers.sav +0 -0
  554. scipy/io/tests/data/struct_pointers_replicated.sav +0 -0
  555. scipy/io/tests/data/struct_pointers_replicated_3d.sav +0 -0
  556. scipy/io/tests/data/struct_scalars.sav +0 -0
  557. scipy/io/tests/data/struct_scalars_replicated.sav +0 -0
  558. scipy/io/tests/data/struct_scalars_replicated_3d.sav +0 -0
  559. scipy/io/tests/data/test-1234Hz-le-1ch-10S-20bit-extra.wav +0 -0
  560. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-be.wav +0 -0
  561. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-le.wav +0 -0
  562. scipy/io/tests/data/test-44100Hz-be-1ch-4bytes.wav +0 -0
  563. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof-no-data.wav +0 -0
  564. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof.wav +0 -0
  565. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wav +0 -0
  566. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-rf64.wav +0 -0
  567. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes.wav +0 -0
  568. scipy/io/tests/data/test-48000Hz-2ch-64bit-float-le-wavex.wav +0 -0
  569. scipy/io/tests/data/test-8000Hz-be-3ch-5S-24bit.wav +0 -0
  570. scipy/io/tests/data/test-8000Hz-le-1ch-1byte-ulaw.wav +0 -0
  571. scipy/io/tests/data/test-8000Hz-le-2ch-1byteu.wav +0 -0
  572. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-inconsistent.wav +0 -0
  573. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-rf64.wav +0 -0
  574. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit.wav +0 -0
  575. scipy/io/tests/data/test-8000Hz-le-3ch-5S-36bit.wav +0 -0
  576. scipy/io/tests/data/test-8000Hz-le-3ch-5S-45bit.wav +0 -0
  577. scipy/io/tests/data/test-8000Hz-le-3ch-5S-53bit.wav +0 -0
  578. scipy/io/tests/data/test-8000Hz-le-3ch-5S-64bit.wav +0 -0
  579. scipy/io/tests/data/test-8000Hz-le-4ch-9S-12bit.wav +0 -0
  580. scipy/io/tests/data/test-8000Hz-le-5ch-9S-5bit.wav +0 -0
  581. scipy/io/tests/data/various_compressed.sav +0 -0
  582. scipy/io/tests/test_fortran.py +264 -0
  583. scipy/io/tests/test_idl.py +483 -0
  584. scipy/io/tests/test_mmio.py +831 -0
  585. scipy/io/tests/test_netcdf.py +550 -0
  586. scipy/io/tests/test_paths.py +93 -0
  587. scipy/io/tests/test_wavfile.py +501 -0
  588. scipy/io/wavfile.py +938 -0
  589. scipy/linalg/__init__.pxd +1 -0
  590. scipy/linalg/__init__.py +236 -0
  591. scipy/linalg/_basic.py +2146 -0
  592. scipy/linalg/_blas_subroutines.h +164 -0
  593. scipy/linalg/_cythonized_array_utils.cpython-314-darwin.so +0 -0
  594. scipy/linalg/_cythonized_array_utils.pxd +40 -0
  595. scipy/linalg/_cythonized_array_utils.pyi +16 -0
  596. scipy/linalg/_decomp.py +1645 -0
  597. scipy/linalg/_decomp_cholesky.py +413 -0
  598. scipy/linalg/_decomp_cossin.py +236 -0
  599. scipy/linalg/_decomp_interpolative.cpython-314-darwin.so +0 -0
  600. scipy/linalg/_decomp_ldl.py +356 -0
  601. scipy/linalg/_decomp_lu.py +401 -0
  602. scipy/linalg/_decomp_lu_cython.cpython-314-darwin.so +0 -0
  603. scipy/linalg/_decomp_lu_cython.pyi +6 -0
  604. scipy/linalg/_decomp_polar.py +113 -0
  605. scipy/linalg/_decomp_qr.py +494 -0
  606. scipy/linalg/_decomp_qz.py +452 -0
  607. scipy/linalg/_decomp_schur.py +336 -0
  608. scipy/linalg/_decomp_svd.py +545 -0
  609. scipy/linalg/_decomp_update.cpython-314-darwin.so +0 -0
  610. scipy/linalg/_expm_frechet.py +417 -0
  611. scipy/linalg/_fblas.cpython-314-darwin.so +0 -0
  612. scipy/linalg/_flapack.cpython-314-darwin.so +0 -0
  613. scipy/linalg/_lapack_subroutines.h +1521 -0
  614. scipy/linalg/_linalg_pythran.cpython-314-darwin.so +0 -0
  615. scipy/linalg/_matfuncs.py +1050 -0
  616. scipy/linalg/_matfuncs_expm.cpython-314-darwin.so +0 -0
  617. scipy/linalg/_matfuncs_expm.pyi +6 -0
  618. scipy/linalg/_matfuncs_inv_ssq.py +886 -0
  619. scipy/linalg/_matfuncs_schur_sqrtm.cpython-314-darwin.so +0 -0
  620. scipy/linalg/_matfuncs_sqrtm.py +107 -0
  621. scipy/linalg/_matfuncs_sqrtm_triu.cpython-314-darwin.so +0 -0
  622. scipy/linalg/_misc.py +191 -0
  623. scipy/linalg/_procrustes.py +113 -0
  624. scipy/linalg/_sketches.py +189 -0
  625. scipy/linalg/_solve_toeplitz.cpython-314-darwin.so +0 -0
  626. scipy/linalg/_solvers.py +862 -0
  627. scipy/linalg/_special_matrices.py +1322 -0
  628. scipy/linalg/_testutils.py +65 -0
  629. scipy/linalg/basic.py +23 -0
  630. scipy/linalg/blas.py +495 -0
  631. scipy/linalg/cython_blas.cpython-314-darwin.so +0 -0
  632. scipy/linalg/cython_blas.pxd +169 -0
  633. scipy/linalg/cython_blas.pyx +1432 -0
  634. scipy/linalg/cython_lapack.cpython-314-darwin.so +0 -0
  635. scipy/linalg/cython_lapack.pxd +1528 -0
  636. scipy/linalg/cython_lapack.pyx +12045 -0
  637. scipy/linalg/decomp.py +23 -0
  638. scipy/linalg/decomp_cholesky.py +21 -0
  639. scipy/linalg/decomp_lu.py +21 -0
  640. scipy/linalg/decomp_qr.py +20 -0
  641. scipy/linalg/decomp_schur.py +21 -0
  642. scipy/linalg/decomp_svd.py +21 -0
  643. scipy/linalg/interpolative.py +989 -0
  644. scipy/linalg/lapack.py +1081 -0
  645. scipy/linalg/matfuncs.py +23 -0
  646. scipy/linalg/misc.py +21 -0
  647. scipy/linalg/special_matrices.py +22 -0
  648. scipy/linalg/tests/__init__.py +0 -0
  649. scipy/linalg/tests/_cython_examples/extending.pyx +23 -0
  650. scipy/linalg/tests/_cython_examples/meson.build +34 -0
  651. scipy/linalg/tests/data/carex_15_data.npz +0 -0
  652. scipy/linalg/tests/data/carex_18_data.npz +0 -0
  653. scipy/linalg/tests/data/carex_19_data.npz +0 -0
  654. scipy/linalg/tests/data/carex_20_data.npz +0 -0
  655. scipy/linalg/tests/data/carex_6_data.npz +0 -0
  656. scipy/linalg/tests/data/gendare_20170120_data.npz +0 -0
  657. scipy/linalg/tests/test_basic.py +2074 -0
  658. scipy/linalg/tests/test_batch.py +588 -0
  659. scipy/linalg/tests/test_blas.py +1127 -0
  660. scipy/linalg/tests/test_cython_blas.py +118 -0
  661. scipy/linalg/tests/test_cython_lapack.py +22 -0
  662. scipy/linalg/tests/test_cythonized_array_utils.py +130 -0
  663. scipy/linalg/tests/test_decomp.py +3189 -0
  664. scipy/linalg/tests/test_decomp_cholesky.py +268 -0
  665. scipy/linalg/tests/test_decomp_cossin.py +314 -0
  666. scipy/linalg/tests/test_decomp_ldl.py +137 -0
  667. scipy/linalg/tests/test_decomp_lu.py +308 -0
  668. scipy/linalg/tests/test_decomp_polar.py +110 -0
  669. scipy/linalg/tests/test_decomp_update.py +1701 -0
  670. scipy/linalg/tests/test_extending.py +46 -0
  671. scipy/linalg/tests/test_fblas.py +607 -0
  672. scipy/linalg/tests/test_interpolative.py +232 -0
  673. scipy/linalg/tests/test_lapack.py +3616 -0
  674. scipy/linalg/tests/test_matfuncs.py +1125 -0
  675. scipy/linalg/tests/test_matmul_toeplitz.py +136 -0
  676. scipy/linalg/tests/test_procrustes.py +214 -0
  677. scipy/linalg/tests/test_sketches.py +118 -0
  678. scipy/linalg/tests/test_solve_toeplitz.py +150 -0
  679. scipy/linalg/tests/test_solvers.py +844 -0
  680. scipy/linalg/tests/test_special_matrices.py +636 -0
  681. scipy/misc/__init__.py +6 -0
  682. scipy/misc/common.py +6 -0
  683. scipy/misc/doccer.py +6 -0
  684. scipy/ndimage/__init__.py +174 -0
  685. scipy/ndimage/_ctest.cpython-314-darwin.so +0 -0
  686. scipy/ndimage/_cytest.cpython-314-darwin.so +0 -0
  687. scipy/ndimage/_delegators.py +303 -0
  688. scipy/ndimage/_filters.py +2422 -0
  689. scipy/ndimage/_fourier.py +306 -0
  690. scipy/ndimage/_interpolation.py +1033 -0
  691. scipy/ndimage/_measurements.py +1689 -0
  692. scipy/ndimage/_morphology.py +2634 -0
  693. scipy/ndimage/_nd_image.cpython-314-darwin.so +0 -0
  694. scipy/ndimage/_ndimage_api.py +16 -0
  695. scipy/ndimage/_ni_docstrings.py +214 -0
  696. scipy/ndimage/_ni_label.cpython-314-darwin.so +0 -0
  697. scipy/ndimage/_ni_support.py +139 -0
  698. scipy/ndimage/_rank_filter_1d.cpython-314-darwin.so +0 -0
  699. scipy/ndimage/_support_alternative_backends.py +84 -0
  700. scipy/ndimage/filters.py +27 -0
  701. scipy/ndimage/fourier.py +21 -0
  702. scipy/ndimage/interpolation.py +22 -0
  703. scipy/ndimage/measurements.py +24 -0
  704. scipy/ndimage/morphology.py +27 -0
  705. scipy/ndimage/tests/__init__.py +12 -0
  706. scipy/ndimage/tests/data/label_inputs.txt +21 -0
  707. scipy/ndimage/tests/data/label_results.txt +294 -0
  708. scipy/ndimage/tests/data/label_strels.txt +42 -0
  709. scipy/ndimage/tests/dots.png +0 -0
  710. scipy/ndimage/tests/test_c_api.py +102 -0
  711. scipy/ndimage/tests/test_datatypes.py +67 -0
  712. scipy/ndimage/tests/test_filters.py +3083 -0
  713. scipy/ndimage/tests/test_fourier.py +187 -0
  714. scipy/ndimage/tests/test_interpolation.py +1491 -0
  715. scipy/ndimage/tests/test_measurements.py +1592 -0
  716. scipy/ndimage/tests/test_morphology.py +2950 -0
  717. scipy/ndimage/tests/test_ni_support.py +78 -0
  718. scipy/ndimage/tests/test_splines.py +70 -0
  719. scipy/odr/__init__.py +131 -0
  720. scipy/odr/__odrpack.cpython-314-darwin.so +0 -0
  721. scipy/odr/_add_newdocs.py +34 -0
  722. scipy/odr/_models.py +315 -0
  723. scipy/odr/_odrpack.py +1154 -0
  724. scipy/odr/models.py +20 -0
  725. scipy/odr/odrpack.py +21 -0
  726. scipy/odr/tests/__init__.py +0 -0
  727. scipy/odr/tests/test_odr.py +607 -0
  728. scipy/optimize/__init__.pxd +1 -0
  729. scipy/optimize/__init__.py +460 -0
  730. scipy/optimize/_basinhopping.py +741 -0
  731. scipy/optimize/_bglu_dense.cpython-314-darwin.so +0 -0
  732. scipy/optimize/_bracket.py +706 -0
  733. scipy/optimize/_chandrupatla.py +551 -0
  734. scipy/optimize/_cobyla_py.py +297 -0
  735. scipy/optimize/_cobyqa_py.py +72 -0
  736. scipy/optimize/_constraints.py +598 -0
  737. scipy/optimize/_dcsrch.py +728 -0
  738. scipy/optimize/_differentiable_functions.py +835 -0
  739. scipy/optimize/_differentialevolution.py +1970 -0
  740. scipy/optimize/_direct.cpython-314-darwin.so +0 -0
  741. scipy/optimize/_direct_py.py +280 -0
  742. scipy/optimize/_dual_annealing.py +732 -0
  743. scipy/optimize/_elementwise.py +798 -0
  744. scipy/optimize/_group_columns.cpython-314-darwin.so +0 -0
  745. scipy/optimize/_hessian_update_strategy.py +479 -0
  746. scipy/optimize/_highspy/__init__.py +0 -0
  747. scipy/optimize/_highspy/_core.cpython-314-darwin.so +0 -0
  748. scipy/optimize/_highspy/_highs_options.cpython-314-darwin.so +0 -0
  749. scipy/optimize/_highspy/_highs_wrapper.py +338 -0
  750. scipy/optimize/_isotonic.py +157 -0
  751. scipy/optimize/_lbfgsb.cpython-314-darwin.so +0 -0
  752. scipy/optimize/_lbfgsb_py.py +634 -0
  753. scipy/optimize/_linesearch.py +896 -0
  754. scipy/optimize/_linprog.py +733 -0
  755. scipy/optimize/_linprog_doc.py +1434 -0
  756. scipy/optimize/_linprog_highs.py +422 -0
  757. scipy/optimize/_linprog_ip.py +1141 -0
  758. scipy/optimize/_linprog_rs.py +572 -0
  759. scipy/optimize/_linprog_simplex.py +663 -0
  760. scipy/optimize/_linprog_util.py +1521 -0
  761. scipy/optimize/_lsap.cpython-314-darwin.so +0 -0
  762. scipy/optimize/_lsq/__init__.py +5 -0
  763. scipy/optimize/_lsq/bvls.py +183 -0
  764. scipy/optimize/_lsq/common.py +731 -0
  765. scipy/optimize/_lsq/dogbox.py +345 -0
  766. scipy/optimize/_lsq/givens_elimination.cpython-314-darwin.so +0 -0
  767. scipy/optimize/_lsq/least_squares.py +1044 -0
  768. scipy/optimize/_lsq/lsq_linear.py +361 -0
  769. scipy/optimize/_lsq/trf.py +587 -0
  770. scipy/optimize/_lsq/trf_linear.py +249 -0
  771. scipy/optimize/_milp.py +394 -0
  772. scipy/optimize/_minimize.py +1199 -0
  773. scipy/optimize/_minpack.cpython-314-darwin.so +0 -0
  774. scipy/optimize/_minpack_py.py +1178 -0
  775. scipy/optimize/_moduleTNC.cpython-314-darwin.so +0 -0
  776. scipy/optimize/_nnls.py +96 -0
  777. scipy/optimize/_nonlin.py +1634 -0
  778. scipy/optimize/_numdiff.py +963 -0
  779. scipy/optimize/_optimize.py +4169 -0
  780. scipy/optimize/_pava_pybind.cpython-314-darwin.so +0 -0
  781. scipy/optimize/_qap.py +760 -0
  782. scipy/optimize/_remove_redundancy.py +522 -0
  783. scipy/optimize/_root.py +732 -0
  784. scipy/optimize/_root_scalar.py +538 -0
  785. scipy/optimize/_shgo.py +1606 -0
  786. scipy/optimize/_shgo_lib/__init__.py +0 -0
  787. scipy/optimize/_shgo_lib/_complex.py +1225 -0
  788. scipy/optimize/_shgo_lib/_vertex.py +460 -0
  789. scipy/optimize/_slsqp_py.py +603 -0
  790. scipy/optimize/_slsqplib.cpython-314-darwin.so +0 -0
  791. scipy/optimize/_spectral.py +260 -0
  792. scipy/optimize/_tnc.py +438 -0
  793. scipy/optimize/_trlib/__init__.py +12 -0
  794. scipy/optimize/_trlib/_trlib.cpython-314-darwin.so +0 -0
  795. scipy/optimize/_trustregion.py +318 -0
  796. scipy/optimize/_trustregion_constr/__init__.py +6 -0
  797. scipy/optimize/_trustregion_constr/canonical_constraint.py +390 -0
  798. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +231 -0
  799. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +584 -0
  800. scipy/optimize/_trustregion_constr/projections.py +411 -0
  801. scipy/optimize/_trustregion_constr/qp_subproblem.py +637 -0
  802. scipy/optimize/_trustregion_constr/report.py +49 -0
  803. scipy/optimize/_trustregion_constr/tests/__init__.py +0 -0
  804. scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py +296 -0
  805. scipy/optimize/_trustregion_constr/tests/test_nested_minimize.py +39 -0
  806. scipy/optimize/_trustregion_constr/tests/test_projections.py +214 -0
  807. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +645 -0
  808. scipy/optimize/_trustregion_constr/tests/test_report.py +34 -0
  809. scipy/optimize/_trustregion_constr/tr_interior_point.py +361 -0
  810. scipy/optimize/_trustregion_dogleg.py +122 -0
  811. scipy/optimize/_trustregion_exact.py +437 -0
  812. scipy/optimize/_trustregion_krylov.py +65 -0
  813. scipy/optimize/_trustregion_ncg.py +126 -0
  814. scipy/optimize/_tstutils.py +972 -0
  815. scipy/optimize/_zeros.cpython-314-darwin.so +0 -0
  816. scipy/optimize/_zeros_py.py +1475 -0
  817. scipy/optimize/cobyla.py +19 -0
  818. scipy/optimize/cython_optimize/__init__.py +133 -0
  819. scipy/optimize/cython_optimize/_zeros.cpython-314-darwin.so +0 -0
  820. scipy/optimize/cython_optimize/_zeros.pxd +33 -0
  821. scipy/optimize/cython_optimize/c_zeros.pxd +26 -0
  822. scipy/optimize/cython_optimize.pxd +11 -0
  823. scipy/optimize/elementwise.py +38 -0
  824. scipy/optimize/lbfgsb.py +23 -0
  825. scipy/optimize/linesearch.py +18 -0
  826. scipy/optimize/minpack.py +27 -0
  827. scipy/optimize/minpack2.py +17 -0
  828. scipy/optimize/moduleTNC.py +19 -0
  829. scipy/optimize/nonlin.py +29 -0
  830. scipy/optimize/optimize.py +40 -0
  831. scipy/optimize/slsqp.py +22 -0
  832. scipy/optimize/tests/__init__.py +0 -0
  833. scipy/optimize/tests/_cython_examples/extending.pyx +43 -0
  834. scipy/optimize/tests/_cython_examples/meson.build +32 -0
  835. scipy/optimize/tests/test__basinhopping.py +535 -0
  836. scipy/optimize/tests/test__differential_evolution.py +1703 -0
  837. scipy/optimize/tests/test__dual_annealing.py +416 -0
  838. scipy/optimize/tests/test__linprog_clean_inputs.py +312 -0
  839. scipy/optimize/tests/test__numdiff.py +885 -0
  840. scipy/optimize/tests/test__remove_redundancy.py +228 -0
  841. scipy/optimize/tests/test__root.py +124 -0
  842. scipy/optimize/tests/test__shgo.py +1164 -0
  843. scipy/optimize/tests/test__spectral.py +226 -0
  844. scipy/optimize/tests/test_bracket.py +896 -0
  845. scipy/optimize/tests/test_chandrupatla.py +982 -0
  846. scipy/optimize/tests/test_cobyla.py +195 -0
  847. scipy/optimize/tests/test_cobyqa.py +252 -0
  848. scipy/optimize/tests/test_constraint_conversion.py +286 -0
  849. scipy/optimize/tests/test_constraints.py +255 -0
  850. scipy/optimize/tests/test_cython_optimize.py +92 -0
  851. scipy/optimize/tests/test_differentiable_functions.py +1025 -0
  852. scipy/optimize/tests/test_direct.py +321 -0
  853. scipy/optimize/tests/test_extending.py +28 -0
  854. scipy/optimize/tests/test_hessian_update_strategy.py +300 -0
  855. scipy/optimize/tests/test_isotonic_regression.py +167 -0
  856. scipy/optimize/tests/test_lbfgsb_hessinv.py +65 -0
  857. scipy/optimize/tests/test_lbfgsb_setulb.py +122 -0
  858. scipy/optimize/tests/test_least_squares.py +986 -0
  859. scipy/optimize/tests/test_linear_assignment.py +116 -0
  860. scipy/optimize/tests/test_linesearch.py +328 -0
  861. scipy/optimize/tests/test_linprog.py +2577 -0
  862. scipy/optimize/tests/test_lsq_common.py +297 -0
  863. scipy/optimize/tests/test_lsq_linear.py +287 -0
  864. scipy/optimize/tests/test_milp.py +459 -0
  865. scipy/optimize/tests/test_minimize_constrained.py +845 -0
  866. scipy/optimize/tests/test_minpack.py +1194 -0
  867. scipy/optimize/tests/test_nnls.py +469 -0
  868. scipy/optimize/tests/test_nonlin.py +572 -0
  869. scipy/optimize/tests/test_optimize.py +3335 -0
  870. scipy/optimize/tests/test_quadratic_assignment.py +455 -0
  871. scipy/optimize/tests/test_regression.py +40 -0
  872. scipy/optimize/tests/test_slsqp.py +645 -0
  873. scipy/optimize/tests/test_tnc.py +345 -0
  874. scipy/optimize/tests/test_trustregion.py +110 -0
  875. scipy/optimize/tests/test_trustregion_exact.py +351 -0
  876. scipy/optimize/tests/test_trustregion_krylov.py +170 -0
  877. scipy/optimize/tests/test_zeros.py +998 -0
  878. scipy/optimize/tnc.py +22 -0
  879. scipy/optimize/zeros.py +26 -0
  880. scipy/signal/__init__.py +316 -0
  881. scipy/signal/_arraytools.py +264 -0
  882. scipy/signal/_czt.py +575 -0
  883. scipy/signal/_delegators.py +568 -0
  884. scipy/signal/_filter_design.py +5893 -0
  885. scipy/signal/_fir_filter_design.py +1458 -0
  886. scipy/signal/_lti_conversion.py +534 -0
  887. scipy/signal/_ltisys.py +3546 -0
  888. scipy/signal/_max_len_seq.py +139 -0
  889. scipy/signal/_max_len_seq_inner.cpython-314-darwin.so +0 -0
  890. scipy/signal/_peak_finding.py +1310 -0
  891. scipy/signal/_peak_finding_utils.cpython-314-darwin.so +0 -0
  892. scipy/signal/_polyutils.py +172 -0
  893. scipy/signal/_savitzky_golay.py +357 -0
  894. scipy/signal/_short_time_fft.py +2187 -0
  895. scipy/signal/_signal_api.py +30 -0
  896. scipy/signal/_signaltools.py +5309 -0
  897. scipy/signal/_sigtools.cpython-314-darwin.so +0 -0
  898. scipy/signal/_sosfilt.cpython-314-darwin.so +0 -0
  899. scipy/signal/_spectral_py.py +2471 -0
  900. scipy/signal/_spline.cpython-314-darwin.so +0 -0
  901. scipy/signal/_spline.pyi +34 -0
  902. scipy/signal/_spline_filters.py +848 -0
  903. scipy/signal/_support_alternative_backends.py +73 -0
  904. scipy/signal/_upfirdn.py +219 -0
  905. scipy/signal/_upfirdn_apply.cpython-314-darwin.so +0 -0
  906. scipy/signal/_waveforms.py +687 -0
  907. scipy/signal/_wavelets.py +29 -0
  908. scipy/signal/bsplines.py +21 -0
  909. scipy/signal/filter_design.py +28 -0
  910. scipy/signal/fir_filter_design.py +21 -0
  911. scipy/signal/lti_conversion.py +20 -0
  912. scipy/signal/ltisys.py +25 -0
  913. scipy/signal/signaltools.py +27 -0
  914. scipy/signal/spectral.py +21 -0
  915. scipy/signal/spline.py +18 -0
  916. scipy/signal/tests/__init__.py +0 -0
  917. scipy/signal/tests/_scipy_spectral_test_shim.py +311 -0
  918. scipy/signal/tests/mpsig.py +122 -0
  919. scipy/signal/tests/test_array_tools.py +111 -0
  920. scipy/signal/tests/test_bsplines.py +365 -0
  921. scipy/signal/tests/test_cont2discrete.py +424 -0
  922. scipy/signal/tests/test_czt.py +221 -0
  923. scipy/signal/tests/test_dltisys.py +599 -0
  924. scipy/signal/tests/test_filter_design.py +4744 -0
  925. scipy/signal/tests/test_fir_filter_design.py +851 -0
  926. scipy/signal/tests/test_ltisys.py +1225 -0
  927. scipy/signal/tests/test_max_len_seq.py +71 -0
  928. scipy/signal/tests/test_peak_finding.py +915 -0
  929. scipy/signal/tests/test_result_type.py +51 -0
  930. scipy/signal/tests/test_savitzky_golay.py +363 -0
  931. scipy/signal/tests/test_short_time_fft.py +1098 -0
  932. scipy/signal/tests/test_signaltools.py +4729 -0
  933. scipy/signal/tests/test_spectral.py +2103 -0
  934. scipy/signal/tests/test_splines.py +427 -0
  935. scipy/signal/tests/test_upfirdn.py +322 -0
  936. scipy/signal/tests/test_waveforms.py +400 -0
  937. scipy/signal/tests/test_wavelets.py +59 -0
  938. scipy/signal/tests/test_windows.py +987 -0
  939. scipy/signal/waveforms.py +20 -0
  940. scipy/signal/wavelets.py +17 -0
  941. scipy/signal/windows/__init__.py +52 -0
  942. scipy/signal/windows/_windows.py +2513 -0
  943. scipy/signal/windows/windows.py +23 -0
  944. scipy/sparse/__init__.py +350 -0
  945. scipy/sparse/_base.py +1613 -0
  946. scipy/sparse/_bsr.py +880 -0
  947. scipy/sparse/_compressed.py +1328 -0
  948. scipy/sparse/_construct.py +1454 -0
  949. scipy/sparse/_coo.py +1581 -0
  950. scipy/sparse/_csc.py +367 -0
  951. scipy/sparse/_csparsetools.cpython-314-darwin.so +0 -0
  952. scipy/sparse/_csr.py +558 -0
  953. scipy/sparse/_data.py +569 -0
  954. scipy/sparse/_dia.py +677 -0
  955. scipy/sparse/_dok.py +669 -0
  956. scipy/sparse/_extract.py +178 -0
  957. scipy/sparse/_index.py +444 -0
  958. scipy/sparse/_lil.py +632 -0
  959. scipy/sparse/_matrix.py +169 -0
  960. scipy/sparse/_matrix_io.py +167 -0
  961. scipy/sparse/_sparsetools.cpython-314-darwin.so +0 -0
  962. scipy/sparse/_spfuncs.py +76 -0
  963. scipy/sparse/_sputils.py +632 -0
  964. scipy/sparse/base.py +24 -0
  965. scipy/sparse/bsr.py +22 -0
  966. scipy/sparse/compressed.py +20 -0
  967. scipy/sparse/construct.py +38 -0
  968. scipy/sparse/coo.py +23 -0
  969. scipy/sparse/csc.py +22 -0
  970. scipy/sparse/csgraph/__init__.py +210 -0
  971. scipy/sparse/csgraph/_flow.cpython-314-darwin.so +0 -0
  972. scipy/sparse/csgraph/_laplacian.py +563 -0
  973. scipy/sparse/csgraph/_matching.cpython-314-darwin.so +0 -0
  974. scipy/sparse/csgraph/_min_spanning_tree.cpython-314-darwin.so +0 -0
  975. scipy/sparse/csgraph/_reordering.cpython-314-darwin.so +0 -0
  976. scipy/sparse/csgraph/_shortest_path.cpython-314-darwin.so +0 -0
  977. scipy/sparse/csgraph/_tools.cpython-314-darwin.so +0 -0
  978. scipy/sparse/csgraph/_traversal.cpython-314-darwin.so +0 -0
  979. scipy/sparse/csgraph/_validation.py +66 -0
  980. scipy/sparse/csgraph/tests/__init__.py +0 -0
  981. scipy/sparse/csgraph/tests/test_connected_components.py +119 -0
  982. scipy/sparse/csgraph/tests/test_conversions.py +61 -0
  983. scipy/sparse/csgraph/tests/test_flow.py +209 -0
  984. scipy/sparse/csgraph/tests/test_graph_laplacian.py +368 -0
  985. scipy/sparse/csgraph/tests/test_matching.py +307 -0
  986. scipy/sparse/csgraph/tests/test_pydata_sparse.py +197 -0
  987. scipy/sparse/csgraph/tests/test_reordering.py +70 -0
  988. scipy/sparse/csgraph/tests/test_shortest_path.py +540 -0
  989. scipy/sparse/csgraph/tests/test_spanning_tree.py +66 -0
  990. scipy/sparse/csgraph/tests/test_traversal.py +148 -0
  991. scipy/sparse/csr.py +22 -0
  992. scipy/sparse/data.py +18 -0
  993. scipy/sparse/dia.py +22 -0
  994. scipy/sparse/dok.py +22 -0
  995. scipy/sparse/extract.py +23 -0
  996. scipy/sparse/lil.py +22 -0
  997. scipy/sparse/linalg/__init__.py +148 -0
  998. scipy/sparse/linalg/_dsolve/__init__.py +71 -0
  999. scipy/sparse/linalg/_dsolve/_add_newdocs.py +147 -0
  1000. scipy/sparse/linalg/_dsolve/_superlu.cpython-314-darwin.so +0 -0
  1001. scipy/sparse/linalg/_dsolve/linsolve.py +882 -0
  1002. scipy/sparse/linalg/_dsolve/tests/__init__.py +0 -0
  1003. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +928 -0
  1004. scipy/sparse/linalg/_eigen/__init__.py +22 -0
  1005. scipy/sparse/linalg/_eigen/_svds.py +540 -0
  1006. scipy/sparse/linalg/_eigen/_svds_doc.py +382 -0
  1007. scipy/sparse/linalg/_eigen/arpack/COPYING +45 -0
  1008. scipy/sparse/linalg/_eigen/arpack/__init__.py +20 -0
  1009. scipy/sparse/linalg/_eigen/arpack/_arpack.cpython-314-darwin.so +0 -0
  1010. scipy/sparse/linalg/_eigen/arpack/arpack.py +1706 -0
  1011. scipy/sparse/linalg/_eigen/arpack/tests/__init__.py +0 -0
  1012. scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py +717 -0
  1013. scipy/sparse/linalg/_eigen/lobpcg/__init__.py +16 -0
  1014. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +1110 -0
  1015. scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py +0 -0
  1016. scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py +725 -0
  1017. scipy/sparse/linalg/_eigen/tests/__init__.py +0 -0
  1018. scipy/sparse/linalg/_eigen/tests/test_svds.py +886 -0
  1019. scipy/sparse/linalg/_expm_multiply.py +816 -0
  1020. scipy/sparse/linalg/_interface.py +920 -0
  1021. scipy/sparse/linalg/_isolve/__init__.py +20 -0
  1022. scipy/sparse/linalg/_isolve/_gcrotmk.py +503 -0
  1023. scipy/sparse/linalg/_isolve/iterative.py +1051 -0
  1024. scipy/sparse/linalg/_isolve/lgmres.py +230 -0
  1025. scipy/sparse/linalg/_isolve/lsmr.py +486 -0
  1026. scipy/sparse/linalg/_isolve/lsqr.py +589 -0
  1027. scipy/sparse/linalg/_isolve/minres.py +372 -0
  1028. scipy/sparse/linalg/_isolve/tests/__init__.py +0 -0
  1029. scipy/sparse/linalg/_isolve/tests/test_gcrotmk.py +183 -0
  1030. scipy/sparse/linalg/_isolve/tests/test_iterative.py +809 -0
  1031. scipy/sparse/linalg/_isolve/tests/test_lgmres.py +225 -0
  1032. scipy/sparse/linalg/_isolve/tests/test_lsmr.py +185 -0
  1033. scipy/sparse/linalg/_isolve/tests/test_lsqr.py +120 -0
  1034. scipy/sparse/linalg/_isolve/tests/test_minres.py +97 -0
  1035. scipy/sparse/linalg/_isolve/tests/test_utils.py +9 -0
  1036. scipy/sparse/linalg/_isolve/tfqmr.py +179 -0
  1037. scipy/sparse/linalg/_isolve/utils.py +121 -0
  1038. scipy/sparse/linalg/_matfuncs.py +940 -0
  1039. scipy/sparse/linalg/_norm.py +195 -0
  1040. scipy/sparse/linalg/_onenormest.py +467 -0
  1041. scipy/sparse/linalg/_propack/_cpropack.cpython-314-darwin.so +0 -0
  1042. scipy/sparse/linalg/_propack/_dpropack.cpython-314-darwin.so +0 -0
  1043. scipy/sparse/linalg/_propack/_spropack.cpython-314-darwin.so +0 -0
  1044. scipy/sparse/linalg/_propack/_zpropack.cpython-314-darwin.so +0 -0
  1045. scipy/sparse/linalg/_special_sparse_arrays.py +949 -0
  1046. scipy/sparse/linalg/_svdp.py +309 -0
  1047. scipy/sparse/linalg/dsolve.py +22 -0
  1048. scipy/sparse/linalg/eigen.py +21 -0
  1049. scipy/sparse/linalg/interface.py +20 -0
  1050. scipy/sparse/linalg/isolve.py +22 -0
  1051. scipy/sparse/linalg/matfuncs.py +18 -0
  1052. scipy/sparse/linalg/tests/__init__.py +0 -0
  1053. scipy/sparse/linalg/tests/propack_test_data.npz +0 -0
  1054. scipy/sparse/linalg/tests/test_expm_multiply.py +367 -0
  1055. scipy/sparse/linalg/tests/test_interface.py +561 -0
  1056. scipy/sparse/linalg/tests/test_matfuncs.py +592 -0
  1057. scipy/sparse/linalg/tests/test_norm.py +154 -0
  1058. scipy/sparse/linalg/tests/test_onenormest.py +252 -0
  1059. scipy/sparse/linalg/tests/test_propack.py +165 -0
  1060. scipy/sparse/linalg/tests/test_pydata_sparse.py +272 -0
  1061. scipy/sparse/linalg/tests/test_special_sparse_arrays.py +337 -0
  1062. scipy/sparse/sparsetools.py +17 -0
  1063. scipy/sparse/spfuncs.py +17 -0
  1064. scipy/sparse/sputils.py +17 -0
  1065. scipy/sparse/tests/__init__.py +0 -0
  1066. scipy/sparse/tests/data/csc_py2.npz +0 -0
  1067. scipy/sparse/tests/data/csc_py3.npz +0 -0
  1068. scipy/sparse/tests/test_arithmetic1d.py +341 -0
  1069. scipy/sparse/tests/test_array_api.py +561 -0
  1070. scipy/sparse/tests/test_base.py +5870 -0
  1071. scipy/sparse/tests/test_common1d.py +447 -0
  1072. scipy/sparse/tests/test_construct.py +872 -0
  1073. scipy/sparse/tests/test_coo.py +1119 -0
  1074. scipy/sparse/tests/test_csc.py +98 -0
  1075. scipy/sparse/tests/test_csr.py +214 -0
  1076. scipy/sparse/tests/test_dok.py +209 -0
  1077. scipy/sparse/tests/test_extract.py +51 -0
  1078. scipy/sparse/tests/test_indexing1d.py +603 -0
  1079. scipy/sparse/tests/test_matrix_io.py +109 -0
  1080. scipy/sparse/tests/test_minmax1d.py +128 -0
  1081. scipy/sparse/tests/test_sparsetools.py +344 -0
  1082. scipy/sparse/tests/test_spfuncs.py +97 -0
  1083. scipy/sparse/tests/test_sputils.py +424 -0
  1084. scipy/spatial/__init__.py +129 -0
  1085. scipy/spatial/_ckdtree.cpython-314-darwin.so +0 -0
  1086. scipy/spatial/_distance_pybind.cpython-314-darwin.so +0 -0
  1087. scipy/spatial/_distance_wrap.cpython-314-darwin.so +0 -0
  1088. scipy/spatial/_geometric_slerp.py +238 -0
  1089. scipy/spatial/_hausdorff.cpython-314-darwin.so +0 -0
  1090. scipy/spatial/_kdtree.py +920 -0
  1091. scipy/spatial/_plotutils.py +274 -0
  1092. scipy/spatial/_procrustes.py +132 -0
  1093. scipy/spatial/_qhull.cpython-314-darwin.so +0 -0
  1094. scipy/spatial/_qhull.pyi +213 -0
  1095. scipy/spatial/_spherical_voronoi.py +341 -0
  1096. scipy/spatial/_voronoi.cpython-314-darwin.so +0 -0
  1097. scipy/spatial/_voronoi.pyi +4 -0
  1098. scipy/spatial/ckdtree.py +18 -0
  1099. scipy/spatial/distance.py +3147 -0
  1100. scipy/spatial/distance.pyi +210 -0
  1101. scipy/spatial/kdtree.py +25 -0
  1102. scipy/spatial/qhull.py +25 -0
  1103. scipy/spatial/tests/__init__.py +0 -0
  1104. scipy/spatial/tests/data/cdist-X1.txt +10 -0
  1105. scipy/spatial/tests/data/cdist-X2.txt +20 -0
  1106. scipy/spatial/tests/data/degenerate_pointset.npz +0 -0
  1107. scipy/spatial/tests/data/iris.txt +150 -0
  1108. scipy/spatial/tests/data/pdist-boolean-inp.txt +20 -0
  1109. scipy/spatial/tests/data/pdist-chebyshev-ml-iris.txt +1 -0
  1110. scipy/spatial/tests/data/pdist-chebyshev-ml.txt +1 -0
  1111. scipy/spatial/tests/data/pdist-cityblock-ml-iris.txt +1 -0
  1112. scipy/spatial/tests/data/pdist-cityblock-ml.txt +1 -0
  1113. scipy/spatial/tests/data/pdist-correlation-ml-iris.txt +1 -0
  1114. scipy/spatial/tests/data/pdist-correlation-ml.txt +1 -0
  1115. scipy/spatial/tests/data/pdist-cosine-ml-iris.txt +1 -0
  1116. scipy/spatial/tests/data/pdist-cosine-ml.txt +1 -0
  1117. scipy/spatial/tests/data/pdist-double-inp.txt +20 -0
  1118. scipy/spatial/tests/data/pdist-euclidean-ml-iris.txt +1 -0
  1119. scipy/spatial/tests/data/pdist-euclidean-ml.txt +1 -0
  1120. scipy/spatial/tests/data/pdist-hamming-ml.txt +1 -0
  1121. scipy/spatial/tests/data/pdist-jaccard-ml.txt +1 -0
  1122. scipy/spatial/tests/data/pdist-jensenshannon-ml-iris.txt +1 -0
  1123. scipy/spatial/tests/data/pdist-jensenshannon-ml.txt +1 -0
  1124. scipy/spatial/tests/data/pdist-minkowski-3.2-ml-iris.txt +1 -0
  1125. scipy/spatial/tests/data/pdist-minkowski-3.2-ml.txt +1 -0
  1126. scipy/spatial/tests/data/pdist-minkowski-5.8-ml-iris.txt +1 -0
  1127. scipy/spatial/tests/data/pdist-seuclidean-ml-iris.txt +1 -0
  1128. scipy/spatial/tests/data/pdist-seuclidean-ml.txt +1 -0
  1129. scipy/spatial/tests/data/pdist-spearman-ml.txt +1 -0
  1130. scipy/spatial/tests/data/random-bool-data.txt +100 -0
  1131. scipy/spatial/tests/data/random-double-data.txt +100 -0
  1132. scipy/spatial/tests/data/random-int-data.txt +100 -0
  1133. scipy/spatial/tests/data/random-uint-data.txt +100 -0
  1134. scipy/spatial/tests/data/selfdual-4d-polytope.txt +27 -0
  1135. scipy/spatial/tests/test__plotutils.py +91 -0
  1136. scipy/spatial/tests/test__procrustes.py +116 -0
  1137. scipy/spatial/tests/test_distance.py +2388 -0
  1138. scipy/spatial/tests/test_hausdorff.py +199 -0
  1139. scipy/spatial/tests/test_kdtree.py +1536 -0
  1140. scipy/spatial/tests/test_qhull.py +1313 -0
  1141. scipy/spatial/tests/test_slerp.py +417 -0
  1142. scipy/spatial/tests/test_spherical_voronoi.py +358 -0
  1143. scipy/spatial/transform/__init__.py +31 -0
  1144. scipy/spatial/transform/_rigid_transform.cpython-314-darwin.so +0 -0
  1145. scipy/spatial/transform/_rotation.cpython-314-darwin.so +0 -0
  1146. scipy/spatial/transform/_rotation_groups.py +140 -0
  1147. scipy/spatial/transform/_rotation_spline.py +460 -0
  1148. scipy/spatial/transform/rotation.py +21 -0
  1149. scipy/spatial/transform/tests/__init__.py +0 -0
  1150. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  1151. scipy/spatial/transform/tests/test_rotation.py +2569 -0
  1152. scipy/spatial/transform/tests/test_rotation_groups.py +169 -0
  1153. scipy/spatial/transform/tests/test_rotation_spline.py +183 -0
  1154. scipy/special/__init__.pxd +1 -0
  1155. scipy/special/__init__.py +841 -0
  1156. scipy/special/_add_newdocs.py +9961 -0
  1157. scipy/special/_basic.py +3576 -0
  1158. scipy/special/_comb.cpython-314-darwin.so +0 -0
  1159. scipy/special/_ellip_harm.py +214 -0
  1160. scipy/special/_ellip_harm_2.cpython-314-darwin.so +0 -0
  1161. scipy/special/_gufuncs.cpython-314-darwin.so +0 -0
  1162. scipy/special/_input_validation.py +17 -0
  1163. scipy/special/_lambertw.py +149 -0
  1164. scipy/special/_logsumexp.py +426 -0
  1165. scipy/special/_mptestutils.py +453 -0
  1166. scipy/special/_multiufuncs.py +610 -0
  1167. scipy/special/_orthogonal.py +2592 -0
  1168. scipy/special/_orthogonal.pyi +330 -0
  1169. scipy/special/_precompute/__init__.py +0 -0
  1170. scipy/special/_precompute/cosine_cdf.py +17 -0
  1171. scipy/special/_precompute/expn_asy.py +54 -0
  1172. scipy/special/_precompute/gammainc_asy.py +116 -0
  1173. scipy/special/_precompute/gammainc_data.py +124 -0
  1174. scipy/special/_precompute/hyp2f1_data.py +484 -0
  1175. scipy/special/_precompute/lambertw.py +68 -0
  1176. scipy/special/_precompute/loggamma.py +43 -0
  1177. scipy/special/_precompute/struve_convergence.py +131 -0
  1178. scipy/special/_precompute/utils.py +38 -0
  1179. scipy/special/_precompute/wright_bessel.py +342 -0
  1180. scipy/special/_precompute/wright_bessel_data.py +152 -0
  1181. scipy/special/_precompute/wrightomega.py +41 -0
  1182. scipy/special/_precompute/zetac.py +27 -0
  1183. scipy/special/_sf_error.py +15 -0
  1184. scipy/special/_specfun.cpython-314-darwin.so +0 -0
  1185. scipy/special/_special_ufuncs.cpython-314-darwin.so +0 -0
  1186. scipy/special/_spfun_stats.py +106 -0
  1187. scipy/special/_spherical_bessel.py +397 -0
  1188. scipy/special/_support_alternative_backends.py +295 -0
  1189. scipy/special/_test_internal.cpython-314-darwin.so +0 -0
  1190. scipy/special/_test_internal.pyi +9 -0
  1191. scipy/special/_testutils.py +321 -0
  1192. scipy/special/_ufuncs.cpython-314-darwin.so +0 -0
  1193. scipy/special/_ufuncs.pyi +522 -0
  1194. scipy/special/_ufuncs.pyx +13173 -0
  1195. scipy/special/_ufuncs_cxx.cpython-314-darwin.so +0 -0
  1196. scipy/special/_ufuncs_cxx.pxd +142 -0
  1197. scipy/special/_ufuncs_cxx.pyx +427 -0
  1198. scipy/special/_ufuncs_cxx_defs.h +147 -0
  1199. scipy/special/_ufuncs_defs.h +57 -0
  1200. scipy/special/add_newdocs.py +15 -0
  1201. scipy/special/basic.py +87 -0
  1202. scipy/special/cython_special.cpython-314-darwin.so +0 -0
  1203. scipy/special/cython_special.pxd +259 -0
  1204. scipy/special/cython_special.pyi +3 -0
  1205. scipy/special/orthogonal.py +45 -0
  1206. scipy/special/sf_error.py +20 -0
  1207. scipy/special/specfun.py +24 -0
  1208. scipy/special/spfun_stats.py +17 -0
  1209. scipy/special/tests/__init__.py +0 -0
  1210. scipy/special/tests/_cython_examples/extending.pyx +12 -0
  1211. scipy/special/tests/_cython_examples/meson.build +34 -0
  1212. scipy/special/tests/data/__init__.py +0 -0
  1213. scipy/special/tests/data/boost.npz +0 -0
  1214. scipy/special/tests/data/gsl.npz +0 -0
  1215. scipy/special/tests/data/local.npz +0 -0
  1216. scipy/special/tests/test_basic.py +4815 -0
  1217. scipy/special/tests/test_bdtr.py +112 -0
  1218. scipy/special/tests/test_boost_ufuncs.py +64 -0
  1219. scipy/special/tests/test_boxcox.py +125 -0
  1220. scipy/special/tests/test_cdflib.py +712 -0
  1221. scipy/special/tests/test_cdft_asymptotic.py +49 -0
  1222. scipy/special/tests/test_cephes_intp_cast.py +29 -0
  1223. scipy/special/tests/test_cosine_distr.py +83 -0
  1224. scipy/special/tests/test_cython_special.py +363 -0
  1225. scipy/special/tests/test_data.py +719 -0
  1226. scipy/special/tests/test_dd.py +42 -0
  1227. scipy/special/tests/test_digamma.py +45 -0
  1228. scipy/special/tests/test_ellip_harm.py +278 -0
  1229. scipy/special/tests/test_erfinv.py +89 -0
  1230. scipy/special/tests/test_exponential_integrals.py +118 -0
  1231. scipy/special/tests/test_extending.py +28 -0
  1232. scipy/special/tests/test_faddeeva.py +85 -0
  1233. scipy/special/tests/test_gamma.py +12 -0
  1234. scipy/special/tests/test_gammainc.py +152 -0
  1235. scipy/special/tests/test_hyp2f1.py +2566 -0
  1236. scipy/special/tests/test_hypergeometric.py +234 -0
  1237. scipy/special/tests/test_iv_ratio.py +249 -0
  1238. scipy/special/tests/test_kolmogorov.py +491 -0
  1239. scipy/special/tests/test_lambertw.py +109 -0
  1240. scipy/special/tests/test_legendre.py +1518 -0
  1241. scipy/special/tests/test_log1mexp.py +85 -0
  1242. scipy/special/tests/test_loggamma.py +70 -0
  1243. scipy/special/tests/test_logit.py +162 -0
  1244. scipy/special/tests/test_logsumexp.py +469 -0
  1245. scipy/special/tests/test_mpmath.py +2293 -0
  1246. scipy/special/tests/test_nan_inputs.py +65 -0
  1247. scipy/special/tests/test_ndtr.py +77 -0
  1248. scipy/special/tests/test_ndtri_exp.py +94 -0
  1249. scipy/special/tests/test_orthogonal.py +821 -0
  1250. scipy/special/tests/test_orthogonal_eval.py +275 -0
  1251. scipy/special/tests/test_owens_t.py +53 -0
  1252. scipy/special/tests/test_pcf.py +24 -0
  1253. scipy/special/tests/test_pdtr.py +48 -0
  1254. scipy/special/tests/test_powm1.py +65 -0
  1255. scipy/special/tests/test_precompute_expn_asy.py +24 -0
  1256. scipy/special/tests/test_precompute_gammainc.py +108 -0
  1257. scipy/special/tests/test_precompute_utils.py +36 -0
  1258. scipy/special/tests/test_round.py +18 -0
  1259. scipy/special/tests/test_sf_error.py +146 -0
  1260. scipy/special/tests/test_sici.py +36 -0
  1261. scipy/special/tests/test_specfun.py +48 -0
  1262. scipy/special/tests/test_spence.py +32 -0
  1263. scipy/special/tests/test_spfun_stats.py +61 -0
  1264. scipy/special/tests/test_sph_harm.py +85 -0
  1265. scipy/special/tests/test_spherical_bessel.py +400 -0
  1266. scipy/special/tests/test_support_alternative_backends.py +248 -0
  1267. scipy/special/tests/test_trig.py +72 -0
  1268. scipy/special/tests/test_ufunc_signatures.py +46 -0
  1269. scipy/special/tests/test_wright_bessel.py +205 -0
  1270. scipy/special/tests/test_wrightomega.py +117 -0
  1271. scipy/special/tests/test_zeta.py +301 -0
  1272. scipy/stats/__init__.py +670 -0
  1273. scipy/stats/_ansari_swilk_statistics.cpython-314-darwin.so +0 -0
  1274. scipy/stats/_axis_nan_policy.py +692 -0
  1275. scipy/stats/_biasedurn.cpython-314-darwin.so +0 -0
  1276. scipy/stats/_biasedurn.pxd +27 -0
  1277. scipy/stats/_binned_statistic.py +795 -0
  1278. scipy/stats/_binomtest.py +375 -0
  1279. scipy/stats/_bws_test.py +177 -0
  1280. scipy/stats/_censored_data.py +459 -0
  1281. scipy/stats/_common.py +5 -0
  1282. scipy/stats/_constants.py +42 -0
  1283. scipy/stats/_continued_fraction.py +387 -0
  1284. scipy/stats/_continuous_distns.py +12486 -0
  1285. scipy/stats/_correlation.py +210 -0
  1286. scipy/stats/_covariance.py +636 -0
  1287. scipy/stats/_crosstab.py +204 -0
  1288. scipy/stats/_discrete_distns.py +2098 -0
  1289. scipy/stats/_distn_infrastructure.py +4201 -0
  1290. scipy/stats/_distr_params.py +299 -0
  1291. scipy/stats/_distribution_infrastructure.py +5750 -0
  1292. scipy/stats/_entropy.py +428 -0
  1293. scipy/stats/_finite_differences.py +145 -0
  1294. scipy/stats/_fit.py +1351 -0
  1295. scipy/stats/_hypotests.py +2060 -0
  1296. scipy/stats/_kde.py +732 -0
  1297. scipy/stats/_ksstats.py +600 -0
  1298. scipy/stats/_levy_stable/__init__.py +1231 -0
  1299. scipy/stats/_levy_stable/levyst.cpython-314-darwin.so +0 -0
  1300. scipy/stats/_mannwhitneyu.py +492 -0
  1301. scipy/stats/_mgc.py +550 -0
  1302. scipy/stats/_morestats.py +4626 -0
  1303. scipy/stats/_mstats_basic.py +3658 -0
  1304. scipy/stats/_mstats_extras.py +521 -0
  1305. scipy/stats/_multicomp.py +449 -0
  1306. scipy/stats/_multivariate.py +7281 -0
  1307. scipy/stats/_new_distributions.py +452 -0
  1308. scipy/stats/_odds_ratio.py +466 -0
  1309. scipy/stats/_page_trend_test.py +486 -0
  1310. scipy/stats/_probability_distribution.py +1964 -0
  1311. scipy/stats/_qmc.py +2956 -0
  1312. scipy/stats/_qmc_cy.cpython-314-darwin.so +0 -0
  1313. scipy/stats/_qmc_cy.pyi +54 -0
  1314. scipy/stats/_qmvnt.py +454 -0
  1315. scipy/stats/_qmvnt_cy.cpython-314-darwin.so +0 -0
  1316. scipy/stats/_quantile.py +335 -0
  1317. scipy/stats/_rcont/__init__.py +4 -0
  1318. scipy/stats/_rcont/rcont.cpython-314-darwin.so +0 -0
  1319. scipy/stats/_relative_risk.py +263 -0
  1320. scipy/stats/_resampling.py +2352 -0
  1321. scipy/stats/_result_classes.py +40 -0
  1322. scipy/stats/_sampling.py +1314 -0
  1323. scipy/stats/_sensitivity_analysis.py +713 -0
  1324. scipy/stats/_sobol.cpython-314-darwin.so +0 -0
  1325. scipy/stats/_sobol.pyi +54 -0
  1326. scipy/stats/_sobol_direction_numbers.npz +0 -0
  1327. scipy/stats/_stats.cpython-314-darwin.so +0 -0
  1328. scipy/stats/_stats.pxd +10 -0
  1329. scipy/stats/_stats_mstats_common.py +322 -0
  1330. scipy/stats/_stats_py.py +11089 -0
  1331. scipy/stats/_stats_pythran.cpython-314-darwin.so +0 -0
  1332. scipy/stats/_survival.py +683 -0
  1333. scipy/stats/_tukeylambda_stats.py +199 -0
  1334. scipy/stats/_unuran/__init__.py +0 -0
  1335. scipy/stats/_unuran/unuran_wrapper.cpython-314-darwin.so +0 -0
  1336. scipy/stats/_unuran/unuran_wrapper.pyi +179 -0
  1337. scipy/stats/_variation.py +126 -0
  1338. scipy/stats/_warnings_errors.py +38 -0
  1339. scipy/stats/_wilcoxon.py +265 -0
  1340. scipy/stats/biasedurn.py +16 -0
  1341. scipy/stats/contingency.py +521 -0
  1342. scipy/stats/distributions.py +24 -0
  1343. scipy/stats/kde.py +18 -0
  1344. scipy/stats/morestats.py +27 -0
  1345. scipy/stats/mstats.py +140 -0
  1346. scipy/stats/mstats_basic.py +42 -0
  1347. scipy/stats/mstats_extras.py +25 -0
  1348. scipy/stats/mvn.py +17 -0
  1349. scipy/stats/qmc.py +236 -0
  1350. scipy/stats/sampling.py +73 -0
  1351. scipy/stats/stats.py +41 -0
  1352. scipy/stats/tests/__init__.py +0 -0
  1353. scipy/stats/tests/common_tests.py +356 -0
  1354. scipy/stats/tests/data/_mvt.py +171 -0
  1355. scipy/stats/tests/data/fisher_exact_results_from_r.py +607 -0
  1356. scipy/stats/tests/data/jf_skew_t_gamlss_pdf_data.npy +0 -0
  1357. scipy/stats/tests/data/levy_stable/stable-Z1-cdf-sample-data.npy +0 -0
  1358. scipy/stats/tests/data/levy_stable/stable-Z1-pdf-sample-data.npy +0 -0
  1359. scipy/stats/tests/data/levy_stable/stable-loc-scale-sample-data.npy +0 -0
  1360. scipy/stats/tests/data/nist_anova/AtmWtAg.dat +108 -0
  1361. scipy/stats/tests/data/nist_anova/SiRstv.dat +85 -0
  1362. scipy/stats/tests/data/nist_anova/SmLs01.dat +249 -0
  1363. scipy/stats/tests/data/nist_anova/SmLs02.dat +1869 -0
  1364. scipy/stats/tests/data/nist_anova/SmLs03.dat +18069 -0
  1365. scipy/stats/tests/data/nist_anova/SmLs04.dat +249 -0
  1366. scipy/stats/tests/data/nist_anova/SmLs05.dat +1869 -0
  1367. scipy/stats/tests/data/nist_anova/SmLs06.dat +18069 -0
  1368. scipy/stats/tests/data/nist_anova/SmLs07.dat +249 -0
  1369. scipy/stats/tests/data/nist_anova/SmLs08.dat +1869 -0
  1370. scipy/stats/tests/data/nist_anova/SmLs09.dat +18069 -0
  1371. scipy/stats/tests/data/nist_linregress/Norris.dat +97 -0
  1372. scipy/stats/tests/data/rel_breitwigner_pdf_sample_data_ROOT.npy +0 -0
  1373. scipy/stats/tests/data/studentized_range_mpmath_ref.json +1499 -0
  1374. scipy/stats/tests/test_axis_nan_policy.py +1388 -0
  1375. scipy/stats/tests/test_binned_statistic.py +568 -0
  1376. scipy/stats/tests/test_censored_data.py +152 -0
  1377. scipy/stats/tests/test_contingency.py +294 -0
  1378. scipy/stats/tests/test_continued_fraction.py +173 -0
  1379. scipy/stats/tests/test_continuous.py +2198 -0
  1380. scipy/stats/tests/test_continuous_basic.py +1053 -0
  1381. scipy/stats/tests/test_continuous_fit_censored.py +683 -0
  1382. scipy/stats/tests/test_correlation.py +80 -0
  1383. scipy/stats/tests/test_crosstab.py +115 -0
  1384. scipy/stats/tests/test_discrete_basic.py +580 -0
  1385. scipy/stats/tests/test_discrete_distns.py +700 -0
  1386. scipy/stats/tests/test_distributions.py +10413 -0
  1387. scipy/stats/tests/test_entropy.py +322 -0
  1388. scipy/stats/tests/test_fast_gen_inversion.py +435 -0
  1389. scipy/stats/tests/test_fit.py +1090 -0
  1390. scipy/stats/tests/test_hypotests.py +1991 -0
  1391. scipy/stats/tests/test_kdeoth.py +676 -0
  1392. scipy/stats/tests/test_marray.py +289 -0
  1393. scipy/stats/tests/test_mgc.py +217 -0
  1394. scipy/stats/tests/test_morestats.py +3259 -0
  1395. scipy/stats/tests/test_mstats_basic.py +2071 -0
  1396. scipy/stats/tests/test_mstats_extras.py +172 -0
  1397. scipy/stats/tests/test_multicomp.py +405 -0
  1398. scipy/stats/tests/test_multivariate.py +4381 -0
  1399. scipy/stats/tests/test_odds_ratio.py +148 -0
  1400. scipy/stats/tests/test_qmc.py +1492 -0
  1401. scipy/stats/tests/test_quantile.py +199 -0
  1402. scipy/stats/tests/test_rank.py +345 -0
  1403. scipy/stats/tests/test_relative_risk.py +95 -0
  1404. scipy/stats/tests/test_resampling.py +2000 -0
  1405. scipy/stats/tests/test_sampling.py +1450 -0
  1406. scipy/stats/tests/test_sensitivity_analysis.py +310 -0
  1407. scipy/stats/tests/test_stats.py +9707 -0
  1408. scipy/stats/tests/test_survival.py +466 -0
  1409. scipy/stats/tests/test_tukeylambda_stats.py +85 -0
  1410. scipy/stats/tests/test_variation.py +216 -0
  1411. scipy/version.py +12 -0
  1412. scipy-1.16.1.dist-info/LICENSE.txt +934 -0
  1413. scipy-1.16.1.dist-info/METADATA +1083 -0
  1414. scipy-1.16.1.dist-info/RECORD +1415 -0
  1415. scipy-1.16.1.dist-info/WHEEL +6 -0
@@ -0,0 +1,835 @@
1
+ from collections import namedtuple
2
+
3
+ import numpy as np
4
+ import scipy.sparse as sps
5
+ from ._numdiff import approx_derivative, group_columns
6
+ from ._hessian_update_strategy import HessianUpdateStrategy
7
+ from scipy.sparse.linalg import LinearOperator
8
+ from scipy._lib._array_api import array_namespace, xp_copy
9
+ from scipy._lib import array_api_extra as xpx
10
+ from scipy._lib._util import _ScalarFunctionWrapper
11
+
12
+
13
+ FD_METHODS = ('2-point', '3-point', 'cs')
14
+
15
+
16
+ class _ScalarGradWrapper:
17
+ """
18
+ Wrapper class for gradient calculation
19
+ """
20
+ def __init__(
21
+ self,
22
+ grad,
23
+ fun=None,
24
+ args=None,
25
+ finite_diff_options=None,
26
+ ):
27
+ self.fun = fun
28
+ self.grad = grad
29
+ self.args = [] if args is None else args
30
+ self.finite_diff_options = finite_diff_options
31
+ self.ngev = 0
32
+ # number of function evaluations consumed by finite difference
33
+ self.nfev = 0
34
+
35
+ def __call__(self, x, f0=None, **kwds):
36
+ # Send a copy because the user may overwrite it.
37
+ # The user of this class might want `x` to remain unchanged.
38
+ if callable(self.grad):
39
+ g = np.atleast_1d(self.grad(np.copy(x), *self.args))
40
+ elif self.grad in FD_METHODS:
41
+ g, dct = approx_derivative(
42
+ self.fun,
43
+ x,
44
+ f0=f0,
45
+ **self.finite_diff_options,
46
+ )
47
+ self.nfev += dct['nfev']
48
+
49
+ self.ngev += 1
50
+ return g
51
+
52
+
53
+ class _ScalarHessWrapper:
54
+ """
55
+ Wrapper class for hess calculation via finite differences
56
+ """
57
+ def __init__(
58
+ self,
59
+ hess,
60
+ x0=None,
61
+ grad=None,
62
+ args=None,
63
+ finite_diff_options=None,
64
+ ):
65
+ self.hess = hess
66
+ self.grad = grad
67
+ self.args = [] if args is None else args
68
+ self.finite_diff_options = finite_diff_options
69
+ # keep track of any finite difference function evaluations for grad
70
+ self.ngev = 0
71
+ self.nhev = 0
72
+ self.H = None
73
+ self._hess_func = None
74
+
75
+ if callable(hess):
76
+ self.H = hess(np.copy(x0), *args)
77
+ self.nhev += 1
78
+
79
+ if sps.issparse(self.H):
80
+ self._hess_func = self._sparse_callable
81
+ self.H = sps.csr_array(self.H)
82
+ elif isinstance(self.H, LinearOperator):
83
+ self._hess_func = self._linearoperator_callable
84
+ else:
85
+ # dense
86
+ self._hess_func = self._dense_callable
87
+ self.H = np.atleast_2d(np.asarray(self.H))
88
+ elif hess in FD_METHODS:
89
+ self._hess_func = self._fd_hess
90
+
91
+ def __call__(self, x, f0=None, **kwds):
92
+ return self._hess_func(np.copy(x), f0=f0)
93
+
94
+ def _fd_hess(self, x, f0=None, **kwds):
95
+ self.H, dct = approx_derivative(
96
+ self.grad, x, f0=f0, **self.finite_diff_options
97
+ )
98
+ self.ngev += dct["nfev"]
99
+ return self.H
100
+
101
+ def _sparse_callable(self, x, **kwds):
102
+ self.nhev += 1
103
+ self.H = sps.csr_array(self.hess(x, *self.args))
104
+ return self.H
105
+
106
+ def _dense_callable(self, x, **kwds):
107
+ self.nhev += 1
108
+ self.H = np.atleast_2d(
109
+ np.asarray(self.hess(x, *self.args))
110
+ )
111
+ return self.H
112
+
113
+ def _linearoperator_callable(self, x, **kwds):
114
+ self.nhev += 1
115
+ self.H = self.hess(x, *self.args)
116
+ return self.H
117
+
118
+
119
+ class ScalarFunction:
120
+ """Scalar function and its derivatives.
121
+
122
+ This class defines a scalar function F: R^n->R and methods for
123
+ computing or approximating its first and second derivatives.
124
+
125
+ Parameters
126
+ ----------
127
+ fun : callable
128
+ evaluates the scalar function. Must be of the form ``fun(x, *args)``,
129
+ where ``x`` is the argument in the form of a 1-D array and ``args`` is
130
+ a tuple of any additional fixed parameters needed to completely specify
131
+ the function. Should return a scalar.
132
+ x0 : array-like
133
+ Provides an initial set of variables for evaluating fun. Array of real
134
+ elements of size (n,), where 'n' is the number of independent
135
+ variables.
136
+ args : tuple, optional
137
+ Any additional fixed parameters needed to completely specify the scalar
138
+ function.
139
+ grad : {callable, '2-point', '3-point', 'cs'}
140
+ Method for computing the gradient vector.
141
+ If it is a callable, it should be a function that returns the gradient
142
+ vector:
143
+
144
+ ``grad(x, *args) -> array_like, shape (n,)``
145
+
146
+ where ``x`` is an array with shape (n,) and ``args`` is a tuple with
147
+ the fixed parameters.
148
+ Alternatively, the keywords {'2-point', '3-point', 'cs'} can be used
149
+ to select a finite difference scheme for numerical estimation of the
150
+ gradient with a relative step size. These finite difference schemes
151
+ obey any specified `bounds`.
152
+ hess : {callable, '2-point', '3-point', 'cs', HessianUpdateStrategy}
153
+ Method for computing the Hessian matrix. If it is callable, it should
154
+ return the Hessian matrix:
155
+
156
+ ``hess(x, *args) -> {LinearOperator, spmatrix, array}, (n, n)``
157
+
158
+ where x is a (n,) ndarray and `args` is a tuple with the fixed
159
+ parameters. Alternatively, the keywords {'2-point', '3-point', 'cs'}
160
+ select a finite difference scheme for numerical estimation. Or, objects
161
+ implementing `HessianUpdateStrategy` interface can be used to
162
+ approximate the Hessian.
163
+ Whenever the gradient is estimated via finite-differences, the Hessian
164
+ cannot be estimated with options {'2-point', '3-point', 'cs'} and needs
165
+ to be estimated using one of the quasi-Newton strategies.
166
+ finite_diff_rel_step : None or array_like
167
+ Relative step size to use. The absolute step size is computed as
168
+ ``h = finite_diff_rel_step * sign(x0) * max(1, abs(x0))``, possibly
169
+ adjusted to fit into the bounds. For ``method='3-point'`` the sign
170
+ of `h` is ignored. If None then finite_diff_rel_step is selected
171
+ automatically,
172
+ finite_diff_bounds : tuple of array_like
173
+ Lower and upper bounds on independent variables. Defaults to no bounds,
174
+ (-np.inf, np.inf). Each bound must match the size of `x0` or be a
175
+ scalar, in the latter case the bound will be the same for all
176
+ variables. Use it to limit the range of function evaluation.
177
+ epsilon : None or array_like, optional
178
+ Absolute step size to use, possibly adjusted to fit into the bounds.
179
+ For ``method='3-point'`` the sign of `epsilon` is ignored. By default
180
+ relative steps are used, only if ``epsilon is not None`` are absolute
181
+ steps used.
182
+ workers : map-like callable, optional
183
+ A map-like callable, such as `multiprocessing.Pool.map` for evaluating
184
+ any numerical differentiation in parallel.
185
+ This evaluation is carried out as ``workers(fun, iterable)``, or
186
+ ``workers(grad, iterable)``, depending on what is being numerically
187
+ differentiated.
188
+ Alternatively, if `workers` is an int the task is subdivided into `workers`
189
+ sections and the function evaluated in parallel
190
+ (uses `multiprocessing.Pool <multiprocessing>`).
191
+ Supply -1 to use all available CPU cores.
192
+ It is recommended that a map-like be used instead of int, as repeated
193
+ calls to `approx_derivative` will incur large overhead from setting up
194
+ new processes.
195
+
196
+ .. versionadded:: 1.16.0
197
+
198
+ Notes
199
+ -----
200
+ This class implements a memoization logic. There are methods `fun`,
201
+ `grad`, hess` and corresponding attributes `f`, `g` and `H`. The following
202
+ things should be considered:
203
+
204
+ 1. Use only public methods `fun`, `grad` and `hess`.
205
+ 2. After one of the methods is called, the corresponding attribute
206
+ will be set. However, a subsequent call with a different argument
207
+ of *any* of the methods may overwrite the attribute.
208
+ """
209
+ def __init__(self, fun, x0, args, grad, hess, finite_diff_rel_step=None,
210
+ finite_diff_bounds=(-np.inf, np.inf), epsilon=None, workers=None):
211
+
212
+ if not callable(grad) and grad not in FD_METHODS:
213
+ raise ValueError(
214
+ f"`grad` must be either callable or one of {FD_METHODS}."
215
+ )
216
+
217
+ if not (callable(hess) or hess in FD_METHODS
218
+ or isinstance(hess, HessianUpdateStrategy)):
219
+ raise ValueError(
220
+ f"`hess` must be either callable, HessianUpdateStrategy"
221
+ f" or one of {FD_METHODS}."
222
+ )
223
+
224
+ if grad in FD_METHODS and hess in FD_METHODS:
225
+ raise ValueError("Whenever the gradient is estimated via "
226
+ "finite-differences, we require the Hessian "
227
+ "to be estimated using one of the "
228
+ "quasi-Newton strategies.")
229
+ self.xp = xp = array_namespace(x0)
230
+ _x = xpx.atleast_nd(xp.asarray(x0), ndim=1, xp=xp)
231
+ _dtype = xp.float64
232
+ if xp.isdtype(_x.dtype, "real floating"):
233
+ _dtype = _x.dtype
234
+
235
+ # original arguments
236
+ self._wrapped_fun = _ScalarFunctionWrapper(fun, args)
237
+ self._orig_fun = fun
238
+ self._orig_grad = grad
239
+ self._orig_hess = hess
240
+ self._args = args
241
+
242
+ # promotes to floating
243
+ self.x = xp.astype(_x, _dtype)
244
+ self.x_dtype = _dtype
245
+ self.n = self.x.size
246
+ self.f_updated = False
247
+ self.g_updated = False
248
+ self.H_updated = False
249
+
250
+ self._lowest_x = None
251
+ self._lowest_f = np.inf
252
+
253
+ # normalize workers
254
+ workers = workers or map
255
+
256
+ finite_diff_options = {}
257
+ if grad in FD_METHODS:
258
+ finite_diff_options["method"] = grad
259
+ finite_diff_options["rel_step"] = finite_diff_rel_step
260
+ finite_diff_options["abs_step"] = epsilon
261
+ finite_diff_options["bounds"] = finite_diff_bounds
262
+ finite_diff_options["workers"] = workers
263
+ finite_diff_options["full_output"] = True
264
+ if hess in FD_METHODS:
265
+ finite_diff_options["method"] = hess
266
+ finite_diff_options["rel_step"] = finite_diff_rel_step
267
+ finite_diff_options["abs_step"] = epsilon
268
+ finite_diff_options["as_linear_operator"] = True
269
+ finite_diff_options["workers"] = workers
270
+ finite_diff_options["full_output"] = True
271
+
272
+ # Initial function evaluation
273
+ self._nfev = 0
274
+ self._update_fun()
275
+
276
+ # Initial gradient evaluation
277
+ self._wrapped_grad = _ScalarGradWrapper(
278
+ grad,
279
+ fun=self._wrapped_fun,
280
+ args=args,
281
+ finite_diff_options=finite_diff_options,
282
+ )
283
+ self._update_grad()
284
+
285
+ # Hessian evaluation
286
+ if isinstance(hess, HessianUpdateStrategy):
287
+ self.H = hess
288
+ self.H.initialize(self.n, 'hess')
289
+ self.H_updated = True
290
+ self.x_prev = None
291
+ self.g_prev = None
292
+ _FakeCounter = namedtuple('_FakeCounter', ['ngev', 'nhev'])
293
+ self._wrapped_hess = _FakeCounter(ngev=0, nhev=0)
294
+ else:
295
+ if callable(hess):
296
+ self._wrapped_hess = _ScalarHessWrapper(
297
+ hess,
298
+ x0=x0,
299
+ args=args,
300
+ finite_diff_options=finite_diff_options
301
+ )
302
+ self.H = self._wrapped_hess.H
303
+ self.H_updated = True
304
+ elif hess in FD_METHODS:
305
+ self._wrapped_hess = _ScalarHessWrapper(
306
+ hess,
307
+ x0=x0,
308
+ args=args,
309
+ grad=self._wrapped_grad,
310
+ finite_diff_options=finite_diff_options
311
+ )
312
+ self._update_grad()
313
+ self.H = self._wrapped_hess(self.x, f0=self.g)
314
+ self.H_updated = True
315
+
316
+ @property
317
+ def nfev(self):
318
+ return self._nfev + self._wrapped_grad.nfev
319
+
320
+ @property
321
+ def ngev(self):
322
+ return self._wrapped_grad.ngev #+ self._wrapped_hess.ngev
323
+
324
+ @property
325
+ def nhev(self):
326
+ return self._wrapped_hess.nhev
327
+
328
+ def _update_x(self, x):
329
+ if isinstance(self._orig_hess, HessianUpdateStrategy):
330
+ self._update_grad()
331
+ self.x_prev = self.x
332
+ self.g_prev = self.g
333
+ # ensure that self.x is a copy of x. Don't store a reference
334
+ # otherwise the memoization doesn't work properly.
335
+
336
+ _x = xpx.atleast_nd(self.xp.asarray(x), ndim=1, xp=self.xp)
337
+ self.x = self.xp.astype(_x, self.x_dtype)
338
+ self.f_updated = False
339
+ self.g_updated = False
340
+ self.H_updated = False
341
+ self._update_hess()
342
+ else:
343
+ # ensure that self.x is a copy of x. Don't store a reference
344
+ # otherwise the memoization doesn't work properly.
345
+ _x = xpx.atleast_nd(self.xp.asarray(x), ndim=1, xp=self.xp)
346
+ self.x = self.xp.astype(_x, self.x_dtype)
347
+ self.f_updated = False
348
+ self.g_updated = False
349
+ self.H_updated = False
350
+
351
+ def _update_fun(self):
352
+ if not self.f_updated:
353
+ fx = self._wrapped_fun(self.x)
354
+ self._nfev += 1
355
+ if fx < self._lowest_f:
356
+ self._lowest_x = self.x
357
+ self._lowest_f = fx
358
+
359
+ self.f = fx
360
+ self.f_updated = True
361
+
362
+ def _update_grad(self):
363
+ if not self.g_updated:
364
+ if self._orig_grad in FD_METHODS:
365
+ self._update_fun()
366
+ self.g = self._wrapped_grad(self.x, f0=self.f)
367
+ self.g_updated = True
368
+
369
+ def _update_hess(self):
370
+ if not self.H_updated:
371
+ if self._orig_hess in FD_METHODS:
372
+ self._update_grad()
373
+ self.H = self._wrapped_hess(self.x, f0=self.g)
374
+ elif isinstance(self._orig_hess, HessianUpdateStrategy):
375
+ self._update_grad()
376
+ self.H.update(self.x - self.x_prev, self.g - self.g_prev)
377
+ else: # should be callable(hess)
378
+ self.H = self._wrapped_hess(self.x)
379
+
380
+ self.H_updated = True
381
+
382
+ def fun(self, x):
383
+ if not np.array_equal(x, self.x):
384
+ self._update_x(x)
385
+ self._update_fun()
386
+ return self.f
387
+
388
+ def grad(self, x):
389
+ if not np.array_equal(x, self.x):
390
+ self._update_x(x)
391
+ self._update_grad()
392
+ return self.g
393
+
394
+ def hess(self, x):
395
+ if not np.array_equal(x, self.x):
396
+ self._update_x(x)
397
+ self._update_hess()
398
+ return self.H
399
+
400
+ def fun_and_grad(self, x):
401
+ if not np.array_equal(x, self.x):
402
+ self._update_x(x)
403
+ self._update_fun()
404
+ self._update_grad()
405
+ return self.f, self.g
406
+
407
+
408
+ class _VectorFunWrapper:
409
+ def __init__(self, fun):
410
+ self.fun = fun
411
+ self.nfev = 0
412
+
413
+ def __call__(self, x):
414
+ self.nfev += 1
415
+ return np.atleast_1d(self.fun(x))
416
+
417
+
418
+ class _VectorJacWrapper:
419
+ """
420
+ Wrapper class for Jacobian calculation
421
+ """
422
+ def __init__(
423
+ self,
424
+ jac,
425
+ fun=None,
426
+ finite_diff_options=None,
427
+ sparse_jacobian=None
428
+ ):
429
+ self.fun = fun
430
+ self.jac = jac
431
+ self.finite_diff_options = finite_diff_options
432
+ self.sparse_jacobian = sparse_jacobian
433
+
434
+ self.njev = 0
435
+ # number of function evaluations consumed by finite difference
436
+ self.nfev = 0
437
+
438
+ def __call__(self, x, f0=None, **kwds):
439
+ # Send a copy because the user may overwrite it.
440
+ # The user of this class might want `x` to remain unchanged.
441
+ if callable(self.jac):
442
+ J = self.jac(x)
443
+ self.njev += 1
444
+ elif self.jac in FD_METHODS:
445
+ J, dct = approx_derivative(
446
+ self.fun,
447
+ x,
448
+ f0=f0,
449
+ **self.finite_diff_options,
450
+ )
451
+ self.nfev += dct['nfev']
452
+
453
+ if self.sparse_jacobian:
454
+ return sps.csr_array(J)
455
+ elif sps.issparse(J):
456
+ return J.toarray()
457
+ elif isinstance(J, LinearOperator):
458
+ return J
459
+ else:
460
+ return np.atleast_2d(J)
461
+
462
+
463
+ class _VectorHessWrapper:
464
+ """
465
+ Wrapper class for Jacobian calculation
466
+ """
467
+ def __init__(
468
+ self,
469
+ hess,
470
+ jac=None,
471
+ finite_diff_options=None,
472
+ ):
473
+ self.jac = jac
474
+ self.hess = hess
475
+ self.finite_diff_options = finite_diff_options
476
+ self.nhev = 0
477
+ # number of jac evaluations consumed by finite difference
478
+ self.njev = 0
479
+
480
+ def __call__(self, x, v, J0=None, **kwds):
481
+ # Send a copy because the user may overwrite it.
482
+ # The user of this class might want `x` to remain unchanged.
483
+ if callable(self.hess):
484
+ self.nhev += 1
485
+ return self._callable_hess(x, v)
486
+ elif self.hess in FD_METHODS:
487
+ return self._fd_hess(x, v, J0=J0)
488
+
489
+ def _fd_hess(self, x, v, J0=None):
490
+ if J0 is None:
491
+ J0 = self.jac(x)
492
+ self.njev += 1
493
+
494
+ # H will be a LinearOperator
495
+ H = approx_derivative(self.jac_dot_v, x,
496
+ f0=J0.T.dot(v),
497
+ args=(v,),
498
+ **self.finite_diff_options)
499
+ return H
500
+
501
+ def jac_dot_v(self, x, v):
502
+ self.njev += 1
503
+ return self.jac(x).T.dot(v)
504
+
505
+ def _callable_hess(self, x, v):
506
+ H = self.hess(x, v)
507
+
508
+ if sps.issparse(H):
509
+ return sps.csr_array(H)
510
+ elif isinstance(H, LinearOperator):
511
+ return H
512
+ else:
513
+ return np.atleast_2d(np.asarray(H))
514
+
515
+
516
+ class VectorFunction:
517
+ """Vector function and its derivatives.
518
+
519
+ This class defines a vector function F: R^n->R^m and methods for
520
+ computing or approximating its first and second derivatives.
521
+
522
+ Notes
523
+ -----
524
+ This class implements a memoization logic. There are methods `fun`,
525
+ `jac`, hess` and corresponding attributes `f`, `J` and `H`. The following
526
+ things should be considered:
527
+
528
+ 1. Use only public methods `fun`, `jac` and `hess`.
529
+ 2. After one of the methods is called, the corresponding attribute
530
+ will be set. However, a subsequent call with a different argument
531
+ of *any* of the methods may overwrite the attribute.
532
+ """
533
+ def __init__(self, fun, x0, jac, hess,
534
+ finite_diff_rel_step=None, finite_diff_jac_sparsity=None,
535
+ finite_diff_bounds=(-np.inf, np.inf), sparse_jacobian=None,
536
+ workers=None):
537
+ if not callable(jac) and jac not in FD_METHODS:
538
+ raise ValueError(f"`jac` must be either callable or one of {FD_METHODS}.")
539
+
540
+ if not (callable(hess) or hess in FD_METHODS
541
+ or isinstance(hess, HessianUpdateStrategy)):
542
+ raise ValueError("`hess` must be either callable,"
543
+ f"HessianUpdateStrategy or one of {FD_METHODS}.")
544
+
545
+ if jac in FD_METHODS and hess in FD_METHODS:
546
+ raise ValueError("Whenever the Jacobian is estimated via "
547
+ "finite-differences, we require the Hessian to "
548
+ "be estimated using one of the quasi-Newton "
549
+ "strategies.")
550
+
551
+ self.xp = xp = array_namespace(x0)
552
+ _x = xpx.atleast_nd(xp.asarray(x0), ndim=1, xp=xp)
553
+ _dtype = xp.float64
554
+ if xp.isdtype(_x.dtype, "real floating"):
555
+ _dtype = _x.dtype
556
+
557
+ # store original functions
558
+ self._orig_fun = fun
559
+ self._orig_jac = jac
560
+ self._orig_hess = hess
561
+
562
+ # promotes to floating, ensures that it's a copy
563
+ self.x = xp.astype(_x, _dtype)
564
+ self.x_dtype = _dtype
565
+
566
+ self.n = self.x.size
567
+ self._nfev = 0
568
+ self._njev = 0
569
+ self._nhev = 0
570
+ self.f_updated = False
571
+ self.J_updated = False
572
+ self.H_updated = False
573
+
574
+ # normalize workers
575
+ workers = workers or map
576
+
577
+ finite_diff_options = {}
578
+ if jac in FD_METHODS:
579
+ finite_diff_options["method"] = jac
580
+ finite_diff_options["rel_step"] = finite_diff_rel_step
581
+ if finite_diff_jac_sparsity is not None:
582
+ sparsity_groups = group_columns(finite_diff_jac_sparsity)
583
+ finite_diff_options["sparsity"] = (finite_diff_jac_sparsity,
584
+ sparsity_groups)
585
+ finite_diff_options["bounds"] = finite_diff_bounds
586
+ finite_diff_options["workers"] = workers
587
+ finite_diff_options["full_output"] = True
588
+ self.x_diff = np.copy(self.x)
589
+ if hess in FD_METHODS:
590
+ finite_diff_options["method"] = hess
591
+ finite_diff_options["rel_step"] = finite_diff_rel_step
592
+ finite_diff_options["as_linear_operator"] = True
593
+ # workers is not useful for evaluation of the LinearOperator
594
+ # produced by approx_derivative. Only two/three function
595
+ # evaluations are used, and the LinearOperator may persist
596
+ # outside the scope that workers is valid in.
597
+ self.x_diff = np.copy(self.x)
598
+ if jac in FD_METHODS and hess in FD_METHODS:
599
+ raise ValueError("Whenever the Jacobian is estimated via "
600
+ "finite-differences, we require the Hessian to "
601
+ "be estimated using one of the quasi-Newton "
602
+ "strategies.")
603
+
604
+ self.fun_wrapped = _VectorFunWrapper(fun)
605
+ self._update_fun()
606
+
607
+ self.v = np.zeros_like(self.f)
608
+ self.m = self.v.size
609
+
610
+ # Initial Jacobian Evaluation
611
+ if callable(jac):
612
+ self.J = jac(xp_copy(self.x))
613
+ self.J_updated = True
614
+ self._njev += 1
615
+ elif jac in FD_METHODS:
616
+ self.J, dct = approx_derivative(
617
+ self.fun_wrapped, self.x, f0=self.f, **finite_diff_options
618
+ )
619
+ self.J_updated = True
620
+ self._nfev += dct['nfev']
621
+
622
+ self.sparse_jacobian = False
623
+ if (sparse_jacobian or
624
+ sparse_jacobian is None and sps.issparse(self.J)):
625
+ # something truthy was specified for sparse_jacobian,
626
+ # or it turns out that the Jacobian was sparse.
627
+ self.J = sps.csr_array(self.J)
628
+ self.sparse_jacobian = True
629
+ elif sps.issparse(self.J):
630
+ self.J = self.J.toarray()
631
+ elif isinstance(self.J, LinearOperator):
632
+ pass
633
+ else:
634
+ self.J = np.atleast_2d(self.J)
635
+
636
+ self.jac_wrapped = _VectorJacWrapper(
637
+ jac,
638
+ fun=self.fun_wrapped,
639
+ finite_diff_options=finite_diff_options,
640
+ sparse_jacobian=self.sparse_jacobian
641
+ )
642
+
643
+ self.hess_wrapped = _VectorHessWrapper(
644
+ hess, jac=self.jac_wrapped, finite_diff_options=finite_diff_options
645
+ )
646
+
647
+ # Define Hessian
648
+ if callable(hess) or hess in FD_METHODS:
649
+ self.H = self.hess_wrapped(xp_copy(self.x), self.v, J0=self.J)
650
+ self.H_updated = True
651
+ if callable(hess):
652
+ self._nhev += 1
653
+ elif isinstance(hess, HessianUpdateStrategy):
654
+ self.H = hess
655
+ self.H.initialize(self.n, 'hess')
656
+ self.H_updated = True
657
+ self.x_prev = None
658
+ self.J_prev = None
659
+
660
+ @property
661
+ def nfev(self):
662
+ return self._nfev + self.jac_wrapped.nfev
663
+
664
+ @property
665
+ def njev(self):
666
+ return self._njev + self.hess_wrapped.njev
667
+
668
+ @property
669
+ def nhev(self):
670
+ return self._nhev
671
+
672
+ def _update_v(self, v):
673
+ if not np.array_equal(v, self.v):
674
+ self.v = v
675
+ self.H_updated = False
676
+
677
+ def _update_x(self, x):
678
+ if not np.array_equal(x, self.x):
679
+ if isinstance(self._orig_hess, HessianUpdateStrategy):
680
+ self._update_jac()
681
+ self.x_prev = self.x
682
+ self.J_prev = self.J
683
+ _x = xpx.atleast_nd(self.xp.asarray(x), ndim=1, xp=self.xp)
684
+ self.x = self.xp.astype(_x, self.x_dtype)
685
+ self.f_updated = False
686
+ self.J_updated = False
687
+ self.H_updated = False
688
+ self._update_hess()
689
+ else:
690
+ _x = xpx.atleast_nd(self.xp.asarray(x), ndim=1, xp=self.xp)
691
+ self.x = self.xp.astype(_x, self.x_dtype)
692
+ self.f_updated = False
693
+ self.J_updated = False
694
+ self.H_updated = False
695
+
696
+ def _update_fun(self):
697
+ if not self.f_updated:
698
+ self.f = self.fun_wrapped(xp_copy(self.x))
699
+ self._nfev += 1
700
+ self.f_updated = True
701
+
702
+ def _update_jac(self):
703
+ if not self.J_updated:
704
+ if self._orig_jac in FD_METHODS:
705
+ # need to update fun to get f0
706
+ self._update_fun()
707
+ else:
708
+ self._njev += 1
709
+
710
+ self.J = self.jac_wrapped(xp_copy(self.x), f0=self.f)
711
+ self.J_updated = True
712
+
713
+ def _update_hess(self):
714
+ if not self.H_updated:
715
+ if callable(self._orig_hess):
716
+ self.H = self.hess_wrapped(xp_copy(self.x), self.v)
717
+ self._nhev += 1
718
+ elif self._orig_hess in FD_METHODS:
719
+ self._update_jac()
720
+ self.H = self.hess_wrapped(xp_copy(self.x), self.v, J0=self.J)
721
+ elif isinstance(self._orig_hess, HessianUpdateStrategy):
722
+ self._update_jac()
723
+ # When v is updated before x was updated, then x_prev and
724
+ # J_prev are None and we need this check.
725
+ if self.x_prev is not None and self.J_prev is not None:
726
+ delta_x = self.x - self.x_prev
727
+ delta_g = self.J.T.dot(self.v) - self.J_prev.T.dot(self.v)
728
+ self.H.update(delta_x, delta_g)
729
+
730
+ self.H_updated = True
731
+
732
+ def fun(self, x):
733
+ self._update_x(x)
734
+ self._update_fun()
735
+ # returns a copy so that downstream can't overwrite the
736
+ # internal attribute
737
+ return xp_copy(self.f)
738
+
739
+ def jac(self, x):
740
+ self._update_x(x)
741
+ self._update_jac()
742
+ if hasattr(self.J, "astype"):
743
+ # returns a copy so that downstream can't overwrite the
744
+ # internal attribute. But one can't copy a LinearOperator
745
+ return self.J.astype(self.J.dtype)
746
+ return self.J
747
+
748
+ def hess(self, x, v):
749
+ # v should be updated before x.
750
+ self._update_v(v)
751
+ self._update_x(x)
752
+ self._update_hess()
753
+ if hasattr(self.H, "astype"):
754
+ # returns a copy so that downstream can't overwrite the
755
+ # internal attribute. But one can't copy non-arrays
756
+ return self.H.astype(self.H.dtype)
757
+ return self.H
758
+
759
+
760
+ class LinearVectorFunction:
761
+ """Linear vector function and its derivatives.
762
+
763
+ Defines a linear function F = A x, where x is N-D vector and
764
+ A is m-by-n matrix. The Jacobian is constant and equals to A. The Hessian
765
+ is identically zero and it is returned as a csr matrix.
766
+ """
767
+ def __init__(self, A, x0, sparse_jacobian):
768
+ if sparse_jacobian or sparse_jacobian is None and sps.issparse(A):
769
+ self.J = sps.csr_array(A)
770
+ self.sparse_jacobian = True
771
+ elif sps.issparse(A):
772
+ self.J = A.toarray()
773
+ self.sparse_jacobian = False
774
+ else:
775
+ # np.asarray makes sure A is ndarray and not matrix
776
+ self.J = np.atleast_2d(np.asarray(A))
777
+ self.sparse_jacobian = False
778
+
779
+ self.m, self.n = self.J.shape
780
+
781
+ self.xp = xp = array_namespace(x0)
782
+ _x = xpx.atleast_nd(xp.asarray(x0), ndim=1, xp=xp)
783
+ _dtype = xp.float64
784
+ if xp.isdtype(_x.dtype, "real floating"):
785
+ _dtype = _x.dtype
786
+
787
+ # promotes to floating
788
+ self.x = xp.astype(_x, _dtype)
789
+ self.x_dtype = _dtype
790
+
791
+ self.f = self.J.dot(self.x)
792
+ self.f_updated = True
793
+
794
+ self.v = np.zeros(self.m, dtype=float)
795
+ self.H = sps.csr_array((self.n, self.n))
796
+
797
+ def _update_x(self, x):
798
+ if not np.array_equal(x, self.x):
799
+ _x = xpx.atleast_nd(self.xp.asarray(x), ndim=1, xp=self.xp)
800
+ self.x = self.xp.astype(_x, self.x_dtype)
801
+ self.f_updated = False
802
+
803
+ def fun(self, x):
804
+ self._update_x(x)
805
+ if not self.f_updated:
806
+ self.f = self.J.dot(x)
807
+ self.f_updated = True
808
+ return self.f
809
+
810
+ def jac(self, x):
811
+ self._update_x(x)
812
+ return self.J
813
+
814
+ def hess(self, x, v):
815
+ self._update_x(x)
816
+ self.v = v
817
+ return self.H
818
+
819
+
820
+ class IdentityVectorFunction(LinearVectorFunction):
821
+ """Identity vector function and its derivatives.
822
+
823
+ The Jacobian is the identity matrix, returned as a dense array when
824
+ `sparse_jacobian=False` and as a csr matrix otherwise. The Hessian is
825
+ identically zero and it is returned as a csr matrix.
826
+ """
827
+ def __init__(self, x0, sparse_jacobian):
828
+ n = len(x0)
829
+ if sparse_jacobian or sparse_jacobian is None:
830
+ A = sps.eye_array(n, format='csr')
831
+ sparse_jacobian = True
832
+ else:
833
+ A = np.eye(n)
834
+ sparse_jacobian = False
835
+ super().__init__(A, x0, sparse_jacobian)