scipy 1.16.2__cp314-cp314t-win_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 (1530) hide show
  1. scipy/__config__.py +161 -0
  2. scipy/__init__.py +150 -0
  3. scipy/_cyutility.cp314t-win_arm64.lib +0 -0
  4. scipy/_cyutility.cp314t-win_arm64.pyd +0 -0
  5. scipy/_distributor_init.py +18 -0
  6. scipy/_lib/__init__.py +14 -0
  7. scipy/_lib/_array_api.py +931 -0
  8. scipy/_lib/_array_api_compat_vendor.py +9 -0
  9. scipy/_lib/_array_api_no_0d.py +103 -0
  10. scipy/_lib/_bunch.py +229 -0
  11. scipy/_lib/_ccallback.py +251 -0
  12. scipy/_lib/_ccallback_c.cp314t-win_arm64.lib +0 -0
  13. scipy/_lib/_ccallback_c.cp314t-win_arm64.pyd +0 -0
  14. scipy/_lib/_disjoint_set.py +254 -0
  15. scipy/_lib/_docscrape.py +761 -0
  16. scipy/_lib/_elementwise_iterative_method.py +346 -0
  17. scipy/_lib/_fpumode.cp314t-win_arm64.lib +0 -0
  18. scipy/_lib/_fpumode.cp314t-win_arm64.pyd +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.cp314t-win_arm64.lib +0 -0
  23. scipy/_lib/_test_ccallback.cp314t-win_arm64.pyd +0 -0
  24. scipy/_lib/_test_deprecation_call.cp314t-win_arm64.lib +0 -0
  25. scipy/_lib/_test_deprecation_call.cp314t-win_arm64.pyd +0 -0
  26. scipy/_lib/_test_deprecation_def.cp314t-win_arm64.lib +0 -0
  27. scipy/_lib/_test_deprecation_def.cp314t-win_arm64.pyd +0 -0
  28. scipy/_lib/_testutils.py +373 -0
  29. scipy/_lib/_threadsafety.py +58 -0
  30. scipy/_lib/_tmpdirs.py +86 -0
  31. scipy/_lib/_uarray/LICENSE +29 -0
  32. scipy/_lib/_uarray/__init__.py +116 -0
  33. scipy/_lib/_uarray/_backend.py +707 -0
  34. scipy/_lib/_uarray/_uarray.cp314t-win_arm64.lib +0 -0
  35. scipy/_lib/_uarray/_uarray.cp314t-win_arm64.pyd +0 -0
  36. scipy/_lib/_util.py +1283 -0
  37. scipy/_lib/array_api_compat/__init__.py +22 -0
  38. scipy/_lib/array_api_compat/_internal.py +59 -0
  39. scipy/_lib/array_api_compat/common/__init__.py +1 -0
  40. scipy/_lib/array_api_compat/common/_aliases.py +727 -0
  41. scipy/_lib/array_api_compat/common/_fft.py +213 -0
  42. scipy/_lib/array_api_compat/common/_helpers.py +1058 -0
  43. scipy/_lib/array_api_compat/common/_linalg.py +232 -0
  44. scipy/_lib/array_api_compat/common/_typing.py +192 -0
  45. scipy/_lib/array_api_compat/cupy/__init__.py +13 -0
  46. scipy/_lib/array_api_compat/cupy/_aliases.py +156 -0
  47. scipy/_lib/array_api_compat/cupy/_info.py +336 -0
  48. scipy/_lib/array_api_compat/cupy/_typing.py +31 -0
  49. scipy/_lib/array_api_compat/cupy/fft.py +36 -0
  50. scipy/_lib/array_api_compat/cupy/linalg.py +49 -0
  51. scipy/_lib/array_api_compat/dask/__init__.py +0 -0
  52. scipy/_lib/array_api_compat/dask/array/__init__.py +12 -0
  53. scipy/_lib/array_api_compat/dask/array/_aliases.py +376 -0
  54. scipy/_lib/array_api_compat/dask/array/_info.py +416 -0
  55. scipy/_lib/array_api_compat/dask/array/fft.py +21 -0
  56. scipy/_lib/array_api_compat/dask/array/linalg.py +72 -0
  57. scipy/_lib/array_api_compat/numpy/__init__.py +28 -0
  58. scipy/_lib/array_api_compat/numpy/_aliases.py +190 -0
  59. scipy/_lib/array_api_compat/numpy/_info.py +366 -0
  60. scipy/_lib/array_api_compat/numpy/_typing.py +30 -0
  61. scipy/_lib/array_api_compat/numpy/fft.py +35 -0
  62. scipy/_lib/array_api_compat/numpy/linalg.py +143 -0
  63. scipy/_lib/array_api_compat/torch/__init__.py +22 -0
  64. scipy/_lib/array_api_compat/torch/_aliases.py +855 -0
  65. scipy/_lib/array_api_compat/torch/_info.py +369 -0
  66. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  67. scipy/_lib/array_api_compat/torch/fft.py +85 -0
  68. scipy/_lib/array_api_compat/torch/linalg.py +121 -0
  69. scipy/_lib/array_api_extra/__init__.py +38 -0
  70. scipy/_lib/array_api_extra/_delegation.py +171 -0
  71. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  72. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  73. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  74. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  75. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  76. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  77. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  78. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  79. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  80. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  81. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  82. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  83. scipy/_lib/array_api_extra/testing.py +359 -0
  84. scipy/_lib/cobyqa/__init__.py +20 -0
  85. scipy/_lib/cobyqa/framework.py +1240 -0
  86. scipy/_lib/cobyqa/main.py +1506 -0
  87. scipy/_lib/cobyqa/models.py +1529 -0
  88. scipy/_lib/cobyqa/problem.py +1296 -0
  89. scipy/_lib/cobyqa/settings.py +132 -0
  90. scipy/_lib/cobyqa/subsolvers/__init__.py +14 -0
  91. scipy/_lib/cobyqa/subsolvers/geometry.py +387 -0
  92. scipy/_lib/cobyqa/subsolvers/optim.py +1203 -0
  93. scipy/_lib/cobyqa/utils/__init__.py +18 -0
  94. scipy/_lib/cobyqa/utils/exceptions.py +22 -0
  95. scipy/_lib/cobyqa/utils/math.py +77 -0
  96. scipy/_lib/cobyqa/utils/versions.py +67 -0
  97. scipy/_lib/decorator.py +399 -0
  98. scipy/_lib/deprecation.py +274 -0
  99. scipy/_lib/doccer.py +366 -0
  100. scipy/_lib/messagestream.cp314t-win_arm64.lib +0 -0
  101. scipy/_lib/messagestream.cp314t-win_arm64.pyd +0 -0
  102. scipy/_lib/pyprima/__init__.py +212 -0
  103. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  104. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  105. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  106. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  107. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  108. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  109. scipy/_lib/pyprima/cobyla/update.py +289 -0
  110. scipy/_lib/pyprima/common/__init__.py +0 -0
  111. scipy/_lib/pyprima/common/_bounds.py +34 -0
  112. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  113. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  114. scipy/_lib/pyprima/common/_project.py +173 -0
  115. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  116. scipy/_lib/pyprima/common/consts.py +47 -0
  117. scipy/_lib/pyprima/common/evaluate.py +99 -0
  118. scipy/_lib/pyprima/common/history.py +38 -0
  119. scipy/_lib/pyprima/common/infos.py +30 -0
  120. scipy/_lib/pyprima/common/linalg.py +435 -0
  121. scipy/_lib/pyprima/common/message.py +290 -0
  122. scipy/_lib/pyprima/common/powalg.py +131 -0
  123. scipy/_lib/pyprima/common/preproc.py +277 -0
  124. scipy/_lib/pyprima/common/present.py +5 -0
  125. scipy/_lib/pyprima/common/ratio.py +54 -0
  126. scipy/_lib/pyprima/common/redrho.py +47 -0
  127. scipy/_lib/pyprima/common/selectx.py +296 -0
  128. scipy/_lib/tests/__init__.py +0 -0
  129. scipy/_lib/tests/test__gcutils.py +110 -0
  130. scipy/_lib/tests/test__pep440.py +67 -0
  131. scipy/_lib/tests/test__testutils.py +32 -0
  132. scipy/_lib/tests/test__threadsafety.py +51 -0
  133. scipy/_lib/tests/test__util.py +641 -0
  134. scipy/_lib/tests/test_array_api.py +322 -0
  135. scipy/_lib/tests/test_bunch.py +169 -0
  136. scipy/_lib/tests/test_ccallback.py +196 -0
  137. scipy/_lib/tests/test_config.py +45 -0
  138. scipy/_lib/tests/test_deprecation.py +10 -0
  139. scipy/_lib/tests/test_doccer.py +143 -0
  140. scipy/_lib/tests/test_import_cycles.py +18 -0
  141. scipy/_lib/tests/test_public_api.py +482 -0
  142. scipy/_lib/tests/test_scipy_version.py +28 -0
  143. scipy/_lib/tests/test_tmpdirs.py +48 -0
  144. scipy/_lib/tests/test_warnings.py +137 -0
  145. scipy/_lib/uarray.py +31 -0
  146. scipy/cluster/__init__.py +31 -0
  147. scipy/cluster/_hierarchy.cp314t-win_arm64.lib +0 -0
  148. scipy/cluster/_hierarchy.cp314t-win_arm64.pyd +0 -0
  149. scipy/cluster/_optimal_leaf_ordering.cp314t-win_arm64.lib +0 -0
  150. scipy/cluster/_optimal_leaf_ordering.cp314t-win_arm64.pyd +0 -0
  151. scipy/cluster/_vq.cp314t-win_arm64.lib +0 -0
  152. scipy/cluster/_vq.cp314t-win_arm64.pyd +0 -0
  153. scipy/cluster/hierarchy.py +4348 -0
  154. scipy/cluster/tests/__init__.py +0 -0
  155. scipy/cluster/tests/hierarchy_test_data.py +145 -0
  156. scipy/cluster/tests/test_disjoint_set.py +202 -0
  157. scipy/cluster/tests/test_hierarchy.py +1238 -0
  158. scipy/cluster/tests/test_vq.py +434 -0
  159. scipy/cluster/vq.py +832 -0
  160. scipy/conftest.py +683 -0
  161. scipy/constants/__init__.py +358 -0
  162. scipy/constants/_codata.py +2266 -0
  163. scipy/constants/_constants.py +369 -0
  164. scipy/constants/codata.py +21 -0
  165. scipy/constants/constants.py +53 -0
  166. scipy/constants/tests/__init__.py +0 -0
  167. scipy/constants/tests/test_codata.py +78 -0
  168. scipy/constants/tests/test_constants.py +83 -0
  169. scipy/datasets/__init__.py +90 -0
  170. scipy/datasets/_download_all.py +71 -0
  171. scipy/datasets/_fetchers.py +225 -0
  172. scipy/datasets/_registry.py +26 -0
  173. scipy/datasets/_utils.py +81 -0
  174. scipy/datasets/tests/__init__.py +0 -0
  175. scipy/datasets/tests/test_data.py +128 -0
  176. scipy/differentiate/__init__.py +27 -0
  177. scipy/differentiate/_differentiate.py +1129 -0
  178. scipy/differentiate/tests/__init__.py +0 -0
  179. scipy/differentiate/tests/test_differentiate.py +694 -0
  180. scipy/fft/__init__.py +114 -0
  181. scipy/fft/_backend.py +196 -0
  182. scipy/fft/_basic.py +1650 -0
  183. scipy/fft/_basic_backend.py +197 -0
  184. scipy/fft/_debug_backends.py +22 -0
  185. scipy/fft/_fftlog.py +223 -0
  186. scipy/fft/_fftlog_backend.py +200 -0
  187. scipy/fft/_helper.py +348 -0
  188. scipy/fft/_pocketfft/LICENSE.md +25 -0
  189. scipy/fft/_pocketfft/__init__.py +9 -0
  190. scipy/fft/_pocketfft/basic.py +251 -0
  191. scipy/fft/_pocketfft/helper.py +249 -0
  192. scipy/fft/_pocketfft/pypocketfft.cp314t-win_arm64.lib +0 -0
  193. scipy/fft/_pocketfft/pypocketfft.cp314t-win_arm64.pyd +0 -0
  194. scipy/fft/_pocketfft/realtransforms.py +109 -0
  195. scipy/fft/_pocketfft/tests/__init__.py +0 -0
  196. scipy/fft/_pocketfft/tests/test_basic.py +1011 -0
  197. scipy/fft/_pocketfft/tests/test_real_transforms.py +505 -0
  198. scipy/fft/_realtransforms.py +706 -0
  199. scipy/fft/_realtransforms_backend.py +63 -0
  200. scipy/fft/tests/__init__.py +0 -0
  201. scipy/fft/tests/mock_backend.py +96 -0
  202. scipy/fft/tests/test_backend.py +98 -0
  203. scipy/fft/tests/test_basic.py +504 -0
  204. scipy/fft/tests/test_fftlog.py +215 -0
  205. scipy/fft/tests/test_helper.py +558 -0
  206. scipy/fft/tests/test_multithreading.py +84 -0
  207. scipy/fft/tests/test_real_transforms.py +247 -0
  208. scipy/fftpack/__init__.py +103 -0
  209. scipy/fftpack/_basic.py +428 -0
  210. scipy/fftpack/_helper.py +115 -0
  211. scipy/fftpack/_pseudo_diffs.py +554 -0
  212. scipy/fftpack/_realtransforms.py +598 -0
  213. scipy/fftpack/basic.py +20 -0
  214. scipy/fftpack/convolve.cp314t-win_arm64.lib +0 -0
  215. scipy/fftpack/convolve.cp314t-win_arm64.pyd +0 -0
  216. scipy/fftpack/helper.py +19 -0
  217. scipy/fftpack/pseudo_diffs.py +22 -0
  218. scipy/fftpack/realtransforms.py +19 -0
  219. scipy/fftpack/tests/__init__.py +0 -0
  220. scipy/fftpack/tests/fftw_double_ref.npz +0 -0
  221. scipy/fftpack/tests/fftw_longdouble_ref.npz +0 -0
  222. scipy/fftpack/tests/fftw_single_ref.npz +0 -0
  223. scipy/fftpack/tests/test.npz +0 -0
  224. scipy/fftpack/tests/test_basic.py +877 -0
  225. scipy/fftpack/tests/test_helper.py +54 -0
  226. scipy/fftpack/tests/test_import.py +33 -0
  227. scipy/fftpack/tests/test_pseudo_diffs.py +388 -0
  228. scipy/fftpack/tests/test_real_transforms.py +836 -0
  229. scipy/integrate/__init__.py +122 -0
  230. scipy/integrate/_bvp.py +1160 -0
  231. scipy/integrate/_cubature.py +729 -0
  232. scipy/integrate/_dop.cp314t-win_arm64.lib +0 -0
  233. scipy/integrate/_dop.cp314t-win_arm64.pyd +0 -0
  234. scipy/integrate/_ivp/__init__.py +8 -0
  235. scipy/integrate/_ivp/base.py +290 -0
  236. scipy/integrate/_ivp/bdf.py +478 -0
  237. scipy/integrate/_ivp/common.py +451 -0
  238. scipy/integrate/_ivp/dop853_coefficients.py +193 -0
  239. scipy/integrate/_ivp/ivp.py +755 -0
  240. scipy/integrate/_ivp/lsoda.py +224 -0
  241. scipy/integrate/_ivp/radau.py +572 -0
  242. scipy/integrate/_ivp/rk.py +601 -0
  243. scipy/integrate/_ivp/tests/__init__.py +0 -0
  244. scipy/integrate/_ivp/tests/test_ivp.py +1287 -0
  245. scipy/integrate/_ivp/tests/test_rk.py +37 -0
  246. scipy/integrate/_lebedev.py +5450 -0
  247. scipy/integrate/_lsoda.cp314t-win_arm64.lib +0 -0
  248. scipy/integrate/_lsoda.cp314t-win_arm64.pyd +0 -0
  249. scipy/integrate/_ode.py +1395 -0
  250. scipy/integrate/_odepack.cp314t-win_arm64.lib +0 -0
  251. scipy/integrate/_odepack.cp314t-win_arm64.pyd +0 -0
  252. scipy/integrate/_odepack_py.py +273 -0
  253. scipy/integrate/_quad_vec.py +674 -0
  254. scipy/integrate/_quadpack.cp314t-win_arm64.lib +0 -0
  255. scipy/integrate/_quadpack.cp314t-win_arm64.pyd +0 -0
  256. scipy/integrate/_quadpack_py.py +1283 -0
  257. scipy/integrate/_quadrature.py +1336 -0
  258. scipy/integrate/_rules/__init__.py +12 -0
  259. scipy/integrate/_rules/_base.py +518 -0
  260. scipy/integrate/_rules/_gauss_kronrod.py +202 -0
  261. scipy/integrate/_rules/_gauss_legendre.py +62 -0
  262. scipy/integrate/_rules/_genz_malik.py +210 -0
  263. scipy/integrate/_tanhsinh.py +1385 -0
  264. scipy/integrate/_test_multivariate.cp314t-win_arm64.lib +0 -0
  265. scipy/integrate/_test_multivariate.cp314t-win_arm64.pyd +0 -0
  266. scipy/integrate/_test_odeint_banded.cp314t-win_arm64.lib +0 -0
  267. scipy/integrate/_test_odeint_banded.cp314t-win_arm64.pyd +0 -0
  268. scipy/integrate/_vode.cp314t-win_arm64.lib +0 -0
  269. scipy/integrate/_vode.cp314t-win_arm64.pyd +0 -0
  270. scipy/integrate/dop.py +15 -0
  271. scipy/integrate/lsoda.py +15 -0
  272. scipy/integrate/odepack.py +17 -0
  273. scipy/integrate/quadpack.py +23 -0
  274. scipy/integrate/tests/__init__.py +0 -0
  275. scipy/integrate/tests/test__quad_vec.py +211 -0
  276. scipy/integrate/tests/test_banded_ode_solvers.py +305 -0
  277. scipy/integrate/tests/test_bvp.py +714 -0
  278. scipy/integrate/tests/test_cubature.py +1375 -0
  279. scipy/integrate/tests/test_integrate.py +840 -0
  280. scipy/integrate/tests/test_odeint_jac.py +74 -0
  281. scipy/integrate/tests/test_quadpack.py +680 -0
  282. scipy/integrate/tests/test_quadrature.py +730 -0
  283. scipy/integrate/tests/test_tanhsinh.py +1171 -0
  284. scipy/integrate/vode.py +15 -0
  285. scipy/interpolate/__init__.py +228 -0
  286. scipy/interpolate/_bary_rational.py +715 -0
  287. scipy/interpolate/_bsplines.py +2469 -0
  288. scipy/interpolate/_cubic.py +973 -0
  289. scipy/interpolate/_dfitpack.cp314t-win_arm64.lib +0 -0
  290. scipy/interpolate/_dfitpack.cp314t-win_arm64.pyd +0 -0
  291. scipy/interpolate/_dierckx.cp314t-win_arm64.lib +0 -0
  292. scipy/interpolate/_dierckx.cp314t-win_arm64.pyd +0 -0
  293. scipy/interpolate/_fitpack.cp314t-win_arm64.lib +0 -0
  294. scipy/interpolate/_fitpack.cp314t-win_arm64.pyd +0 -0
  295. scipy/interpolate/_fitpack2.py +2397 -0
  296. scipy/interpolate/_fitpack_impl.py +811 -0
  297. scipy/interpolate/_fitpack_py.py +898 -0
  298. scipy/interpolate/_fitpack_repro.py +996 -0
  299. scipy/interpolate/_interpnd.cp314t-win_arm64.lib +0 -0
  300. scipy/interpolate/_interpnd.cp314t-win_arm64.pyd +0 -0
  301. scipy/interpolate/_interpolate.py +2266 -0
  302. scipy/interpolate/_ndbspline.py +415 -0
  303. scipy/interpolate/_ndgriddata.py +329 -0
  304. scipy/interpolate/_pade.py +67 -0
  305. scipy/interpolate/_polyint.py +1025 -0
  306. scipy/interpolate/_ppoly.cp314t-win_arm64.lib +0 -0
  307. scipy/interpolate/_ppoly.cp314t-win_arm64.pyd +0 -0
  308. scipy/interpolate/_rbf.py +290 -0
  309. scipy/interpolate/_rbfinterp.py +550 -0
  310. scipy/interpolate/_rbfinterp_pythran.cp314t-win_arm64.lib +0 -0
  311. scipy/interpolate/_rbfinterp_pythran.cp314t-win_arm64.pyd +0 -0
  312. scipy/interpolate/_rgi.py +764 -0
  313. scipy/interpolate/_rgi_cython.cp314t-win_arm64.lib +0 -0
  314. scipy/interpolate/_rgi_cython.cp314t-win_arm64.pyd +0 -0
  315. scipy/interpolate/dfitpack.py +24 -0
  316. scipy/interpolate/fitpack.py +31 -0
  317. scipy/interpolate/fitpack2.py +29 -0
  318. scipy/interpolate/interpnd.py +24 -0
  319. scipy/interpolate/interpolate.py +30 -0
  320. scipy/interpolate/ndgriddata.py +23 -0
  321. scipy/interpolate/polyint.py +24 -0
  322. scipy/interpolate/rbf.py +18 -0
  323. scipy/interpolate/tests/__init__.py +0 -0
  324. scipy/interpolate/tests/data/bug-1310.npz +0 -0
  325. scipy/interpolate/tests/data/estimate_gradients_hang.npy +0 -0
  326. scipy/interpolate/tests/data/gcvspl.npz +0 -0
  327. scipy/interpolate/tests/test_bary_rational.py +368 -0
  328. scipy/interpolate/tests/test_bsplines.py +3754 -0
  329. scipy/interpolate/tests/test_fitpack.py +519 -0
  330. scipy/interpolate/tests/test_fitpack2.py +1431 -0
  331. scipy/interpolate/tests/test_gil.py +64 -0
  332. scipy/interpolate/tests/test_interpnd.py +452 -0
  333. scipy/interpolate/tests/test_interpolate.py +2630 -0
  334. scipy/interpolate/tests/test_ndgriddata.py +308 -0
  335. scipy/interpolate/tests/test_pade.py +107 -0
  336. scipy/interpolate/tests/test_polyint.py +972 -0
  337. scipy/interpolate/tests/test_rbf.py +246 -0
  338. scipy/interpolate/tests/test_rbfinterp.py +534 -0
  339. scipy/interpolate/tests/test_rgi.py +1151 -0
  340. scipy/io/__init__.py +116 -0
  341. scipy/io/_fast_matrix_market/__init__.py +600 -0
  342. scipy/io/_fast_matrix_market/_fmm_core.cp314t-win_arm64.lib +0 -0
  343. scipy/io/_fast_matrix_market/_fmm_core.cp314t-win_arm64.pyd +0 -0
  344. scipy/io/_fortran.py +354 -0
  345. scipy/io/_harwell_boeing/__init__.py +7 -0
  346. scipy/io/_harwell_boeing/_fortran_format_parser.py +316 -0
  347. scipy/io/_harwell_boeing/hb.py +571 -0
  348. scipy/io/_harwell_boeing/tests/__init__.py +0 -0
  349. scipy/io/_harwell_boeing/tests/test_fortran_format.py +74 -0
  350. scipy/io/_harwell_boeing/tests/test_hb.py +70 -0
  351. scipy/io/_idl.py +917 -0
  352. scipy/io/_mmio.py +968 -0
  353. scipy/io/_netcdf.py +1104 -0
  354. scipy/io/_test_fortran.cp314t-win_arm64.lib +0 -0
  355. scipy/io/_test_fortran.cp314t-win_arm64.pyd +0 -0
  356. scipy/io/arff/__init__.py +28 -0
  357. scipy/io/arff/_arffread.py +873 -0
  358. scipy/io/arff/arffread.py +19 -0
  359. scipy/io/arff/tests/__init__.py +0 -0
  360. scipy/io/arff/tests/data/iris.arff +225 -0
  361. scipy/io/arff/tests/data/missing.arff +8 -0
  362. scipy/io/arff/tests/data/nodata.arff +11 -0
  363. scipy/io/arff/tests/data/quoted_nominal.arff +13 -0
  364. scipy/io/arff/tests/data/quoted_nominal_spaces.arff +13 -0
  365. scipy/io/arff/tests/data/test1.arff +10 -0
  366. scipy/io/arff/tests/data/test10.arff +8 -0
  367. scipy/io/arff/tests/data/test11.arff +11 -0
  368. scipy/io/arff/tests/data/test2.arff +15 -0
  369. scipy/io/arff/tests/data/test3.arff +6 -0
  370. scipy/io/arff/tests/data/test4.arff +11 -0
  371. scipy/io/arff/tests/data/test5.arff +26 -0
  372. scipy/io/arff/tests/data/test6.arff +12 -0
  373. scipy/io/arff/tests/data/test7.arff +15 -0
  374. scipy/io/arff/tests/data/test8.arff +12 -0
  375. scipy/io/arff/tests/data/test9.arff +14 -0
  376. scipy/io/arff/tests/test_arffread.py +421 -0
  377. scipy/io/harwell_boeing.py +17 -0
  378. scipy/io/idl.py +17 -0
  379. scipy/io/matlab/__init__.py +66 -0
  380. scipy/io/matlab/_byteordercodes.py +75 -0
  381. scipy/io/matlab/_mio.py +375 -0
  382. scipy/io/matlab/_mio4.py +632 -0
  383. scipy/io/matlab/_mio5.py +901 -0
  384. scipy/io/matlab/_mio5_params.py +281 -0
  385. scipy/io/matlab/_mio5_utils.cp314t-win_arm64.lib +0 -0
  386. scipy/io/matlab/_mio5_utils.cp314t-win_arm64.pyd +0 -0
  387. scipy/io/matlab/_mio_utils.cp314t-win_arm64.lib +0 -0
  388. scipy/io/matlab/_mio_utils.cp314t-win_arm64.pyd +0 -0
  389. scipy/io/matlab/_miobase.py +435 -0
  390. scipy/io/matlab/_streams.cp314t-win_arm64.lib +0 -0
  391. scipy/io/matlab/_streams.cp314t-win_arm64.pyd +0 -0
  392. scipy/io/matlab/byteordercodes.py +17 -0
  393. scipy/io/matlab/mio.py +16 -0
  394. scipy/io/matlab/mio4.py +17 -0
  395. scipy/io/matlab/mio5.py +19 -0
  396. scipy/io/matlab/mio5_params.py +18 -0
  397. scipy/io/matlab/mio5_utils.py +17 -0
  398. scipy/io/matlab/mio_utils.py +17 -0
  399. scipy/io/matlab/miobase.py +16 -0
  400. scipy/io/matlab/streams.py +16 -0
  401. scipy/io/matlab/tests/__init__.py +0 -0
  402. scipy/io/matlab/tests/data/bad_miuint32.mat +0 -0
  403. scipy/io/matlab/tests/data/bad_miutf8_array_name.mat +0 -0
  404. scipy/io/matlab/tests/data/big_endian.mat +0 -0
  405. scipy/io/matlab/tests/data/broken_utf8.mat +0 -0
  406. scipy/io/matlab/tests/data/corrupted_zlib_checksum.mat +0 -0
  407. scipy/io/matlab/tests/data/corrupted_zlib_data.mat +0 -0
  408. scipy/io/matlab/tests/data/debigged_m4.mat +0 -0
  409. scipy/io/matlab/tests/data/japanese_utf8.txt +5 -0
  410. scipy/io/matlab/tests/data/little_endian.mat +0 -0
  411. scipy/io/matlab/tests/data/logical_sparse.mat +0 -0
  412. scipy/io/matlab/tests/data/malformed1.mat +0 -0
  413. scipy/io/matlab/tests/data/miuint32_for_miint32.mat +0 -0
  414. scipy/io/matlab/tests/data/miutf8_array_name.mat +0 -0
  415. scipy/io/matlab/tests/data/nasty_duplicate_fieldnames.mat +0 -0
  416. scipy/io/matlab/tests/data/one_by_zero_char.mat +0 -0
  417. scipy/io/matlab/tests/data/parabola.mat +0 -0
  418. scipy/io/matlab/tests/data/single_empty_string.mat +0 -0
  419. scipy/io/matlab/tests/data/some_functions.mat +0 -0
  420. scipy/io/matlab/tests/data/sqr.mat +0 -0
  421. scipy/io/matlab/tests/data/test3dmatrix_6.1_SOL2.mat +0 -0
  422. scipy/io/matlab/tests/data/test3dmatrix_6.5.1_GLNX86.mat +0 -0
  423. scipy/io/matlab/tests/data/test3dmatrix_7.1_GLNX86.mat +0 -0
  424. scipy/io/matlab/tests/data/test3dmatrix_7.4_GLNX86.mat +0 -0
  425. scipy/io/matlab/tests/data/test_empty_struct.mat +0 -0
  426. scipy/io/matlab/tests/data/test_mat4_le_floats.mat +0 -0
  427. scipy/io/matlab/tests/data/test_skip_variable.mat +0 -0
  428. scipy/io/matlab/tests/data/testbool_8_WIN64.mat +0 -0
  429. scipy/io/matlab/tests/data/testcell_6.1_SOL2.mat +0 -0
  430. scipy/io/matlab/tests/data/testcell_6.5.1_GLNX86.mat +0 -0
  431. scipy/io/matlab/tests/data/testcell_7.1_GLNX86.mat +0 -0
  432. scipy/io/matlab/tests/data/testcell_7.4_GLNX86.mat +0 -0
  433. scipy/io/matlab/tests/data/testcellnest_6.1_SOL2.mat +0 -0
  434. scipy/io/matlab/tests/data/testcellnest_6.5.1_GLNX86.mat +0 -0
  435. scipy/io/matlab/tests/data/testcellnest_7.1_GLNX86.mat +0 -0
  436. scipy/io/matlab/tests/data/testcellnest_7.4_GLNX86.mat +0 -0
  437. scipy/io/matlab/tests/data/testcomplex_4.2c_SOL2.mat +0 -0
  438. scipy/io/matlab/tests/data/testcomplex_6.1_SOL2.mat +0 -0
  439. scipy/io/matlab/tests/data/testcomplex_6.5.1_GLNX86.mat +0 -0
  440. scipy/io/matlab/tests/data/testcomplex_7.1_GLNX86.mat +0 -0
  441. scipy/io/matlab/tests/data/testcomplex_7.4_GLNX86.mat +0 -0
  442. scipy/io/matlab/tests/data/testdouble_4.2c_SOL2.mat +0 -0
  443. scipy/io/matlab/tests/data/testdouble_6.1_SOL2.mat +0 -0
  444. scipy/io/matlab/tests/data/testdouble_6.5.1_GLNX86.mat +0 -0
  445. scipy/io/matlab/tests/data/testdouble_7.1_GLNX86.mat +0 -0
  446. scipy/io/matlab/tests/data/testdouble_7.4_GLNX86.mat +0 -0
  447. scipy/io/matlab/tests/data/testemptycell_5.3_SOL2.mat +0 -0
  448. scipy/io/matlab/tests/data/testemptycell_6.5.1_GLNX86.mat +0 -0
  449. scipy/io/matlab/tests/data/testemptycell_7.1_GLNX86.mat +0 -0
  450. scipy/io/matlab/tests/data/testemptycell_7.4_GLNX86.mat +0 -0
  451. scipy/io/matlab/tests/data/testfunc_7.4_GLNX86.mat +0 -0
  452. scipy/io/matlab/tests/data/testhdf5_7.4_GLNX86.mat +0 -0
  453. scipy/io/matlab/tests/data/testmatrix_4.2c_SOL2.mat +0 -0
  454. scipy/io/matlab/tests/data/testmatrix_6.1_SOL2.mat +0 -0
  455. scipy/io/matlab/tests/data/testmatrix_6.5.1_GLNX86.mat +0 -0
  456. scipy/io/matlab/tests/data/testmatrix_7.1_GLNX86.mat +0 -0
  457. scipy/io/matlab/tests/data/testmatrix_7.4_GLNX86.mat +0 -0
  458. scipy/io/matlab/tests/data/testminus_4.2c_SOL2.mat +0 -0
  459. scipy/io/matlab/tests/data/testminus_6.1_SOL2.mat +0 -0
  460. scipy/io/matlab/tests/data/testminus_6.5.1_GLNX86.mat +0 -0
  461. scipy/io/matlab/tests/data/testminus_7.1_GLNX86.mat +0 -0
  462. scipy/io/matlab/tests/data/testminus_7.4_GLNX86.mat +0 -0
  463. scipy/io/matlab/tests/data/testmulti_4.2c_SOL2.mat +0 -0
  464. scipy/io/matlab/tests/data/testmulti_7.1_GLNX86.mat +0 -0
  465. scipy/io/matlab/tests/data/testmulti_7.4_GLNX86.mat +0 -0
  466. scipy/io/matlab/tests/data/testobject_6.1_SOL2.mat +0 -0
  467. scipy/io/matlab/tests/data/testobject_6.5.1_GLNX86.mat +0 -0
  468. scipy/io/matlab/tests/data/testobject_7.1_GLNX86.mat +0 -0
  469. scipy/io/matlab/tests/data/testobject_7.4_GLNX86.mat +0 -0
  470. scipy/io/matlab/tests/data/testonechar_4.2c_SOL2.mat +0 -0
  471. scipy/io/matlab/tests/data/testonechar_6.1_SOL2.mat +0 -0
  472. scipy/io/matlab/tests/data/testonechar_6.5.1_GLNX86.mat +0 -0
  473. scipy/io/matlab/tests/data/testonechar_7.1_GLNX86.mat +0 -0
  474. scipy/io/matlab/tests/data/testonechar_7.4_GLNX86.mat +0 -0
  475. scipy/io/matlab/tests/data/testscalarcell_7.4_GLNX86.mat +0 -0
  476. scipy/io/matlab/tests/data/testsimplecell.mat +0 -0
  477. scipy/io/matlab/tests/data/testsparse_4.2c_SOL2.mat +0 -0
  478. scipy/io/matlab/tests/data/testsparse_6.1_SOL2.mat +0 -0
  479. scipy/io/matlab/tests/data/testsparse_6.5.1_GLNX86.mat +0 -0
  480. scipy/io/matlab/tests/data/testsparse_7.1_GLNX86.mat +0 -0
  481. scipy/io/matlab/tests/data/testsparse_7.4_GLNX86.mat +0 -0
  482. scipy/io/matlab/tests/data/testsparsecomplex_4.2c_SOL2.mat +0 -0
  483. scipy/io/matlab/tests/data/testsparsecomplex_6.1_SOL2.mat +0 -0
  484. scipy/io/matlab/tests/data/testsparsecomplex_6.5.1_GLNX86.mat +0 -0
  485. scipy/io/matlab/tests/data/testsparsecomplex_7.1_GLNX86.mat +0 -0
  486. scipy/io/matlab/tests/data/testsparsecomplex_7.4_GLNX86.mat +0 -0
  487. scipy/io/matlab/tests/data/testsparsefloat_7.4_GLNX86.mat +0 -0
  488. scipy/io/matlab/tests/data/teststring_4.2c_SOL2.mat +0 -0
  489. scipy/io/matlab/tests/data/teststring_6.1_SOL2.mat +0 -0
  490. scipy/io/matlab/tests/data/teststring_6.5.1_GLNX86.mat +0 -0
  491. scipy/io/matlab/tests/data/teststring_7.1_GLNX86.mat +0 -0
  492. scipy/io/matlab/tests/data/teststring_7.4_GLNX86.mat +0 -0
  493. scipy/io/matlab/tests/data/teststringarray_4.2c_SOL2.mat +0 -0
  494. scipy/io/matlab/tests/data/teststringarray_6.1_SOL2.mat +0 -0
  495. scipy/io/matlab/tests/data/teststringarray_6.5.1_GLNX86.mat +0 -0
  496. scipy/io/matlab/tests/data/teststringarray_7.1_GLNX86.mat +0 -0
  497. scipy/io/matlab/tests/data/teststringarray_7.4_GLNX86.mat +0 -0
  498. scipy/io/matlab/tests/data/teststruct_6.1_SOL2.mat +0 -0
  499. scipy/io/matlab/tests/data/teststruct_6.5.1_GLNX86.mat +0 -0
  500. scipy/io/matlab/tests/data/teststruct_7.1_GLNX86.mat +0 -0
  501. scipy/io/matlab/tests/data/teststruct_7.4_GLNX86.mat +0 -0
  502. scipy/io/matlab/tests/data/teststructarr_6.1_SOL2.mat +0 -0
  503. scipy/io/matlab/tests/data/teststructarr_6.5.1_GLNX86.mat +0 -0
  504. scipy/io/matlab/tests/data/teststructarr_7.1_GLNX86.mat +0 -0
  505. scipy/io/matlab/tests/data/teststructarr_7.4_GLNX86.mat +0 -0
  506. scipy/io/matlab/tests/data/teststructnest_6.1_SOL2.mat +0 -0
  507. scipy/io/matlab/tests/data/teststructnest_6.5.1_GLNX86.mat +0 -0
  508. scipy/io/matlab/tests/data/teststructnest_7.1_GLNX86.mat +0 -0
  509. scipy/io/matlab/tests/data/teststructnest_7.4_GLNX86.mat +0 -0
  510. scipy/io/matlab/tests/data/testunicode_7.1_GLNX86.mat +0 -0
  511. scipy/io/matlab/tests/data/testunicode_7.4_GLNX86.mat +0 -0
  512. scipy/io/matlab/tests/data/testvec_4_GLNX86.mat +0 -0
  513. scipy/io/matlab/tests/test_byteordercodes.py +29 -0
  514. scipy/io/matlab/tests/test_mio.py +1399 -0
  515. scipy/io/matlab/tests/test_mio5_utils.py +179 -0
  516. scipy/io/matlab/tests/test_mio_funcs.py +51 -0
  517. scipy/io/matlab/tests/test_mio_utils.py +45 -0
  518. scipy/io/matlab/tests/test_miobase.py +32 -0
  519. scipy/io/matlab/tests/test_pathological.py +33 -0
  520. scipy/io/matlab/tests/test_streams.py +241 -0
  521. scipy/io/mmio.py +17 -0
  522. scipy/io/netcdf.py +17 -0
  523. scipy/io/tests/__init__.py +0 -0
  524. scipy/io/tests/data/Transparent Busy.ani +0 -0
  525. scipy/io/tests/data/array_float32_1d.sav +0 -0
  526. scipy/io/tests/data/array_float32_2d.sav +0 -0
  527. scipy/io/tests/data/array_float32_3d.sav +0 -0
  528. scipy/io/tests/data/array_float32_4d.sav +0 -0
  529. scipy/io/tests/data/array_float32_5d.sav +0 -0
  530. scipy/io/tests/data/array_float32_6d.sav +0 -0
  531. scipy/io/tests/data/array_float32_7d.sav +0 -0
  532. scipy/io/tests/data/array_float32_8d.sav +0 -0
  533. scipy/io/tests/data/array_float32_pointer_1d.sav +0 -0
  534. scipy/io/tests/data/array_float32_pointer_2d.sav +0 -0
  535. scipy/io/tests/data/array_float32_pointer_3d.sav +0 -0
  536. scipy/io/tests/data/array_float32_pointer_4d.sav +0 -0
  537. scipy/io/tests/data/array_float32_pointer_5d.sav +0 -0
  538. scipy/io/tests/data/array_float32_pointer_6d.sav +0 -0
  539. scipy/io/tests/data/array_float32_pointer_7d.sav +0 -0
  540. scipy/io/tests/data/array_float32_pointer_8d.sav +0 -0
  541. scipy/io/tests/data/example_1.nc +0 -0
  542. scipy/io/tests/data/example_2.nc +0 -0
  543. scipy/io/tests/data/example_3_maskedvals.nc +0 -0
  544. scipy/io/tests/data/fortran-3x3d-2i.dat +0 -0
  545. scipy/io/tests/data/fortran-mixed.dat +0 -0
  546. scipy/io/tests/data/fortran-sf8-11x1x10.dat +0 -0
  547. scipy/io/tests/data/fortran-sf8-15x10x22.dat +0 -0
  548. scipy/io/tests/data/fortran-sf8-1x1x1.dat +0 -0
  549. scipy/io/tests/data/fortran-sf8-1x1x5.dat +0 -0
  550. scipy/io/tests/data/fortran-sf8-1x1x7.dat +0 -0
  551. scipy/io/tests/data/fortran-sf8-1x3x5.dat +0 -0
  552. scipy/io/tests/data/fortran-si4-11x1x10.dat +0 -0
  553. scipy/io/tests/data/fortran-si4-15x10x22.dat +0 -0
  554. scipy/io/tests/data/fortran-si4-1x1x1.dat +0 -0
  555. scipy/io/tests/data/fortran-si4-1x1x5.dat +0 -0
  556. scipy/io/tests/data/fortran-si4-1x1x7.dat +0 -0
  557. scipy/io/tests/data/fortran-si4-1x3x5.dat +0 -0
  558. scipy/io/tests/data/invalid_pointer.sav +0 -0
  559. scipy/io/tests/data/null_pointer.sav +0 -0
  560. scipy/io/tests/data/scalar_byte.sav +0 -0
  561. scipy/io/tests/data/scalar_byte_descr.sav +0 -0
  562. scipy/io/tests/data/scalar_complex32.sav +0 -0
  563. scipy/io/tests/data/scalar_complex64.sav +0 -0
  564. scipy/io/tests/data/scalar_float32.sav +0 -0
  565. scipy/io/tests/data/scalar_float64.sav +0 -0
  566. scipy/io/tests/data/scalar_heap_pointer.sav +0 -0
  567. scipy/io/tests/data/scalar_int16.sav +0 -0
  568. scipy/io/tests/data/scalar_int32.sav +0 -0
  569. scipy/io/tests/data/scalar_int64.sav +0 -0
  570. scipy/io/tests/data/scalar_string.sav +0 -0
  571. scipy/io/tests/data/scalar_uint16.sav +0 -0
  572. scipy/io/tests/data/scalar_uint32.sav +0 -0
  573. scipy/io/tests/data/scalar_uint64.sav +0 -0
  574. scipy/io/tests/data/struct_arrays.sav +0 -0
  575. scipy/io/tests/data/struct_arrays_byte_idl80.sav +0 -0
  576. scipy/io/tests/data/struct_arrays_replicated.sav +0 -0
  577. scipy/io/tests/data/struct_arrays_replicated_3d.sav +0 -0
  578. scipy/io/tests/data/struct_inherit.sav +0 -0
  579. scipy/io/tests/data/struct_pointer_arrays.sav +0 -0
  580. scipy/io/tests/data/struct_pointer_arrays_replicated.sav +0 -0
  581. scipy/io/tests/data/struct_pointer_arrays_replicated_3d.sav +0 -0
  582. scipy/io/tests/data/struct_pointers.sav +0 -0
  583. scipy/io/tests/data/struct_pointers_replicated.sav +0 -0
  584. scipy/io/tests/data/struct_pointers_replicated_3d.sav +0 -0
  585. scipy/io/tests/data/struct_scalars.sav +0 -0
  586. scipy/io/tests/data/struct_scalars_replicated.sav +0 -0
  587. scipy/io/tests/data/struct_scalars_replicated_3d.sav +0 -0
  588. scipy/io/tests/data/test-1234Hz-le-1ch-10S-20bit-extra.wav +0 -0
  589. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-be.wav +0 -0
  590. scipy/io/tests/data/test-44100Hz-2ch-32bit-float-le.wav +0 -0
  591. scipy/io/tests/data/test-44100Hz-be-1ch-4bytes.wav +0 -0
  592. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof-no-data.wav +0 -0
  593. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-early-eof.wav +0 -0
  594. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-incomplete-chunk.wav +0 -0
  595. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes-rf64.wav +0 -0
  596. scipy/io/tests/data/test-44100Hz-le-1ch-4bytes.wav +0 -0
  597. scipy/io/tests/data/test-48000Hz-2ch-64bit-float-le-wavex.wav +0 -0
  598. scipy/io/tests/data/test-8000Hz-be-3ch-5S-24bit.wav +0 -0
  599. scipy/io/tests/data/test-8000Hz-le-1ch-1byte-ulaw.wav +0 -0
  600. scipy/io/tests/data/test-8000Hz-le-2ch-1byteu.wav +0 -0
  601. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-inconsistent.wav +0 -0
  602. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit-rf64.wav +0 -0
  603. scipy/io/tests/data/test-8000Hz-le-3ch-5S-24bit.wav +0 -0
  604. scipy/io/tests/data/test-8000Hz-le-3ch-5S-36bit.wav +0 -0
  605. scipy/io/tests/data/test-8000Hz-le-3ch-5S-45bit.wav +0 -0
  606. scipy/io/tests/data/test-8000Hz-le-3ch-5S-53bit.wav +0 -0
  607. scipy/io/tests/data/test-8000Hz-le-3ch-5S-64bit.wav +0 -0
  608. scipy/io/tests/data/test-8000Hz-le-4ch-9S-12bit.wav +0 -0
  609. scipy/io/tests/data/test-8000Hz-le-5ch-9S-5bit.wav +0 -0
  610. scipy/io/tests/data/various_compressed.sav +0 -0
  611. scipy/io/tests/test_fortran.py +264 -0
  612. scipy/io/tests/test_idl.py +483 -0
  613. scipy/io/tests/test_mmio.py +831 -0
  614. scipy/io/tests/test_netcdf.py +550 -0
  615. scipy/io/tests/test_paths.py +93 -0
  616. scipy/io/tests/test_wavfile.py +501 -0
  617. scipy/io/wavfile.py +938 -0
  618. scipy/linalg/__init__.pxd +1 -0
  619. scipy/linalg/__init__.py +236 -0
  620. scipy/linalg/_basic.py +2146 -0
  621. scipy/linalg/_blas_subroutines.h +164 -0
  622. scipy/linalg/_cythonized_array_utils.cp314t-win_arm64.lib +0 -0
  623. scipy/linalg/_cythonized_array_utils.cp314t-win_arm64.pyd +0 -0
  624. scipy/linalg/_cythonized_array_utils.pxd +40 -0
  625. scipy/linalg/_cythonized_array_utils.pyi +16 -0
  626. scipy/linalg/_decomp.py +1645 -0
  627. scipy/linalg/_decomp_cholesky.py +413 -0
  628. scipy/linalg/_decomp_cossin.py +236 -0
  629. scipy/linalg/_decomp_interpolative.cp314t-win_arm64.lib +0 -0
  630. scipy/linalg/_decomp_interpolative.cp314t-win_arm64.pyd +0 -0
  631. scipy/linalg/_decomp_ldl.py +356 -0
  632. scipy/linalg/_decomp_lu.py +401 -0
  633. scipy/linalg/_decomp_lu_cython.cp314t-win_arm64.lib +0 -0
  634. scipy/linalg/_decomp_lu_cython.cp314t-win_arm64.pyd +0 -0
  635. scipy/linalg/_decomp_lu_cython.pyi +6 -0
  636. scipy/linalg/_decomp_polar.py +113 -0
  637. scipy/linalg/_decomp_qr.py +494 -0
  638. scipy/linalg/_decomp_qz.py +452 -0
  639. scipy/linalg/_decomp_schur.py +336 -0
  640. scipy/linalg/_decomp_svd.py +545 -0
  641. scipy/linalg/_decomp_update.cp314t-win_arm64.lib +0 -0
  642. scipy/linalg/_decomp_update.cp314t-win_arm64.pyd +0 -0
  643. scipy/linalg/_expm_frechet.py +417 -0
  644. scipy/linalg/_fblas.cp314t-win_arm64.lib +0 -0
  645. scipy/linalg/_fblas.cp314t-win_arm64.pyd +0 -0
  646. scipy/linalg/_flapack.cp314t-win_arm64.lib +0 -0
  647. scipy/linalg/_flapack.cp314t-win_arm64.pyd +0 -0
  648. scipy/linalg/_lapack_subroutines.h +1521 -0
  649. scipy/linalg/_linalg_pythran.cp314t-win_arm64.lib +0 -0
  650. scipy/linalg/_linalg_pythran.cp314t-win_arm64.pyd +0 -0
  651. scipy/linalg/_matfuncs.py +1050 -0
  652. scipy/linalg/_matfuncs_expm.cp314t-win_arm64.lib +0 -0
  653. scipy/linalg/_matfuncs_expm.cp314t-win_arm64.pyd +0 -0
  654. scipy/linalg/_matfuncs_expm.pyi +6 -0
  655. scipy/linalg/_matfuncs_inv_ssq.py +886 -0
  656. scipy/linalg/_matfuncs_schur_sqrtm.cp314t-win_arm64.lib +0 -0
  657. scipy/linalg/_matfuncs_schur_sqrtm.cp314t-win_arm64.pyd +0 -0
  658. scipy/linalg/_matfuncs_sqrtm.py +107 -0
  659. scipy/linalg/_matfuncs_sqrtm_triu.cp314t-win_arm64.lib +0 -0
  660. scipy/linalg/_matfuncs_sqrtm_triu.cp314t-win_arm64.pyd +0 -0
  661. scipy/linalg/_misc.py +191 -0
  662. scipy/linalg/_procrustes.py +113 -0
  663. scipy/linalg/_sketches.py +189 -0
  664. scipy/linalg/_solve_toeplitz.cp314t-win_arm64.lib +0 -0
  665. scipy/linalg/_solve_toeplitz.cp314t-win_arm64.pyd +0 -0
  666. scipy/linalg/_solvers.py +862 -0
  667. scipy/linalg/_special_matrices.py +1322 -0
  668. scipy/linalg/_testutils.py +65 -0
  669. scipy/linalg/basic.py +23 -0
  670. scipy/linalg/blas.py +495 -0
  671. scipy/linalg/cython_blas.cp314t-win_arm64.lib +0 -0
  672. scipy/linalg/cython_blas.cp314t-win_arm64.pyd +0 -0
  673. scipy/linalg/cython_blas.pxd +169 -0
  674. scipy/linalg/cython_blas.pyx +1432 -0
  675. scipy/linalg/cython_lapack.cp314t-win_arm64.lib +0 -0
  676. scipy/linalg/cython_lapack.cp314t-win_arm64.pyd +0 -0
  677. scipy/linalg/cython_lapack.pxd +1528 -0
  678. scipy/linalg/cython_lapack.pyx +12045 -0
  679. scipy/linalg/decomp.py +23 -0
  680. scipy/linalg/decomp_cholesky.py +21 -0
  681. scipy/linalg/decomp_lu.py +21 -0
  682. scipy/linalg/decomp_qr.py +20 -0
  683. scipy/linalg/decomp_schur.py +21 -0
  684. scipy/linalg/decomp_svd.py +21 -0
  685. scipy/linalg/interpolative.py +989 -0
  686. scipy/linalg/lapack.py +1081 -0
  687. scipy/linalg/matfuncs.py +23 -0
  688. scipy/linalg/misc.py +21 -0
  689. scipy/linalg/special_matrices.py +22 -0
  690. scipy/linalg/tests/__init__.py +0 -0
  691. scipy/linalg/tests/_cython_examples/extending.pyx +23 -0
  692. scipy/linalg/tests/_cython_examples/meson.build +34 -0
  693. scipy/linalg/tests/data/carex_15_data.npz +0 -0
  694. scipy/linalg/tests/data/carex_18_data.npz +0 -0
  695. scipy/linalg/tests/data/carex_19_data.npz +0 -0
  696. scipy/linalg/tests/data/carex_20_data.npz +0 -0
  697. scipy/linalg/tests/data/carex_6_data.npz +0 -0
  698. scipy/linalg/tests/data/gendare_20170120_data.npz +0 -0
  699. scipy/linalg/tests/test_basic.py +2074 -0
  700. scipy/linalg/tests/test_batch.py +588 -0
  701. scipy/linalg/tests/test_blas.py +1127 -0
  702. scipy/linalg/tests/test_cython_blas.py +118 -0
  703. scipy/linalg/tests/test_cython_lapack.py +22 -0
  704. scipy/linalg/tests/test_cythonized_array_utils.py +130 -0
  705. scipy/linalg/tests/test_decomp.py +3189 -0
  706. scipy/linalg/tests/test_decomp_cholesky.py +268 -0
  707. scipy/linalg/tests/test_decomp_cossin.py +314 -0
  708. scipy/linalg/tests/test_decomp_ldl.py +137 -0
  709. scipy/linalg/tests/test_decomp_lu.py +308 -0
  710. scipy/linalg/tests/test_decomp_polar.py +110 -0
  711. scipy/linalg/tests/test_decomp_update.py +1701 -0
  712. scipy/linalg/tests/test_extending.py +46 -0
  713. scipy/linalg/tests/test_fblas.py +607 -0
  714. scipy/linalg/tests/test_interpolative.py +232 -0
  715. scipy/linalg/tests/test_lapack.py +3620 -0
  716. scipy/linalg/tests/test_matfuncs.py +1125 -0
  717. scipy/linalg/tests/test_matmul_toeplitz.py +136 -0
  718. scipy/linalg/tests/test_procrustes.py +214 -0
  719. scipy/linalg/tests/test_sketches.py +118 -0
  720. scipy/linalg/tests/test_solve_toeplitz.py +150 -0
  721. scipy/linalg/tests/test_solvers.py +844 -0
  722. scipy/linalg/tests/test_special_matrices.py +636 -0
  723. scipy/misc/__init__.py +6 -0
  724. scipy/misc/common.py +6 -0
  725. scipy/misc/doccer.py +6 -0
  726. scipy/ndimage/__init__.py +174 -0
  727. scipy/ndimage/_ctest.cp314t-win_arm64.lib +0 -0
  728. scipy/ndimage/_ctest.cp314t-win_arm64.pyd +0 -0
  729. scipy/ndimage/_cytest.cp314t-win_arm64.lib +0 -0
  730. scipy/ndimage/_cytest.cp314t-win_arm64.pyd +0 -0
  731. scipy/ndimage/_delegators.py +303 -0
  732. scipy/ndimage/_filters.py +2422 -0
  733. scipy/ndimage/_fourier.py +306 -0
  734. scipy/ndimage/_interpolation.py +1033 -0
  735. scipy/ndimage/_measurements.py +1689 -0
  736. scipy/ndimage/_morphology.py +2634 -0
  737. scipy/ndimage/_nd_image.cp314t-win_arm64.lib +0 -0
  738. scipy/ndimage/_nd_image.cp314t-win_arm64.pyd +0 -0
  739. scipy/ndimage/_ndimage_api.py +16 -0
  740. scipy/ndimage/_ni_docstrings.py +214 -0
  741. scipy/ndimage/_ni_label.cp314t-win_arm64.lib +0 -0
  742. scipy/ndimage/_ni_label.cp314t-win_arm64.pyd +0 -0
  743. scipy/ndimage/_ni_support.py +139 -0
  744. scipy/ndimage/_rank_filter_1d.cp314t-win_arm64.lib +0 -0
  745. scipy/ndimage/_rank_filter_1d.cp314t-win_arm64.pyd +0 -0
  746. scipy/ndimage/_support_alternative_backends.py +84 -0
  747. scipy/ndimage/filters.py +27 -0
  748. scipy/ndimage/fourier.py +21 -0
  749. scipy/ndimage/interpolation.py +22 -0
  750. scipy/ndimage/measurements.py +24 -0
  751. scipy/ndimage/morphology.py +27 -0
  752. scipy/ndimage/tests/__init__.py +12 -0
  753. scipy/ndimage/tests/data/label_inputs.txt +21 -0
  754. scipy/ndimage/tests/data/label_results.txt +294 -0
  755. scipy/ndimage/tests/data/label_strels.txt +42 -0
  756. scipy/ndimage/tests/dots.png +0 -0
  757. scipy/ndimage/tests/test_c_api.py +102 -0
  758. scipy/ndimage/tests/test_datatypes.py +67 -0
  759. scipy/ndimage/tests/test_filters.py +3083 -0
  760. scipy/ndimage/tests/test_fourier.py +187 -0
  761. scipy/ndimage/tests/test_interpolation.py +1491 -0
  762. scipy/ndimage/tests/test_measurements.py +1592 -0
  763. scipy/ndimage/tests/test_morphology.py +2950 -0
  764. scipy/ndimage/tests/test_ni_support.py +78 -0
  765. scipy/ndimage/tests/test_splines.py +70 -0
  766. scipy/odr/__init__.py +131 -0
  767. scipy/odr/__odrpack.cp314t-win_arm64.lib +0 -0
  768. scipy/odr/__odrpack.cp314t-win_arm64.pyd +0 -0
  769. scipy/odr/_add_newdocs.py +34 -0
  770. scipy/odr/_models.py +315 -0
  771. scipy/odr/_odrpack.py +1154 -0
  772. scipy/odr/models.py +20 -0
  773. scipy/odr/odrpack.py +21 -0
  774. scipy/odr/tests/__init__.py +0 -0
  775. scipy/odr/tests/test_odr.py +607 -0
  776. scipy/optimize/__init__.pxd +1 -0
  777. scipy/optimize/__init__.py +460 -0
  778. scipy/optimize/_basinhopping.py +741 -0
  779. scipy/optimize/_bglu_dense.cp314t-win_arm64.lib +0 -0
  780. scipy/optimize/_bglu_dense.cp314t-win_arm64.pyd +0 -0
  781. scipy/optimize/_bracket.py +706 -0
  782. scipy/optimize/_chandrupatla.py +551 -0
  783. scipy/optimize/_cobyla_py.py +297 -0
  784. scipy/optimize/_cobyqa_py.py +72 -0
  785. scipy/optimize/_constraints.py +598 -0
  786. scipy/optimize/_dcsrch.py +728 -0
  787. scipy/optimize/_differentiable_functions.py +835 -0
  788. scipy/optimize/_differentialevolution.py +1970 -0
  789. scipy/optimize/_direct.cp314t-win_arm64.lib +0 -0
  790. scipy/optimize/_direct.cp314t-win_arm64.pyd +0 -0
  791. scipy/optimize/_direct_py.py +280 -0
  792. scipy/optimize/_dual_annealing.py +732 -0
  793. scipy/optimize/_elementwise.py +798 -0
  794. scipy/optimize/_group_columns.cp314t-win_arm64.lib +0 -0
  795. scipy/optimize/_group_columns.cp314t-win_arm64.pyd +0 -0
  796. scipy/optimize/_hessian_update_strategy.py +479 -0
  797. scipy/optimize/_highspy/__init__.py +0 -0
  798. scipy/optimize/_highspy/_core.cp314t-win_arm64.lib +0 -0
  799. scipy/optimize/_highspy/_core.cp314t-win_arm64.pyd +0 -0
  800. scipy/optimize/_highspy/_highs_options.cp314t-win_arm64.lib +0 -0
  801. scipy/optimize/_highspy/_highs_options.cp314t-win_arm64.pyd +0 -0
  802. scipy/optimize/_highspy/_highs_wrapper.py +338 -0
  803. scipy/optimize/_isotonic.py +157 -0
  804. scipy/optimize/_lbfgsb.cp314t-win_arm64.lib +0 -0
  805. scipy/optimize/_lbfgsb.cp314t-win_arm64.pyd +0 -0
  806. scipy/optimize/_lbfgsb_py.py +634 -0
  807. scipy/optimize/_linesearch.py +896 -0
  808. scipy/optimize/_linprog.py +733 -0
  809. scipy/optimize/_linprog_doc.py +1434 -0
  810. scipy/optimize/_linprog_highs.py +422 -0
  811. scipy/optimize/_linprog_ip.py +1141 -0
  812. scipy/optimize/_linprog_rs.py +572 -0
  813. scipy/optimize/_linprog_simplex.py +663 -0
  814. scipy/optimize/_linprog_util.py +1521 -0
  815. scipy/optimize/_lsap.cp314t-win_arm64.lib +0 -0
  816. scipy/optimize/_lsap.cp314t-win_arm64.pyd +0 -0
  817. scipy/optimize/_lsq/__init__.py +5 -0
  818. scipy/optimize/_lsq/bvls.py +183 -0
  819. scipy/optimize/_lsq/common.py +731 -0
  820. scipy/optimize/_lsq/dogbox.py +345 -0
  821. scipy/optimize/_lsq/givens_elimination.cp314t-win_arm64.lib +0 -0
  822. scipy/optimize/_lsq/givens_elimination.cp314t-win_arm64.pyd +0 -0
  823. scipy/optimize/_lsq/least_squares.py +1044 -0
  824. scipy/optimize/_lsq/lsq_linear.py +361 -0
  825. scipy/optimize/_lsq/trf.py +587 -0
  826. scipy/optimize/_lsq/trf_linear.py +249 -0
  827. scipy/optimize/_milp.py +394 -0
  828. scipy/optimize/_minimize.py +1199 -0
  829. scipy/optimize/_minpack.cp314t-win_arm64.lib +0 -0
  830. scipy/optimize/_minpack.cp314t-win_arm64.pyd +0 -0
  831. scipy/optimize/_minpack_py.py +1178 -0
  832. scipy/optimize/_moduleTNC.cp314t-win_arm64.lib +0 -0
  833. scipy/optimize/_moduleTNC.cp314t-win_arm64.pyd +0 -0
  834. scipy/optimize/_nnls.py +96 -0
  835. scipy/optimize/_nonlin.py +1634 -0
  836. scipy/optimize/_numdiff.py +963 -0
  837. scipy/optimize/_optimize.py +4169 -0
  838. scipy/optimize/_pava_pybind.cp314t-win_arm64.lib +0 -0
  839. scipy/optimize/_pava_pybind.cp314t-win_arm64.pyd +0 -0
  840. scipy/optimize/_qap.py +760 -0
  841. scipy/optimize/_remove_redundancy.py +522 -0
  842. scipy/optimize/_root.py +732 -0
  843. scipy/optimize/_root_scalar.py +538 -0
  844. scipy/optimize/_shgo.py +1606 -0
  845. scipy/optimize/_shgo_lib/__init__.py +0 -0
  846. scipy/optimize/_shgo_lib/_complex.py +1225 -0
  847. scipy/optimize/_shgo_lib/_vertex.py +460 -0
  848. scipy/optimize/_slsqp_py.py +603 -0
  849. scipy/optimize/_slsqplib.cp314t-win_arm64.lib +0 -0
  850. scipy/optimize/_slsqplib.cp314t-win_arm64.pyd +0 -0
  851. scipy/optimize/_spectral.py +260 -0
  852. scipy/optimize/_tnc.py +438 -0
  853. scipy/optimize/_trlib/__init__.py +12 -0
  854. scipy/optimize/_trlib/_trlib.cp314t-win_arm64.lib +0 -0
  855. scipy/optimize/_trlib/_trlib.cp314t-win_arm64.pyd +0 -0
  856. scipy/optimize/_trustregion.py +318 -0
  857. scipy/optimize/_trustregion_constr/__init__.py +6 -0
  858. scipy/optimize/_trustregion_constr/canonical_constraint.py +390 -0
  859. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +231 -0
  860. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +584 -0
  861. scipy/optimize/_trustregion_constr/projections.py +411 -0
  862. scipy/optimize/_trustregion_constr/qp_subproblem.py +637 -0
  863. scipy/optimize/_trustregion_constr/report.py +49 -0
  864. scipy/optimize/_trustregion_constr/tests/__init__.py +0 -0
  865. scipy/optimize/_trustregion_constr/tests/test_canonical_constraint.py +296 -0
  866. scipy/optimize/_trustregion_constr/tests/test_nested_minimize.py +39 -0
  867. scipy/optimize/_trustregion_constr/tests/test_projections.py +214 -0
  868. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +645 -0
  869. scipy/optimize/_trustregion_constr/tests/test_report.py +34 -0
  870. scipy/optimize/_trustregion_constr/tr_interior_point.py +361 -0
  871. scipy/optimize/_trustregion_dogleg.py +122 -0
  872. scipy/optimize/_trustregion_exact.py +437 -0
  873. scipy/optimize/_trustregion_krylov.py +65 -0
  874. scipy/optimize/_trustregion_ncg.py +126 -0
  875. scipy/optimize/_tstutils.py +972 -0
  876. scipy/optimize/_zeros.cp314t-win_arm64.lib +0 -0
  877. scipy/optimize/_zeros.cp314t-win_arm64.pyd +0 -0
  878. scipy/optimize/_zeros_py.py +1475 -0
  879. scipy/optimize/cobyla.py +19 -0
  880. scipy/optimize/cython_optimize/__init__.py +133 -0
  881. scipy/optimize/cython_optimize/_zeros.cp314t-win_arm64.lib +0 -0
  882. scipy/optimize/cython_optimize/_zeros.cp314t-win_arm64.pyd +0 -0
  883. scipy/optimize/cython_optimize/_zeros.pxd +33 -0
  884. scipy/optimize/cython_optimize/c_zeros.pxd +26 -0
  885. scipy/optimize/cython_optimize.pxd +11 -0
  886. scipy/optimize/elementwise.py +38 -0
  887. scipy/optimize/lbfgsb.py +23 -0
  888. scipy/optimize/linesearch.py +18 -0
  889. scipy/optimize/minpack.py +27 -0
  890. scipy/optimize/minpack2.py +17 -0
  891. scipy/optimize/moduleTNC.py +19 -0
  892. scipy/optimize/nonlin.py +29 -0
  893. scipy/optimize/optimize.py +40 -0
  894. scipy/optimize/slsqp.py +22 -0
  895. scipy/optimize/tests/__init__.py +0 -0
  896. scipy/optimize/tests/_cython_examples/extending.pyx +43 -0
  897. scipy/optimize/tests/_cython_examples/meson.build +32 -0
  898. scipy/optimize/tests/test__basinhopping.py +535 -0
  899. scipy/optimize/tests/test__differential_evolution.py +1703 -0
  900. scipy/optimize/tests/test__dual_annealing.py +416 -0
  901. scipy/optimize/tests/test__linprog_clean_inputs.py +312 -0
  902. scipy/optimize/tests/test__numdiff.py +885 -0
  903. scipy/optimize/tests/test__remove_redundancy.py +228 -0
  904. scipy/optimize/tests/test__root.py +124 -0
  905. scipy/optimize/tests/test__shgo.py +1164 -0
  906. scipy/optimize/tests/test__spectral.py +226 -0
  907. scipy/optimize/tests/test_bracket.py +896 -0
  908. scipy/optimize/tests/test_chandrupatla.py +982 -0
  909. scipy/optimize/tests/test_cobyla.py +195 -0
  910. scipy/optimize/tests/test_cobyqa.py +252 -0
  911. scipy/optimize/tests/test_constraint_conversion.py +286 -0
  912. scipy/optimize/tests/test_constraints.py +255 -0
  913. scipy/optimize/tests/test_cython_optimize.py +92 -0
  914. scipy/optimize/tests/test_differentiable_functions.py +1025 -0
  915. scipy/optimize/tests/test_direct.py +321 -0
  916. scipy/optimize/tests/test_extending.py +28 -0
  917. scipy/optimize/tests/test_hessian_update_strategy.py +300 -0
  918. scipy/optimize/tests/test_isotonic_regression.py +167 -0
  919. scipy/optimize/tests/test_lbfgsb_hessinv.py +65 -0
  920. scipy/optimize/tests/test_lbfgsb_setulb.py +122 -0
  921. scipy/optimize/tests/test_least_squares.py +986 -0
  922. scipy/optimize/tests/test_linear_assignment.py +116 -0
  923. scipy/optimize/tests/test_linesearch.py +328 -0
  924. scipy/optimize/tests/test_linprog.py +2577 -0
  925. scipy/optimize/tests/test_lsq_common.py +297 -0
  926. scipy/optimize/tests/test_lsq_linear.py +287 -0
  927. scipy/optimize/tests/test_milp.py +459 -0
  928. scipy/optimize/tests/test_minimize_constrained.py +845 -0
  929. scipy/optimize/tests/test_minpack.py +1194 -0
  930. scipy/optimize/tests/test_nnls.py +469 -0
  931. scipy/optimize/tests/test_nonlin.py +572 -0
  932. scipy/optimize/tests/test_optimize.py +3344 -0
  933. scipy/optimize/tests/test_quadratic_assignment.py +455 -0
  934. scipy/optimize/tests/test_regression.py +40 -0
  935. scipy/optimize/tests/test_slsqp.py +645 -0
  936. scipy/optimize/tests/test_tnc.py +345 -0
  937. scipy/optimize/tests/test_trustregion.py +110 -0
  938. scipy/optimize/tests/test_trustregion_exact.py +351 -0
  939. scipy/optimize/tests/test_trustregion_krylov.py +170 -0
  940. scipy/optimize/tests/test_zeros.py +998 -0
  941. scipy/optimize/tnc.py +22 -0
  942. scipy/optimize/zeros.py +26 -0
  943. scipy/signal/__init__.py +316 -0
  944. scipy/signal/_arraytools.py +264 -0
  945. scipy/signal/_czt.py +575 -0
  946. scipy/signal/_delegators.py +568 -0
  947. scipy/signal/_filter_design.py +5893 -0
  948. scipy/signal/_fir_filter_design.py +1458 -0
  949. scipy/signal/_lti_conversion.py +534 -0
  950. scipy/signal/_ltisys.py +3546 -0
  951. scipy/signal/_max_len_seq.py +139 -0
  952. scipy/signal/_max_len_seq_inner.cp314t-win_arm64.lib +0 -0
  953. scipy/signal/_max_len_seq_inner.cp314t-win_arm64.pyd +0 -0
  954. scipy/signal/_peak_finding.py +1310 -0
  955. scipy/signal/_peak_finding_utils.cp314t-win_arm64.lib +0 -0
  956. scipy/signal/_peak_finding_utils.cp314t-win_arm64.pyd +0 -0
  957. scipy/signal/_polyutils.py +172 -0
  958. scipy/signal/_savitzky_golay.py +357 -0
  959. scipy/signal/_short_time_fft.py +2228 -0
  960. scipy/signal/_signal_api.py +30 -0
  961. scipy/signal/_signaltools.py +5309 -0
  962. scipy/signal/_sigtools.cp314t-win_arm64.lib +0 -0
  963. scipy/signal/_sigtools.cp314t-win_arm64.pyd +0 -0
  964. scipy/signal/_sosfilt.cp314t-win_arm64.lib +0 -0
  965. scipy/signal/_sosfilt.cp314t-win_arm64.pyd +0 -0
  966. scipy/signal/_spectral_py.py +2471 -0
  967. scipy/signal/_spline.cp314t-win_arm64.lib +0 -0
  968. scipy/signal/_spline.cp314t-win_arm64.pyd +0 -0
  969. scipy/signal/_spline.pyi +34 -0
  970. scipy/signal/_spline_filters.py +848 -0
  971. scipy/signal/_support_alternative_backends.py +73 -0
  972. scipy/signal/_upfirdn.py +219 -0
  973. scipy/signal/_upfirdn_apply.cp314t-win_arm64.lib +0 -0
  974. scipy/signal/_upfirdn_apply.cp314t-win_arm64.pyd +0 -0
  975. scipy/signal/_waveforms.py +687 -0
  976. scipy/signal/_wavelets.py +29 -0
  977. scipy/signal/bsplines.py +21 -0
  978. scipy/signal/filter_design.py +28 -0
  979. scipy/signal/fir_filter_design.py +21 -0
  980. scipy/signal/lti_conversion.py +20 -0
  981. scipy/signal/ltisys.py +25 -0
  982. scipy/signal/signaltools.py +27 -0
  983. scipy/signal/spectral.py +21 -0
  984. scipy/signal/spline.py +18 -0
  985. scipy/signal/tests/__init__.py +0 -0
  986. scipy/signal/tests/_scipy_spectral_test_shim.py +311 -0
  987. scipy/signal/tests/mpsig.py +122 -0
  988. scipy/signal/tests/test_array_tools.py +111 -0
  989. scipy/signal/tests/test_bsplines.py +365 -0
  990. scipy/signal/tests/test_cont2discrete.py +424 -0
  991. scipy/signal/tests/test_czt.py +221 -0
  992. scipy/signal/tests/test_dltisys.py +599 -0
  993. scipy/signal/tests/test_filter_design.py +4744 -0
  994. scipy/signal/tests/test_fir_filter_design.py +851 -0
  995. scipy/signal/tests/test_ltisys.py +1225 -0
  996. scipy/signal/tests/test_max_len_seq.py +71 -0
  997. scipy/signal/tests/test_peak_finding.py +915 -0
  998. scipy/signal/tests/test_result_type.py +51 -0
  999. scipy/signal/tests/test_savitzky_golay.py +363 -0
  1000. scipy/signal/tests/test_short_time_fft.py +1107 -0
  1001. scipy/signal/tests/test_signaltools.py +4735 -0
  1002. scipy/signal/tests/test_spectral.py +2141 -0
  1003. scipy/signal/tests/test_splines.py +427 -0
  1004. scipy/signal/tests/test_upfirdn.py +322 -0
  1005. scipy/signal/tests/test_waveforms.py +400 -0
  1006. scipy/signal/tests/test_wavelets.py +59 -0
  1007. scipy/signal/tests/test_windows.py +987 -0
  1008. scipy/signal/waveforms.py +20 -0
  1009. scipy/signal/wavelets.py +17 -0
  1010. scipy/signal/windows/__init__.py +52 -0
  1011. scipy/signal/windows/_windows.py +2513 -0
  1012. scipy/signal/windows/windows.py +23 -0
  1013. scipy/sparse/__init__.py +350 -0
  1014. scipy/sparse/_base.py +1613 -0
  1015. scipy/sparse/_bsr.py +880 -0
  1016. scipy/sparse/_compressed.py +1328 -0
  1017. scipy/sparse/_construct.py +1454 -0
  1018. scipy/sparse/_coo.py +1581 -0
  1019. scipy/sparse/_csc.py +367 -0
  1020. scipy/sparse/_csparsetools.cp314t-win_arm64.lib +0 -0
  1021. scipy/sparse/_csparsetools.cp314t-win_arm64.pyd +0 -0
  1022. scipy/sparse/_csr.py +558 -0
  1023. scipy/sparse/_data.py +569 -0
  1024. scipy/sparse/_dia.py +677 -0
  1025. scipy/sparse/_dok.py +669 -0
  1026. scipy/sparse/_extract.py +178 -0
  1027. scipy/sparse/_index.py +444 -0
  1028. scipy/sparse/_lil.py +632 -0
  1029. scipy/sparse/_matrix.py +169 -0
  1030. scipy/sparse/_matrix_io.py +167 -0
  1031. scipy/sparse/_sparsetools.cp314t-win_arm64.lib +0 -0
  1032. scipy/sparse/_sparsetools.cp314t-win_arm64.pyd +0 -0
  1033. scipy/sparse/_spfuncs.py +76 -0
  1034. scipy/sparse/_sputils.py +632 -0
  1035. scipy/sparse/base.py +24 -0
  1036. scipy/sparse/bsr.py +22 -0
  1037. scipy/sparse/compressed.py +20 -0
  1038. scipy/sparse/construct.py +38 -0
  1039. scipy/sparse/coo.py +23 -0
  1040. scipy/sparse/csc.py +22 -0
  1041. scipy/sparse/csgraph/__init__.py +210 -0
  1042. scipy/sparse/csgraph/_flow.cp314t-win_arm64.lib +0 -0
  1043. scipy/sparse/csgraph/_flow.cp314t-win_arm64.pyd +0 -0
  1044. scipy/sparse/csgraph/_laplacian.py +563 -0
  1045. scipy/sparse/csgraph/_matching.cp314t-win_arm64.lib +0 -0
  1046. scipy/sparse/csgraph/_matching.cp314t-win_arm64.pyd +0 -0
  1047. scipy/sparse/csgraph/_min_spanning_tree.cp314t-win_arm64.lib +0 -0
  1048. scipy/sparse/csgraph/_min_spanning_tree.cp314t-win_arm64.pyd +0 -0
  1049. scipy/sparse/csgraph/_reordering.cp314t-win_arm64.lib +0 -0
  1050. scipy/sparse/csgraph/_reordering.cp314t-win_arm64.pyd +0 -0
  1051. scipy/sparse/csgraph/_shortest_path.cp314t-win_arm64.lib +0 -0
  1052. scipy/sparse/csgraph/_shortest_path.cp314t-win_arm64.pyd +0 -0
  1053. scipy/sparse/csgraph/_tools.cp314t-win_arm64.lib +0 -0
  1054. scipy/sparse/csgraph/_tools.cp314t-win_arm64.pyd +0 -0
  1055. scipy/sparse/csgraph/_traversal.cp314t-win_arm64.lib +0 -0
  1056. scipy/sparse/csgraph/_traversal.cp314t-win_arm64.pyd +0 -0
  1057. scipy/sparse/csgraph/_validation.py +66 -0
  1058. scipy/sparse/csgraph/tests/__init__.py +0 -0
  1059. scipy/sparse/csgraph/tests/test_connected_components.py +119 -0
  1060. scipy/sparse/csgraph/tests/test_conversions.py +61 -0
  1061. scipy/sparse/csgraph/tests/test_flow.py +209 -0
  1062. scipy/sparse/csgraph/tests/test_graph_laplacian.py +368 -0
  1063. scipy/sparse/csgraph/tests/test_matching.py +307 -0
  1064. scipy/sparse/csgraph/tests/test_pydata_sparse.py +197 -0
  1065. scipy/sparse/csgraph/tests/test_reordering.py +70 -0
  1066. scipy/sparse/csgraph/tests/test_shortest_path.py +540 -0
  1067. scipy/sparse/csgraph/tests/test_spanning_tree.py +66 -0
  1068. scipy/sparse/csgraph/tests/test_traversal.py +148 -0
  1069. scipy/sparse/csr.py +22 -0
  1070. scipy/sparse/data.py +18 -0
  1071. scipy/sparse/dia.py +22 -0
  1072. scipy/sparse/dok.py +22 -0
  1073. scipy/sparse/extract.py +23 -0
  1074. scipy/sparse/lil.py +22 -0
  1075. scipy/sparse/linalg/__init__.py +148 -0
  1076. scipy/sparse/linalg/_dsolve/__init__.py +71 -0
  1077. scipy/sparse/linalg/_dsolve/_add_newdocs.py +147 -0
  1078. scipy/sparse/linalg/_dsolve/_superlu.cp314t-win_arm64.lib +0 -0
  1079. scipy/sparse/linalg/_dsolve/_superlu.cp314t-win_arm64.pyd +0 -0
  1080. scipy/sparse/linalg/_dsolve/linsolve.py +882 -0
  1081. scipy/sparse/linalg/_dsolve/tests/__init__.py +0 -0
  1082. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +928 -0
  1083. scipy/sparse/linalg/_eigen/__init__.py +22 -0
  1084. scipy/sparse/linalg/_eigen/_svds.py +540 -0
  1085. scipy/sparse/linalg/_eigen/_svds_doc.py +382 -0
  1086. scipy/sparse/linalg/_eigen/arpack/COPYING +45 -0
  1087. scipy/sparse/linalg/_eigen/arpack/__init__.py +20 -0
  1088. scipy/sparse/linalg/_eigen/arpack/_arpack.cp314t-win_arm64.lib +0 -0
  1089. scipy/sparse/linalg/_eigen/arpack/_arpack.cp314t-win_arm64.pyd +0 -0
  1090. scipy/sparse/linalg/_eigen/arpack/arpack.py +1706 -0
  1091. scipy/sparse/linalg/_eigen/arpack/tests/__init__.py +0 -0
  1092. scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py +717 -0
  1093. scipy/sparse/linalg/_eigen/lobpcg/__init__.py +16 -0
  1094. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +1110 -0
  1095. scipy/sparse/linalg/_eigen/lobpcg/tests/__init__.py +0 -0
  1096. scipy/sparse/linalg/_eigen/lobpcg/tests/test_lobpcg.py +725 -0
  1097. scipy/sparse/linalg/_eigen/tests/__init__.py +0 -0
  1098. scipy/sparse/linalg/_eigen/tests/test_svds.py +886 -0
  1099. scipy/sparse/linalg/_expm_multiply.py +816 -0
  1100. scipy/sparse/linalg/_interface.py +920 -0
  1101. scipy/sparse/linalg/_isolve/__init__.py +20 -0
  1102. scipy/sparse/linalg/_isolve/_gcrotmk.py +503 -0
  1103. scipy/sparse/linalg/_isolve/iterative.py +1051 -0
  1104. scipy/sparse/linalg/_isolve/lgmres.py +230 -0
  1105. scipy/sparse/linalg/_isolve/lsmr.py +486 -0
  1106. scipy/sparse/linalg/_isolve/lsqr.py +589 -0
  1107. scipy/sparse/linalg/_isolve/minres.py +372 -0
  1108. scipy/sparse/linalg/_isolve/tests/__init__.py +0 -0
  1109. scipy/sparse/linalg/_isolve/tests/test_gcrotmk.py +183 -0
  1110. scipy/sparse/linalg/_isolve/tests/test_iterative.py +809 -0
  1111. scipy/sparse/linalg/_isolve/tests/test_lgmres.py +225 -0
  1112. scipy/sparse/linalg/_isolve/tests/test_lsmr.py +185 -0
  1113. scipy/sparse/linalg/_isolve/tests/test_lsqr.py +120 -0
  1114. scipy/sparse/linalg/_isolve/tests/test_minres.py +97 -0
  1115. scipy/sparse/linalg/_isolve/tests/test_utils.py +9 -0
  1116. scipy/sparse/linalg/_isolve/tfqmr.py +179 -0
  1117. scipy/sparse/linalg/_isolve/utils.py +121 -0
  1118. scipy/sparse/linalg/_matfuncs.py +940 -0
  1119. scipy/sparse/linalg/_norm.py +195 -0
  1120. scipy/sparse/linalg/_onenormest.py +467 -0
  1121. scipy/sparse/linalg/_propack/_cpropack.cp314t-win_arm64.lib +0 -0
  1122. scipy/sparse/linalg/_propack/_cpropack.cp314t-win_arm64.pyd +0 -0
  1123. scipy/sparse/linalg/_propack/_dpropack.cp314t-win_arm64.lib +0 -0
  1124. scipy/sparse/linalg/_propack/_dpropack.cp314t-win_arm64.pyd +0 -0
  1125. scipy/sparse/linalg/_propack/_spropack.cp314t-win_arm64.lib +0 -0
  1126. scipy/sparse/linalg/_propack/_spropack.cp314t-win_arm64.pyd +0 -0
  1127. scipy/sparse/linalg/_propack/_zpropack.cp314t-win_arm64.lib +0 -0
  1128. scipy/sparse/linalg/_propack/_zpropack.cp314t-win_arm64.pyd +0 -0
  1129. scipy/sparse/linalg/_special_sparse_arrays.py +949 -0
  1130. scipy/sparse/linalg/_svdp.py +309 -0
  1131. scipy/sparse/linalg/dsolve.py +22 -0
  1132. scipy/sparse/linalg/eigen.py +21 -0
  1133. scipy/sparse/linalg/interface.py +20 -0
  1134. scipy/sparse/linalg/isolve.py +22 -0
  1135. scipy/sparse/linalg/matfuncs.py +18 -0
  1136. scipy/sparse/linalg/tests/__init__.py +0 -0
  1137. scipy/sparse/linalg/tests/propack_test_data.npz +0 -0
  1138. scipy/sparse/linalg/tests/test_expm_multiply.py +367 -0
  1139. scipy/sparse/linalg/tests/test_interface.py +561 -0
  1140. scipy/sparse/linalg/tests/test_matfuncs.py +592 -0
  1141. scipy/sparse/linalg/tests/test_norm.py +154 -0
  1142. scipy/sparse/linalg/tests/test_onenormest.py +252 -0
  1143. scipy/sparse/linalg/tests/test_propack.py +165 -0
  1144. scipy/sparse/linalg/tests/test_pydata_sparse.py +272 -0
  1145. scipy/sparse/linalg/tests/test_special_sparse_arrays.py +337 -0
  1146. scipy/sparse/sparsetools.py +17 -0
  1147. scipy/sparse/spfuncs.py +17 -0
  1148. scipy/sparse/sputils.py +17 -0
  1149. scipy/sparse/tests/__init__.py +0 -0
  1150. scipy/sparse/tests/data/csc_py2.npz +0 -0
  1151. scipy/sparse/tests/data/csc_py3.npz +0 -0
  1152. scipy/sparse/tests/test_arithmetic1d.py +341 -0
  1153. scipy/sparse/tests/test_array_api.py +561 -0
  1154. scipy/sparse/tests/test_base.py +5870 -0
  1155. scipy/sparse/tests/test_common1d.py +447 -0
  1156. scipy/sparse/tests/test_construct.py +872 -0
  1157. scipy/sparse/tests/test_coo.py +1119 -0
  1158. scipy/sparse/tests/test_csc.py +98 -0
  1159. scipy/sparse/tests/test_csr.py +214 -0
  1160. scipy/sparse/tests/test_dok.py +209 -0
  1161. scipy/sparse/tests/test_extract.py +51 -0
  1162. scipy/sparse/tests/test_indexing1d.py +603 -0
  1163. scipy/sparse/tests/test_matrix_io.py +109 -0
  1164. scipy/sparse/tests/test_minmax1d.py +128 -0
  1165. scipy/sparse/tests/test_sparsetools.py +344 -0
  1166. scipy/sparse/tests/test_spfuncs.py +97 -0
  1167. scipy/sparse/tests/test_sputils.py +424 -0
  1168. scipy/spatial/__init__.py +129 -0
  1169. scipy/spatial/_ckdtree.cp314t-win_arm64.lib +0 -0
  1170. scipy/spatial/_ckdtree.cp314t-win_arm64.pyd +0 -0
  1171. scipy/spatial/_distance_pybind.cp314t-win_arm64.lib +0 -0
  1172. scipy/spatial/_distance_pybind.cp314t-win_arm64.pyd +0 -0
  1173. scipy/spatial/_distance_wrap.cp314t-win_arm64.lib +0 -0
  1174. scipy/spatial/_distance_wrap.cp314t-win_arm64.pyd +0 -0
  1175. scipy/spatial/_geometric_slerp.py +238 -0
  1176. scipy/spatial/_hausdorff.cp314t-win_arm64.lib +0 -0
  1177. scipy/spatial/_hausdorff.cp314t-win_arm64.pyd +0 -0
  1178. scipy/spatial/_kdtree.py +920 -0
  1179. scipy/spatial/_plotutils.py +274 -0
  1180. scipy/spatial/_procrustes.py +132 -0
  1181. scipy/spatial/_qhull.cp314t-win_arm64.lib +0 -0
  1182. scipy/spatial/_qhull.cp314t-win_arm64.pyd +0 -0
  1183. scipy/spatial/_qhull.pyi +213 -0
  1184. scipy/spatial/_spherical_voronoi.py +341 -0
  1185. scipy/spatial/_voronoi.cp314t-win_arm64.lib +0 -0
  1186. scipy/spatial/_voronoi.cp314t-win_arm64.pyd +0 -0
  1187. scipy/spatial/_voronoi.pyi +4 -0
  1188. scipy/spatial/ckdtree.py +18 -0
  1189. scipy/spatial/distance.py +3147 -0
  1190. scipy/spatial/distance.pyi +210 -0
  1191. scipy/spatial/kdtree.py +25 -0
  1192. scipy/spatial/qhull.py +25 -0
  1193. scipy/spatial/qhull_src/COPYING_QHULL.txt +39 -0
  1194. scipy/spatial/tests/__init__.py +0 -0
  1195. scipy/spatial/tests/data/cdist-X1.txt +10 -0
  1196. scipy/spatial/tests/data/cdist-X2.txt +20 -0
  1197. scipy/spatial/tests/data/degenerate_pointset.npz +0 -0
  1198. scipy/spatial/tests/data/iris.txt +150 -0
  1199. scipy/spatial/tests/data/pdist-boolean-inp.txt +20 -0
  1200. scipy/spatial/tests/data/pdist-chebyshev-ml-iris.txt +1 -0
  1201. scipy/spatial/tests/data/pdist-chebyshev-ml.txt +1 -0
  1202. scipy/spatial/tests/data/pdist-cityblock-ml-iris.txt +1 -0
  1203. scipy/spatial/tests/data/pdist-cityblock-ml.txt +1 -0
  1204. scipy/spatial/tests/data/pdist-correlation-ml-iris.txt +1 -0
  1205. scipy/spatial/tests/data/pdist-correlation-ml.txt +1 -0
  1206. scipy/spatial/tests/data/pdist-cosine-ml-iris.txt +1 -0
  1207. scipy/spatial/tests/data/pdist-cosine-ml.txt +1 -0
  1208. scipy/spatial/tests/data/pdist-double-inp.txt +20 -0
  1209. scipy/spatial/tests/data/pdist-euclidean-ml-iris.txt +1 -0
  1210. scipy/spatial/tests/data/pdist-euclidean-ml.txt +1 -0
  1211. scipy/spatial/tests/data/pdist-hamming-ml.txt +1 -0
  1212. scipy/spatial/tests/data/pdist-jaccard-ml.txt +1 -0
  1213. scipy/spatial/tests/data/pdist-jensenshannon-ml-iris.txt +1 -0
  1214. scipy/spatial/tests/data/pdist-jensenshannon-ml.txt +1 -0
  1215. scipy/spatial/tests/data/pdist-minkowski-3.2-ml-iris.txt +1 -0
  1216. scipy/spatial/tests/data/pdist-minkowski-3.2-ml.txt +1 -0
  1217. scipy/spatial/tests/data/pdist-minkowski-5.8-ml-iris.txt +1 -0
  1218. scipy/spatial/tests/data/pdist-seuclidean-ml-iris.txt +1 -0
  1219. scipy/spatial/tests/data/pdist-seuclidean-ml.txt +1 -0
  1220. scipy/spatial/tests/data/pdist-spearman-ml.txt +1 -0
  1221. scipy/spatial/tests/data/random-bool-data.txt +100 -0
  1222. scipy/spatial/tests/data/random-double-data.txt +100 -0
  1223. scipy/spatial/tests/data/random-int-data.txt +100 -0
  1224. scipy/spatial/tests/data/random-uint-data.txt +100 -0
  1225. scipy/spatial/tests/data/selfdual-4d-polytope.txt +27 -0
  1226. scipy/spatial/tests/test__plotutils.py +91 -0
  1227. scipy/spatial/tests/test__procrustes.py +116 -0
  1228. scipy/spatial/tests/test_distance.py +2389 -0
  1229. scipy/spatial/tests/test_hausdorff.py +199 -0
  1230. scipy/spatial/tests/test_kdtree.py +1536 -0
  1231. scipy/spatial/tests/test_qhull.py +1313 -0
  1232. scipy/spatial/tests/test_slerp.py +417 -0
  1233. scipy/spatial/tests/test_spherical_voronoi.py +358 -0
  1234. scipy/spatial/transform/__init__.py +31 -0
  1235. scipy/spatial/transform/_rigid_transform.cp314t-win_arm64.lib +0 -0
  1236. scipy/spatial/transform/_rigid_transform.cp314t-win_arm64.pyd +0 -0
  1237. scipy/spatial/transform/_rotation.cp314t-win_arm64.lib +0 -0
  1238. scipy/spatial/transform/_rotation.cp314t-win_arm64.pyd +0 -0
  1239. scipy/spatial/transform/_rotation_groups.py +140 -0
  1240. scipy/spatial/transform/_rotation_spline.py +460 -0
  1241. scipy/spatial/transform/rotation.py +21 -0
  1242. scipy/spatial/transform/tests/__init__.py +0 -0
  1243. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  1244. scipy/spatial/transform/tests/test_rotation.py +2569 -0
  1245. scipy/spatial/transform/tests/test_rotation_groups.py +169 -0
  1246. scipy/spatial/transform/tests/test_rotation_spline.py +183 -0
  1247. scipy/special/__init__.pxd +1 -0
  1248. scipy/special/__init__.py +841 -0
  1249. scipy/special/_add_newdocs.py +9961 -0
  1250. scipy/special/_basic.py +3576 -0
  1251. scipy/special/_comb.cp314t-win_arm64.lib +0 -0
  1252. scipy/special/_comb.cp314t-win_arm64.pyd +0 -0
  1253. scipy/special/_ellip_harm.py +214 -0
  1254. scipy/special/_ellip_harm_2.cp314t-win_arm64.lib +0 -0
  1255. scipy/special/_ellip_harm_2.cp314t-win_arm64.pyd +0 -0
  1256. scipy/special/_gufuncs.cp314t-win_arm64.lib +0 -0
  1257. scipy/special/_gufuncs.cp314t-win_arm64.pyd +0 -0
  1258. scipy/special/_input_validation.py +17 -0
  1259. scipy/special/_lambertw.py +149 -0
  1260. scipy/special/_logsumexp.py +426 -0
  1261. scipy/special/_mptestutils.py +453 -0
  1262. scipy/special/_multiufuncs.py +610 -0
  1263. scipy/special/_orthogonal.py +2592 -0
  1264. scipy/special/_orthogonal.pyi +330 -0
  1265. scipy/special/_precompute/__init__.py +0 -0
  1266. scipy/special/_precompute/cosine_cdf.py +17 -0
  1267. scipy/special/_precompute/expn_asy.py +54 -0
  1268. scipy/special/_precompute/gammainc_asy.py +116 -0
  1269. scipy/special/_precompute/gammainc_data.py +124 -0
  1270. scipy/special/_precompute/hyp2f1_data.py +484 -0
  1271. scipy/special/_precompute/lambertw.py +68 -0
  1272. scipy/special/_precompute/loggamma.py +43 -0
  1273. scipy/special/_precompute/struve_convergence.py +131 -0
  1274. scipy/special/_precompute/utils.py +38 -0
  1275. scipy/special/_precompute/wright_bessel.py +342 -0
  1276. scipy/special/_precompute/wright_bessel_data.py +152 -0
  1277. scipy/special/_precompute/wrightomega.py +41 -0
  1278. scipy/special/_precompute/zetac.py +27 -0
  1279. scipy/special/_sf_error.py +15 -0
  1280. scipy/special/_specfun.cp314t-win_arm64.lib +0 -0
  1281. scipy/special/_specfun.cp314t-win_arm64.pyd +0 -0
  1282. scipy/special/_special_ufuncs.cp314t-win_arm64.lib +0 -0
  1283. scipy/special/_special_ufuncs.cp314t-win_arm64.pyd +0 -0
  1284. scipy/special/_spfun_stats.py +106 -0
  1285. scipy/special/_spherical_bessel.py +397 -0
  1286. scipy/special/_support_alternative_backends.py +295 -0
  1287. scipy/special/_test_internal.cp314t-win_arm64.lib +0 -0
  1288. scipy/special/_test_internal.cp314t-win_arm64.pyd +0 -0
  1289. scipy/special/_test_internal.pyi +9 -0
  1290. scipy/special/_testutils.py +321 -0
  1291. scipy/special/_ufuncs.cp314t-win_arm64.lib +0 -0
  1292. scipy/special/_ufuncs.cp314t-win_arm64.pyd +0 -0
  1293. scipy/special/_ufuncs.pyi +522 -0
  1294. scipy/special/_ufuncs.pyx +13173 -0
  1295. scipy/special/_ufuncs_cxx.cp314t-win_arm64.lib +0 -0
  1296. scipy/special/_ufuncs_cxx.cp314t-win_arm64.pyd +0 -0
  1297. scipy/special/_ufuncs_cxx.pxd +142 -0
  1298. scipy/special/_ufuncs_cxx.pyx +427 -0
  1299. scipy/special/_ufuncs_cxx_defs.h +147 -0
  1300. scipy/special/_ufuncs_defs.h +57 -0
  1301. scipy/special/add_newdocs.py +15 -0
  1302. scipy/special/basic.py +87 -0
  1303. scipy/special/cython_special.cp314t-win_arm64.lib +0 -0
  1304. scipy/special/cython_special.cp314t-win_arm64.pyd +0 -0
  1305. scipy/special/cython_special.pxd +259 -0
  1306. scipy/special/cython_special.pyi +3 -0
  1307. scipy/special/orthogonal.py +45 -0
  1308. scipy/special/sf_error.py +20 -0
  1309. scipy/special/specfun.py +24 -0
  1310. scipy/special/spfun_stats.py +17 -0
  1311. scipy/special/tests/__init__.py +0 -0
  1312. scipy/special/tests/_cython_examples/extending.pyx +12 -0
  1313. scipy/special/tests/_cython_examples/meson.build +34 -0
  1314. scipy/special/tests/data/__init__.py +0 -0
  1315. scipy/special/tests/data/boost.npz +0 -0
  1316. scipy/special/tests/data/gsl.npz +0 -0
  1317. scipy/special/tests/data/local.npz +0 -0
  1318. scipy/special/tests/test_basic.py +4815 -0
  1319. scipy/special/tests/test_bdtr.py +112 -0
  1320. scipy/special/tests/test_boost_ufuncs.py +64 -0
  1321. scipy/special/tests/test_boxcox.py +125 -0
  1322. scipy/special/tests/test_cdflib.py +712 -0
  1323. scipy/special/tests/test_cdft_asymptotic.py +49 -0
  1324. scipy/special/tests/test_cephes_intp_cast.py +29 -0
  1325. scipy/special/tests/test_cosine_distr.py +83 -0
  1326. scipy/special/tests/test_cython_special.py +363 -0
  1327. scipy/special/tests/test_data.py +719 -0
  1328. scipy/special/tests/test_dd.py +42 -0
  1329. scipy/special/tests/test_digamma.py +45 -0
  1330. scipy/special/tests/test_ellip_harm.py +278 -0
  1331. scipy/special/tests/test_erfinv.py +89 -0
  1332. scipy/special/tests/test_exponential_integrals.py +118 -0
  1333. scipy/special/tests/test_extending.py +28 -0
  1334. scipy/special/tests/test_faddeeva.py +85 -0
  1335. scipy/special/tests/test_gamma.py +12 -0
  1336. scipy/special/tests/test_gammainc.py +152 -0
  1337. scipy/special/tests/test_hyp2f1.py +2566 -0
  1338. scipy/special/tests/test_hypergeometric.py +234 -0
  1339. scipy/special/tests/test_iv_ratio.py +249 -0
  1340. scipy/special/tests/test_kolmogorov.py +491 -0
  1341. scipy/special/tests/test_lambertw.py +109 -0
  1342. scipy/special/tests/test_legendre.py +1518 -0
  1343. scipy/special/tests/test_log1mexp.py +85 -0
  1344. scipy/special/tests/test_loggamma.py +70 -0
  1345. scipy/special/tests/test_logit.py +162 -0
  1346. scipy/special/tests/test_logsumexp.py +469 -0
  1347. scipy/special/tests/test_mpmath.py +2293 -0
  1348. scipy/special/tests/test_nan_inputs.py +65 -0
  1349. scipy/special/tests/test_ndtr.py +77 -0
  1350. scipy/special/tests/test_ndtri_exp.py +94 -0
  1351. scipy/special/tests/test_orthogonal.py +821 -0
  1352. scipy/special/tests/test_orthogonal_eval.py +275 -0
  1353. scipy/special/tests/test_owens_t.py +53 -0
  1354. scipy/special/tests/test_pcf.py +24 -0
  1355. scipy/special/tests/test_pdtr.py +48 -0
  1356. scipy/special/tests/test_powm1.py +65 -0
  1357. scipy/special/tests/test_precompute_expn_asy.py +24 -0
  1358. scipy/special/tests/test_precompute_gammainc.py +108 -0
  1359. scipy/special/tests/test_precompute_utils.py +36 -0
  1360. scipy/special/tests/test_round.py +18 -0
  1361. scipy/special/tests/test_sf_error.py +146 -0
  1362. scipy/special/tests/test_sici.py +36 -0
  1363. scipy/special/tests/test_specfun.py +48 -0
  1364. scipy/special/tests/test_spence.py +32 -0
  1365. scipy/special/tests/test_spfun_stats.py +61 -0
  1366. scipy/special/tests/test_sph_harm.py +85 -0
  1367. scipy/special/tests/test_spherical_bessel.py +400 -0
  1368. scipy/special/tests/test_support_alternative_backends.py +248 -0
  1369. scipy/special/tests/test_trig.py +72 -0
  1370. scipy/special/tests/test_ufunc_signatures.py +46 -0
  1371. scipy/special/tests/test_wright_bessel.py +205 -0
  1372. scipy/special/tests/test_wrightomega.py +117 -0
  1373. scipy/special/tests/test_zeta.py +301 -0
  1374. scipy/stats/__init__.py +670 -0
  1375. scipy/stats/_ansari_swilk_statistics.cp314t-win_arm64.lib +0 -0
  1376. scipy/stats/_ansari_swilk_statistics.cp314t-win_arm64.pyd +0 -0
  1377. scipy/stats/_axis_nan_policy.py +692 -0
  1378. scipy/stats/_biasedurn.cp314t-win_arm64.lib +0 -0
  1379. scipy/stats/_biasedurn.cp314t-win_arm64.pyd +0 -0
  1380. scipy/stats/_biasedurn.pxd +27 -0
  1381. scipy/stats/_binned_statistic.py +795 -0
  1382. scipy/stats/_binomtest.py +375 -0
  1383. scipy/stats/_bws_test.py +177 -0
  1384. scipy/stats/_censored_data.py +459 -0
  1385. scipy/stats/_common.py +5 -0
  1386. scipy/stats/_constants.py +42 -0
  1387. scipy/stats/_continued_fraction.py +387 -0
  1388. scipy/stats/_continuous_distns.py +12486 -0
  1389. scipy/stats/_correlation.py +210 -0
  1390. scipy/stats/_covariance.py +636 -0
  1391. scipy/stats/_crosstab.py +204 -0
  1392. scipy/stats/_discrete_distns.py +2098 -0
  1393. scipy/stats/_distn_infrastructure.py +4201 -0
  1394. scipy/stats/_distr_params.py +299 -0
  1395. scipy/stats/_distribution_infrastructure.py +5750 -0
  1396. scipy/stats/_entropy.py +428 -0
  1397. scipy/stats/_finite_differences.py +145 -0
  1398. scipy/stats/_fit.py +1351 -0
  1399. scipy/stats/_hypotests.py +2060 -0
  1400. scipy/stats/_kde.py +732 -0
  1401. scipy/stats/_ksstats.py +600 -0
  1402. scipy/stats/_levy_stable/__init__.py +1231 -0
  1403. scipy/stats/_levy_stable/levyst.cp314t-win_arm64.lib +0 -0
  1404. scipy/stats/_levy_stable/levyst.cp314t-win_arm64.pyd +0 -0
  1405. scipy/stats/_mannwhitneyu.py +492 -0
  1406. scipy/stats/_mgc.py +550 -0
  1407. scipy/stats/_morestats.py +4626 -0
  1408. scipy/stats/_mstats_basic.py +3658 -0
  1409. scipy/stats/_mstats_extras.py +521 -0
  1410. scipy/stats/_multicomp.py +449 -0
  1411. scipy/stats/_multivariate.py +7281 -0
  1412. scipy/stats/_new_distributions.py +452 -0
  1413. scipy/stats/_odds_ratio.py +466 -0
  1414. scipy/stats/_page_trend_test.py +486 -0
  1415. scipy/stats/_probability_distribution.py +1964 -0
  1416. scipy/stats/_qmc.py +2956 -0
  1417. scipy/stats/_qmc_cy.cp314t-win_arm64.lib +0 -0
  1418. scipy/stats/_qmc_cy.cp314t-win_arm64.pyd +0 -0
  1419. scipy/stats/_qmc_cy.pyi +54 -0
  1420. scipy/stats/_qmvnt.py +454 -0
  1421. scipy/stats/_qmvnt_cy.cp314t-win_arm64.lib +0 -0
  1422. scipy/stats/_qmvnt_cy.cp314t-win_arm64.pyd +0 -0
  1423. scipy/stats/_quantile.py +335 -0
  1424. scipy/stats/_rcont/__init__.py +4 -0
  1425. scipy/stats/_rcont/rcont.cp314t-win_arm64.lib +0 -0
  1426. scipy/stats/_rcont/rcont.cp314t-win_arm64.pyd +0 -0
  1427. scipy/stats/_relative_risk.py +263 -0
  1428. scipy/stats/_resampling.py +2352 -0
  1429. scipy/stats/_result_classes.py +40 -0
  1430. scipy/stats/_sampling.py +1314 -0
  1431. scipy/stats/_sensitivity_analysis.py +713 -0
  1432. scipy/stats/_sobol.cp314t-win_arm64.lib +0 -0
  1433. scipy/stats/_sobol.cp314t-win_arm64.pyd +0 -0
  1434. scipy/stats/_sobol.pyi +54 -0
  1435. scipy/stats/_sobol_direction_numbers.npz +0 -0
  1436. scipy/stats/_stats.cp314t-win_arm64.lib +0 -0
  1437. scipy/stats/_stats.cp314t-win_arm64.pyd +0 -0
  1438. scipy/stats/_stats.pxd +10 -0
  1439. scipy/stats/_stats_mstats_common.py +322 -0
  1440. scipy/stats/_stats_py.py +11089 -0
  1441. scipy/stats/_stats_pythran.cp314t-win_arm64.lib +0 -0
  1442. scipy/stats/_stats_pythran.cp314t-win_arm64.pyd +0 -0
  1443. scipy/stats/_survival.py +683 -0
  1444. scipy/stats/_tukeylambda_stats.py +199 -0
  1445. scipy/stats/_unuran/__init__.py +0 -0
  1446. scipy/stats/_unuran/unuran_wrapper.cp314t-win_arm64.lib +0 -0
  1447. scipy/stats/_unuran/unuran_wrapper.cp314t-win_arm64.pyd +0 -0
  1448. scipy/stats/_unuran/unuran_wrapper.pyi +179 -0
  1449. scipy/stats/_variation.py +126 -0
  1450. scipy/stats/_warnings_errors.py +38 -0
  1451. scipy/stats/_wilcoxon.py +265 -0
  1452. scipy/stats/biasedurn.py +16 -0
  1453. scipy/stats/contingency.py +521 -0
  1454. scipy/stats/distributions.py +24 -0
  1455. scipy/stats/kde.py +18 -0
  1456. scipy/stats/morestats.py +27 -0
  1457. scipy/stats/mstats.py +140 -0
  1458. scipy/stats/mstats_basic.py +42 -0
  1459. scipy/stats/mstats_extras.py +25 -0
  1460. scipy/stats/mvn.py +17 -0
  1461. scipy/stats/qmc.py +236 -0
  1462. scipy/stats/sampling.py +73 -0
  1463. scipy/stats/stats.py +41 -0
  1464. scipy/stats/tests/__init__.py +0 -0
  1465. scipy/stats/tests/common_tests.py +356 -0
  1466. scipy/stats/tests/data/_mvt.py +171 -0
  1467. scipy/stats/tests/data/fisher_exact_results_from_r.py +607 -0
  1468. scipy/stats/tests/data/jf_skew_t_gamlss_pdf_data.npy +0 -0
  1469. scipy/stats/tests/data/levy_stable/stable-Z1-cdf-sample-data.npy +0 -0
  1470. scipy/stats/tests/data/levy_stable/stable-Z1-pdf-sample-data.npy +0 -0
  1471. scipy/stats/tests/data/levy_stable/stable-loc-scale-sample-data.npy +0 -0
  1472. scipy/stats/tests/data/nist_anova/AtmWtAg.dat +108 -0
  1473. scipy/stats/tests/data/nist_anova/SiRstv.dat +85 -0
  1474. scipy/stats/tests/data/nist_anova/SmLs01.dat +249 -0
  1475. scipy/stats/tests/data/nist_anova/SmLs02.dat +1869 -0
  1476. scipy/stats/tests/data/nist_anova/SmLs03.dat +18069 -0
  1477. scipy/stats/tests/data/nist_anova/SmLs04.dat +249 -0
  1478. scipy/stats/tests/data/nist_anova/SmLs05.dat +1869 -0
  1479. scipy/stats/tests/data/nist_anova/SmLs06.dat +18069 -0
  1480. scipy/stats/tests/data/nist_anova/SmLs07.dat +249 -0
  1481. scipy/stats/tests/data/nist_anova/SmLs08.dat +1869 -0
  1482. scipy/stats/tests/data/nist_anova/SmLs09.dat +18069 -0
  1483. scipy/stats/tests/data/nist_linregress/Norris.dat +97 -0
  1484. scipy/stats/tests/data/rel_breitwigner_pdf_sample_data_ROOT.npy +0 -0
  1485. scipy/stats/tests/data/studentized_range_mpmath_ref.json +1499 -0
  1486. scipy/stats/tests/test_axis_nan_policy.py +1388 -0
  1487. scipy/stats/tests/test_binned_statistic.py +568 -0
  1488. scipy/stats/tests/test_censored_data.py +152 -0
  1489. scipy/stats/tests/test_contingency.py +294 -0
  1490. scipy/stats/tests/test_continued_fraction.py +173 -0
  1491. scipy/stats/tests/test_continuous.py +2198 -0
  1492. scipy/stats/tests/test_continuous_basic.py +1053 -0
  1493. scipy/stats/tests/test_continuous_fit_censored.py +683 -0
  1494. scipy/stats/tests/test_correlation.py +80 -0
  1495. scipy/stats/tests/test_crosstab.py +115 -0
  1496. scipy/stats/tests/test_discrete_basic.py +580 -0
  1497. scipy/stats/tests/test_discrete_distns.py +700 -0
  1498. scipy/stats/tests/test_distributions.py +10413 -0
  1499. scipy/stats/tests/test_entropy.py +322 -0
  1500. scipy/stats/tests/test_fast_gen_inversion.py +435 -0
  1501. scipy/stats/tests/test_fit.py +1090 -0
  1502. scipy/stats/tests/test_hypotests.py +1991 -0
  1503. scipy/stats/tests/test_kdeoth.py +676 -0
  1504. scipy/stats/tests/test_marray.py +289 -0
  1505. scipy/stats/tests/test_mgc.py +217 -0
  1506. scipy/stats/tests/test_morestats.py +3259 -0
  1507. scipy/stats/tests/test_mstats_basic.py +2071 -0
  1508. scipy/stats/tests/test_mstats_extras.py +172 -0
  1509. scipy/stats/tests/test_multicomp.py +405 -0
  1510. scipy/stats/tests/test_multivariate.py +4381 -0
  1511. scipy/stats/tests/test_odds_ratio.py +148 -0
  1512. scipy/stats/tests/test_qmc.py +1492 -0
  1513. scipy/stats/tests/test_quantile.py +199 -0
  1514. scipy/stats/tests/test_rank.py +345 -0
  1515. scipy/stats/tests/test_relative_risk.py +95 -0
  1516. scipy/stats/tests/test_resampling.py +2000 -0
  1517. scipy/stats/tests/test_sampling.py +1450 -0
  1518. scipy/stats/tests/test_sensitivity_analysis.py +310 -0
  1519. scipy/stats/tests/test_stats.py +9707 -0
  1520. scipy/stats/tests/test_survival.py +466 -0
  1521. scipy/stats/tests/test_tukeylambda_stats.py +85 -0
  1522. scipy/stats/tests/test_variation.py +216 -0
  1523. scipy/version.py +12 -0
  1524. scipy-1.16.2.dist-info/DELVEWHEEL +2 -0
  1525. scipy-1.16.2.dist-info/LICENSE.txt +912 -0
  1526. scipy-1.16.2.dist-info/METADATA +1061 -0
  1527. scipy-1.16.2.dist-info/RECORD +1530 -0
  1528. scipy-1.16.2.dist-info/WHEEL +4 -0
  1529. scipy.libs/msvcp140-5f1c5dd31916990d94181e07bc3afb32.dll +0 -0
  1530. scipy.libs/scipy_openblas-f3ac85b1f412f7e86514c923dc4058d1.dll +0 -0
@@ -0,0 +1,1434 @@
1
+ """
2
+ Created on Sat Aug 22 19:49:17 2020
3
+
4
+ @author: matth
5
+ """
6
+
7
+
8
+ def _linprog_highs_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
9
+ bounds=None, method='highs', callback=None,
10
+ maxiter=None, disp=False, presolve=True,
11
+ time_limit=None,
12
+ dual_feasibility_tolerance=None,
13
+ primal_feasibility_tolerance=None,
14
+ ipm_optimality_tolerance=None,
15
+ simplex_dual_edge_weight_strategy=None,
16
+ mip_rel_gap=None,
17
+ **unknown_options):
18
+ r"""
19
+ Linear programming: minimize a linear objective function subject to linear
20
+ equality and inequality constraints using one of the HiGHS solvers.
21
+
22
+ Linear programming solves problems of the following form:
23
+
24
+ .. math::
25
+
26
+ \min_x \ & c^T x \\
27
+ \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
28
+ & A_{eq} x = b_{eq},\\
29
+ & l \leq x \leq u ,
30
+
31
+ where :math:`x` is a vector of decision variables; :math:`c`,
32
+ :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
33
+ :math:`A_{ub}` and :math:`A_{eq}` are matrices.
34
+
35
+ Alternatively, that's:
36
+
37
+ minimize::
38
+
39
+ c @ x
40
+
41
+ such that::
42
+
43
+ A_ub @ x <= b_ub
44
+ A_eq @ x == b_eq
45
+ lb <= x <= ub
46
+
47
+ Note that by default ``lb = 0`` and ``ub = None`` unless specified with
48
+ ``bounds``.
49
+
50
+ Parameters
51
+ ----------
52
+ c : 1-D array
53
+ The coefficients of the linear objective function to be minimized.
54
+ A_ub : 2-D array, optional
55
+ The inequality constraint matrix. Each row of ``A_ub`` specifies the
56
+ coefficients of a linear inequality constraint on ``x``.
57
+ b_ub : 1-D array, optional
58
+ The inequality constraint vector. Each element represents an
59
+ upper bound on the corresponding value of ``A_ub @ x``.
60
+ A_eq : 2-D array, optional
61
+ The equality constraint matrix. Each row of ``A_eq`` specifies the
62
+ coefficients of a linear equality constraint on ``x``.
63
+ b_eq : 1-D array, optional
64
+ The equality constraint vector. Each element of ``A_eq @ x`` must equal
65
+ the corresponding element of ``b_eq``.
66
+ bounds : sequence, optional
67
+ A sequence of ``(min, max)`` pairs for each element in ``x``, defining
68
+ the minimum and maximum values of that decision variable. Use ``None``
69
+ to indicate that there is no bound. By default, bounds are
70
+ ``(0, None)`` (all decision variables are non-negative).
71
+ If a single tuple ``(min, max)`` is provided, then ``min`` and
72
+ ``max`` will serve as bounds for all decision variables.
73
+ method : str
74
+
75
+ This is the method-specific documentation for 'highs', which chooses
76
+ automatically between
77
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>` and
78
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
79
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
80
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
81
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy)
82
+ are also available.
83
+ integrality : 1-D array or int, optional
84
+ Indicates the type of integrality constraint on each decision variable.
85
+
86
+ ``0`` : Continuous variable; no integrality constraint.
87
+
88
+ ``1`` : Integer variable; decision variable must be an integer
89
+ within `bounds`.
90
+
91
+ ``2`` : Semi-continuous variable; decision variable must be within
92
+ `bounds` or take value ``0``.
93
+
94
+ ``3`` : Semi-integer variable; decision variable must be an integer
95
+ within `bounds` or take value ``0``.
96
+
97
+ By default, all variables are continuous.
98
+
99
+ For mixed integrality constraints, supply an array of shape `c.shape`.
100
+ To infer a constraint on each decision variable from shorter inputs,
101
+ the argument will be broadcast to `c.shape` using `np.broadcast_to`.
102
+
103
+ This argument is currently used only by the ``'highs'`` method and
104
+ ignored otherwise.
105
+
106
+ Options
107
+ -------
108
+ maxiter : int
109
+ The maximum number of iterations to perform in either phase.
110
+ For :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`, this does not
111
+ include the number of crossover iterations. Default is the largest
112
+ possible value for an ``int`` on the platform.
113
+ disp : bool (default: ``False``)
114
+ Set to ``True`` if indicators of optimization status are to be
115
+ printed to the console during optimization.
116
+ presolve : bool (default: ``True``)
117
+ Presolve attempts to identify trivial infeasibilities,
118
+ identify trivial unboundedness, and simplify the problem before
119
+ sending it to the main solver. It is generally recommended
120
+ to keep the default setting ``True``; set to ``False`` if
121
+ presolve is to be disabled.
122
+ time_limit : float
123
+ The maximum time in seconds allotted to solve the problem;
124
+ default is the largest possible value for a ``double`` on the
125
+ platform.
126
+ dual_feasibility_tolerance : double (default: 1e-07)
127
+ Dual feasibility tolerance for
128
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`.
129
+ The minimum of this and ``primal_feasibility_tolerance``
130
+ is used for the feasibility tolerance of
131
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
132
+ primal_feasibility_tolerance : double (default: 1e-07)
133
+ Primal feasibility tolerance for
134
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`.
135
+ The minimum of this and ``dual_feasibility_tolerance``
136
+ is used for the feasibility tolerance of
137
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
138
+ ipm_optimality_tolerance : double (default: ``1e-08``)
139
+ Optimality tolerance for
140
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
141
+ Minimum allowable value is 1e-12.
142
+ simplex_dual_edge_weight_strategy : str (default: None)
143
+ Strategy for simplex dual edge weights. The default, ``None``,
144
+ automatically selects one of the following.
145
+
146
+ ``'dantzig'`` uses Dantzig's original strategy of choosing the most
147
+ negative reduced cost.
148
+
149
+ ``'devex'`` uses the strategy described in [15]_.
150
+
151
+ ``steepest`` uses the exact steepest edge strategy as described in
152
+ [16]_.
153
+
154
+ ``'steepest-devex'`` begins with the exact steepest edge strategy
155
+ until the computation is too costly or inexact and then switches to
156
+ the devex method.
157
+
158
+ Currently, ``None`` always selects ``'steepest-devex'``, but this
159
+ may change as new options become available.
160
+ mip_rel_gap : double (default: None)
161
+ Termination criterion for MIP solver: solver will terminate when the
162
+ gap between the primal objective value and the dual objective bound,
163
+ scaled by the primal objective value, is <= mip_rel_gap.
164
+ unknown_options : dict
165
+ Optional arguments not used by this particular solver. If
166
+ ``unknown_options`` is non-empty, a warning is issued listing
167
+ all unused options.
168
+
169
+ Returns
170
+ -------
171
+ res : OptimizeResult
172
+ A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
173
+
174
+ x : 1D array
175
+ The values of the decision variables that minimizes the
176
+ objective function while satisfying the constraints.
177
+ fun : float
178
+ The optimal value of the objective function ``c @ x``.
179
+ slack : 1D array
180
+ The (nominally positive) values of the slack,
181
+ ``b_ub - A_ub @ x``.
182
+ con : 1D array
183
+ The (nominally zero) residuals of the equality constraints,
184
+ ``b_eq - A_eq @ x``.
185
+ success : bool
186
+ ``True`` when the algorithm succeeds in finding an optimal
187
+ solution.
188
+ status : int
189
+ An integer representing the exit status of the algorithm.
190
+
191
+ ``0`` : Optimization terminated successfully.
192
+
193
+ ``1`` : Iteration or time limit reached.
194
+
195
+ ``2`` : Problem appears to be infeasible.
196
+
197
+ ``3`` : Problem appears to be unbounded.
198
+
199
+ ``4`` : The HiGHS solver ran into a problem.
200
+
201
+ message : str
202
+ A string descriptor of the exit status of the algorithm.
203
+ nit : int
204
+ The total number of iterations performed.
205
+ For the HiGHS simplex method, this includes iterations in all
206
+ phases. For the HiGHS interior-point method, this does not include
207
+ crossover iterations.
208
+ crossover_nit : int
209
+ The number of primal/dual pushes performed during the
210
+ crossover routine for the HiGHS interior-point method.
211
+ This is ``0`` for the HiGHS simplex method.
212
+ ineqlin : OptimizeResult
213
+ Solution and sensitivity information corresponding to the
214
+ inequality constraints, `b_ub`. A dictionary consisting of the
215
+ fields:
216
+
217
+ residual : np.ndnarray
218
+ The (nominally positive) values of the slack variables,
219
+ ``b_ub - A_ub @ x``. This quantity is also commonly
220
+ referred to as "slack".
221
+
222
+ marginals : np.ndarray
223
+ The sensitivity (partial derivative) of the objective
224
+ function with respect to the right-hand side of the
225
+ inequality constraints, `b_ub`.
226
+
227
+ eqlin : OptimizeResult
228
+ Solution and sensitivity information corresponding to the
229
+ equality constraints, `b_eq`. A dictionary consisting of the
230
+ fields:
231
+
232
+ residual : np.ndarray
233
+ The (nominally zero) residuals of the equality constraints,
234
+ ``b_eq - A_eq @ x``.
235
+
236
+ marginals : np.ndarray
237
+ The sensitivity (partial derivative) of the objective
238
+ function with respect to the right-hand side of the
239
+ equality constraints, `b_eq`.
240
+
241
+ lower, upper : OptimizeResult
242
+ Solution and sensitivity information corresponding to the
243
+ lower and upper bounds on decision variables, `bounds`.
244
+
245
+ residual : np.ndarray
246
+ The (nominally positive) values of the quantity
247
+ ``x - lb`` (lower) or ``ub - x`` (upper).
248
+
249
+ marginals : np.ndarray
250
+ The sensitivity (partial derivative) of the objective
251
+ function with respect to the lower and upper
252
+ `bounds`.
253
+
254
+ Notes
255
+ -----
256
+
257
+ Method :ref:`'highs-ds' <optimize.linprog-highs-ds>` is a wrapper
258
+ of the C++ high performance dual revised simplex implementation (HSOL)
259
+ [13]_, [14]_. Method :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`
260
+ is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
261
+ **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
262
+ as a simplex solver. Method :ref:`'highs' <optimize.linprog-highs>` chooses
263
+ between the two automatically. For new code involving `linprog`, we
264
+ recommend explicitly choosing one of these three method values instead of
265
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
266
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
267
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy).
268
+
269
+ The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
270
+ `marginals`, or partial derivatives of the objective function with respect
271
+ to the right-hand side of each constraint. These partial derivatives are
272
+ also referred to as "Lagrange multipliers", "dual values", and
273
+ "shadow prices". The sign convention of `marginals` is opposite that
274
+ of Lagrange multipliers produced by many nonlinear solvers.
275
+
276
+ References
277
+ ----------
278
+ .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
279
+ "HiGHS - high performance software for linear optimization."
280
+ https://highs.dev/
281
+ .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
282
+ simplex method." Mathematical Programming Computation, 10 (1),
283
+ 119-142, 2018. DOI: 10.1007/s12532-017-0130-5
284
+ .. [15] Harris, Paula MJ. "Pivot selection methods of the Devex LP code."
285
+ Mathematical programming 5.1 (1973): 1-28.
286
+ .. [16] Goldfarb, Donald, and John Ker Reid. "A practicable steepest-edge
287
+ simplex algorithm." Mathematical Programming 12.1 (1977): 361-371.
288
+ """
289
+ pass
290
+
291
+
292
+ def _linprog_highs_ds_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
293
+ bounds=None, method='highs-ds', callback=None,
294
+ maxiter=None, disp=False, presolve=True,
295
+ time_limit=None,
296
+ dual_feasibility_tolerance=None,
297
+ primal_feasibility_tolerance=None,
298
+ simplex_dual_edge_weight_strategy=None,
299
+ **unknown_options):
300
+ r"""
301
+ Linear programming: minimize a linear objective function subject to linear
302
+ equality and inequality constraints using the HiGHS dual simplex solver.
303
+
304
+ Linear programming solves problems of the following form:
305
+
306
+ .. math::
307
+
308
+ \min_x \ & c^T x \\
309
+ \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
310
+ & A_{eq} x = b_{eq},\\
311
+ & l \leq x \leq u ,
312
+
313
+ where :math:`x` is a vector of decision variables; :math:`c`,
314
+ :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
315
+ :math:`A_{ub}` and :math:`A_{eq}` are matrices.
316
+
317
+ Alternatively, that's:
318
+
319
+ minimize::
320
+
321
+ c @ x
322
+
323
+ such that::
324
+
325
+ A_ub @ x <= b_ub
326
+ A_eq @ x == b_eq
327
+ lb <= x <= ub
328
+
329
+ Note that by default ``lb = 0`` and ``ub = None`` unless specified with
330
+ ``bounds``.
331
+
332
+ Parameters
333
+ ----------
334
+ c : 1-D array
335
+ The coefficients of the linear objective function to be minimized.
336
+ A_ub : 2-D array, optional
337
+ The inequality constraint matrix. Each row of ``A_ub`` specifies the
338
+ coefficients of a linear inequality constraint on ``x``.
339
+ b_ub : 1-D array, optional
340
+ The inequality constraint vector. Each element represents an
341
+ upper bound on the corresponding value of ``A_ub @ x``.
342
+ A_eq : 2-D array, optional
343
+ The equality constraint matrix. Each row of ``A_eq`` specifies the
344
+ coefficients of a linear equality constraint on ``x``.
345
+ b_eq : 1-D array, optional
346
+ The equality constraint vector. Each element of ``A_eq @ x`` must equal
347
+ the corresponding element of ``b_eq``.
348
+ bounds : sequence, optional
349
+ A sequence of ``(min, max)`` pairs for each element in ``x``, defining
350
+ the minimum and maximum values of that decision variable. Use ``None``
351
+ to indicate that there is no bound. By default, bounds are
352
+ ``(0, None)`` (all decision variables are non-negative).
353
+ If a single tuple ``(min, max)`` is provided, then ``min`` and
354
+ ``max`` will serve as bounds for all decision variables.
355
+ method : str
356
+
357
+ This is the method-specific documentation for 'highs-ds'.
358
+ :ref:`'highs' <optimize.linprog-highs>`,
359
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`,
360
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
361
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
362
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy)
363
+ are also available.
364
+
365
+ Options
366
+ -------
367
+ maxiter : int
368
+ The maximum number of iterations to perform in either phase.
369
+ Default is the largest possible value for an ``int`` on the platform.
370
+ disp : bool (default: ``False``)
371
+ Set to ``True`` if indicators of optimization status are to be
372
+ printed to the console during optimization.
373
+ presolve : bool (default: ``True``)
374
+ Presolve attempts to identify trivial infeasibilities,
375
+ identify trivial unboundedness, and simplify the problem before
376
+ sending it to the main solver. It is generally recommended
377
+ to keep the default setting ``True``; set to ``False`` if
378
+ presolve is to be disabled.
379
+ time_limit : float
380
+ The maximum time in seconds allotted to solve the problem;
381
+ default is the largest possible value for a ``double`` on the
382
+ platform.
383
+ dual_feasibility_tolerance : double (default: 1e-07)
384
+ Dual feasibility tolerance for
385
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`.
386
+ primal_feasibility_tolerance : double (default: 1e-07)
387
+ Primal feasibility tolerance for
388
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`.
389
+ simplex_dual_edge_weight_strategy : str (default: None)
390
+ Strategy for simplex dual edge weights. The default, ``None``,
391
+ automatically selects one of the following.
392
+
393
+ ``'dantzig'`` uses Dantzig's original strategy of choosing the most
394
+ negative reduced cost.
395
+
396
+ ``'devex'`` uses the strategy described in [15]_.
397
+
398
+ ``steepest`` uses the exact steepest edge strategy as described in
399
+ [16]_.
400
+
401
+ ``'steepest-devex'`` begins with the exact steepest edge strategy
402
+ until the computation is too costly or inexact and then switches to
403
+ the devex method.
404
+
405
+ Currently, ``None`` always selects ``'steepest-devex'``, but this
406
+ may change as new options become available.
407
+ unknown_options : dict
408
+ Optional arguments not used by this particular solver. If
409
+ ``unknown_options`` is non-empty, a warning is issued listing
410
+ all unused options.
411
+
412
+ Returns
413
+ -------
414
+ res : OptimizeResult
415
+ A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
416
+
417
+ x : 1D array
418
+ The values of the decision variables that minimizes the
419
+ objective function while satisfying the constraints.
420
+ fun : float
421
+ The optimal value of the objective function ``c @ x``.
422
+ slack : 1D array
423
+ The (nominally positive) values of the slack,
424
+ ``b_ub - A_ub @ x``.
425
+ con : 1D array
426
+ The (nominally zero) residuals of the equality constraints,
427
+ ``b_eq - A_eq @ x``.
428
+ success : bool
429
+ ``True`` when the algorithm succeeds in finding an optimal
430
+ solution.
431
+ status : int
432
+ An integer representing the exit status of the algorithm.
433
+
434
+ ``0`` : Optimization terminated successfully.
435
+
436
+ ``1`` : Iteration or time limit reached.
437
+
438
+ ``2`` : Problem appears to be infeasible.
439
+
440
+ ``3`` : Problem appears to be unbounded.
441
+
442
+ ``4`` : The HiGHS solver ran into a problem.
443
+
444
+ message : str
445
+ A string descriptor of the exit status of the algorithm.
446
+ nit : int
447
+ The total number of iterations performed. This includes iterations
448
+ in all phases.
449
+ crossover_nit : int
450
+ This is always ``0`` for the HiGHS simplex method.
451
+ For the HiGHS interior-point method, this is the number of
452
+ primal/dual pushes performed during the crossover routine.
453
+ ineqlin : OptimizeResult
454
+ Solution and sensitivity information corresponding to the
455
+ inequality constraints, `b_ub`. A dictionary consisting of the
456
+ fields:
457
+
458
+ residual : np.ndnarray
459
+ The (nominally positive) values of the slack variables,
460
+ ``b_ub - A_ub @ x``. This quantity is also commonly
461
+ referred to as "slack".
462
+
463
+ marginals : np.ndarray
464
+ The sensitivity (partial derivative) of the objective
465
+ function with respect to the right-hand side of the
466
+ inequality constraints, `b_ub`.
467
+
468
+ eqlin : OptimizeResult
469
+ Solution and sensitivity information corresponding to the
470
+ equality constraints, `b_eq`. A dictionary consisting of the
471
+ fields:
472
+
473
+ residual : np.ndarray
474
+ The (nominally zero) residuals of the equality constraints,
475
+ ``b_eq - A_eq @ x``.
476
+
477
+ marginals : np.ndarray
478
+ The sensitivity (partial derivative) of the objective
479
+ function with respect to the right-hand side of the
480
+ equality constraints, `b_eq`.
481
+
482
+ lower, upper : OptimizeResult
483
+ Solution and sensitivity information corresponding to the
484
+ lower and upper bounds on decision variables, `bounds`.
485
+
486
+ residual : np.ndarray
487
+ The (nominally positive) values of the quantity
488
+ ``x - lb`` (lower) or ``ub - x`` (upper).
489
+
490
+ marginals : np.ndarray
491
+ The sensitivity (partial derivative) of the objective
492
+ function with respect to the lower and upper
493
+ `bounds`.
494
+
495
+ Notes
496
+ -----
497
+
498
+ Method :ref:`'highs-ds' <optimize.linprog-highs-ds>` is a wrapper
499
+ of the C++ high performance dual revised simplex implementation (HSOL)
500
+ [13]_, [14]_. Method :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`
501
+ is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
502
+ **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
503
+ as a simplex solver. Method :ref:`'highs' <optimize.linprog-highs>` chooses
504
+ between the two automatically. For new code involving `linprog`, we
505
+ recommend explicitly choosing one of these three method values instead of
506
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
507
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
508
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy).
509
+
510
+ The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
511
+ `marginals`, or partial derivatives of the objective function with respect
512
+ to the right-hand side of each constraint. These partial derivatives are
513
+ also referred to as "Lagrange multipliers", "dual values", and
514
+ "shadow prices". The sign convention of `marginals` is opposite that
515
+ of Lagrange multipliers produced by many nonlinear solvers.
516
+
517
+ References
518
+ ----------
519
+ .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
520
+ "HiGHS - high performance software for linear optimization."
521
+ https://highs.dev/
522
+ .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
523
+ simplex method." Mathematical Programming Computation, 10 (1),
524
+ 119-142, 2018. DOI: 10.1007/s12532-017-0130-5
525
+ .. [15] Harris, Paula MJ. "Pivot selection methods of the Devex LP code."
526
+ Mathematical programming 5.1 (1973): 1-28.
527
+ .. [16] Goldfarb, Donald, and John Ker Reid. "A practicable steepest-edge
528
+ simplex algorithm." Mathematical Programming 12.1 (1977): 361-371.
529
+ """
530
+ pass
531
+
532
+
533
+ def _linprog_highs_ipm_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
534
+ bounds=None, method='highs-ipm', callback=None,
535
+ maxiter=None, disp=False, presolve=True,
536
+ time_limit=None,
537
+ dual_feasibility_tolerance=None,
538
+ primal_feasibility_tolerance=None,
539
+ ipm_optimality_tolerance=None,
540
+ **unknown_options):
541
+ r"""
542
+ Linear programming: minimize a linear objective function subject to linear
543
+ equality and inequality constraints using the HiGHS interior point solver.
544
+
545
+ Linear programming solves problems of the following form:
546
+
547
+ .. math::
548
+
549
+ \min_x \ & c^T x \\
550
+ \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
551
+ & A_{eq} x = b_{eq},\\
552
+ & l \leq x \leq u ,
553
+
554
+ where :math:`x` is a vector of decision variables; :math:`c`,
555
+ :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
556
+ :math:`A_{ub}` and :math:`A_{eq}` are matrices.
557
+
558
+ Alternatively, that's:
559
+
560
+ minimize::
561
+
562
+ c @ x
563
+
564
+ such that::
565
+
566
+ A_ub @ x <= b_ub
567
+ A_eq @ x == b_eq
568
+ lb <= x <= ub
569
+
570
+ Note that by default ``lb = 0`` and ``ub = None`` unless specified with
571
+ ``bounds``.
572
+
573
+ Parameters
574
+ ----------
575
+ c : 1-D array
576
+ The coefficients of the linear objective function to be minimized.
577
+ A_ub : 2-D array, optional
578
+ The inequality constraint matrix. Each row of ``A_ub`` specifies the
579
+ coefficients of a linear inequality constraint on ``x``.
580
+ b_ub : 1-D array, optional
581
+ The inequality constraint vector. Each element represents an
582
+ upper bound on the corresponding value of ``A_ub @ x``.
583
+ A_eq : 2-D array, optional
584
+ The equality constraint matrix. Each row of ``A_eq`` specifies the
585
+ coefficients of a linear equality constraint on ``x``.
586
+ b_eq : 1-D array, optional
587
+ The equality constraint vector. Each element of ``A_eq @ x`` must equal
588
+ the corresponding element of ``b_eq``.
589
+ bounds : sequence, optional
590
+ A sequence of ``(min, max)`` pairs for each element in ``x``, defining
591
+ the minimum and maximum values of that decision variable. Use ``None``
592
+ to indicate that there is no bound. By default, bounds are
593
+ ``(0, None)`` (all decision variables are non-negative).
594
+ If a single tuple ``(min, max)`` is provided, then ``min`` and
595
+ ``max`` will serve as bounds for all decision variables.
596
+ method : str
597
+
598
+ This is the method-specific documentation for 'highs-ipm'.
599
+ :ref:`'highs-ipm' <optimize.linprog-highs>`,
600
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`,
601
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
602
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
603
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy)
604
+ are also available.
605
+
606
+ Options
607
+ -------
608
+ maxiter : int
609
+ The maximum number of iterations to perform in either phase.
610
+ For :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`, this does not
611
+ include the number of crossover iterations. Default is the largest
612
+ possible value for an ``int`` on the platform.
613
+ disp : bool (default: ``False``)
614
+ Set to ``True`` if indicators of optimization status are to be
615
+ printed to the console during optimization.
616
+ presolve : bool (default: ``True``)
617
+ Presolve attempts to identify trivial infeasibilities,
618
+ identify trivial unboundedness, and simplify the problem before
619
+ sending it to the main solver. It is generally recommended
620
+ to keep the default setting ``True``; set to ``False`` if
621
+ presolve is to be disabled.
622
+ time_limit : float
623
+ The maximum time in seconds allotted to solve the problem;
624
+ default is the largest possible value for a ``double`` on the
625
+ platform.
626
+ dual_feasibility_tolerance : double (default: 1e-07)
627
+ The minimum of this and ``primal_feasibility_tolerance``
628
+ is used for the feasibility tolerance of
629
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
630
+ primal_feasibility_tolerance : double (default: 1e-07)
631
+ The minimum of this and ``dual_feasibility_tolerance``
632
+ is used for the feasibility tolerance of
633
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
634
+ ipm_optimality_tolerance : double (default: ``1e-08``)
635
+ Optimality tolerance for
636
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`.
637
+ Minimum allowable value is 1e-12.
638
+ unknown_options : dict
639
+ Optional arguments not used by this particular solver. If
640
+ ``unknown_options`` is non-empty, a warning is issued listing
641
+ all unused options.
642
+
643
+ Returns
644
+ -------
645
+ res : OptimizeResult
646
+ A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
647
+
648
+ x : 1D array
649
+ The values of the decision variables that minimizes the
650
+ objective function while satisfying the constraints.
651
+ fun : float
652
+ The optimal value of the objective function ``c @ x``.
653
+ slack : 1D array
654
+ The (nominally positive) values of the slack,
655
+ ``b_ub - A_ub @ x``.
656
+ con : 1D array
657
+ The (nominally zero) residuals of the equality constraints,
658
+ ``b_eq - A_eq @ x``.
659
+ success : bool
660
+ ``True`` when the algorithm succeeds in finding an optimal
661
+ solution.
662
+ status : int
663
+ An integer representing the exit status of the algorithm.
664
+
665
+ ``0`` : Optimization terminated successfully.
666
+
667
+ ``1`` : Iteration or time limit reached.
668
+
669
+ ``2`` : Problem appears to be infeasible.
670
+
671
+ ``3`` : Problem appears to be unbounded.
672
+
673
+ ``4`` : The HiGHS solver ran into a problem.
674
+
675
+ message : str
676
+ A string descriptor of the exit status of the algorithm.
677
+ nit : int
678
+ The total number of iterations performed.
679
+ For the HiGHS interior-point method, this does not include
680
+ crossover iterations.
681
+ crossover_nit : int
682
+ The number of primal/dual pushes performed during the
683
+ crossover routine for the HiGHS interior-point method.
684
+ ineqlin : OptimizeResult
685
+ Solution and sensitivity information corresponding to the
686
+ inequality constraints, `b_ub`. A dictionary consisting of the
687
+ fields:
688
+
689
+ residual : np.ndnarray
690
+ The (nominally positive) values of the slack variables,
691
+ ``b_ub - A_ub @ x``. This quantity is also commonly
692
+ referred to as "slack".
693
+
694
+ marginals : np.ndarray
695
+ The sensitivity (partial derivative) of the objective
696
+ function with respect to the right-hand side of the
697
+ inequality constraints, `b_ub`.
698
+
699
+ eqlin : OptimizeResult
700
+ Solution and sensitivity information corresponding to the
701
+ equality constraints, `b_eq`. A dictionary consisting of the
702
+ fields:
703
+
704
+ residual : np.ndarray
705
+ The (nominally zero) residuals of the equality constraints,
706
+ ``b_eq - A_eq @ x``.
707
+
708
+ marginals : np.ndarray
709
+ The sensitivity (partial derivative) of the objective
710
+ function with respect to the right-hand side of the
711
+ equality constraints, `b_eq`.
712
+
713
+ lower, upper : OptimizeResult
714
+ Solution and sensitivity information corresponding to the
715
+ lower and upper bounds on decision variables, `bounds`.
716
+
717
+ residual : np.ndarray
718
+ The (nominally positive) values of the quantity
719
+ ``x - lb`` (lower) or ``ub - x`` (upper).
720
+
721
+ marginals : np.ndarray
722
+ The sensitivity (partial derivative) of the objective
723
+ function with respect to the lower and upper
724
+ `bounds`.
725
+
726
+ Notes
727
+ -----
728
+
729
+ Method :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`
730
+ is a wrapper of a C++ implementation of an **i**\ nterior-\ **p**\ oint
731
+ **m**\ ethod [13]_; it features a crossover routine, so it is as accurate
732
+ as a simplex solver.
733
+ Method :ref:`'highs-ds' <optimize.linprog-highs-ds>` is a wrapper
734
+ of the C++ high performance dual revised simplex implementation (HSOL)
735
+ [13]_, [14]_. Method :ref:`'highs' <optimize.linprog-highs>` chooses
736
+ between the two automatically. For new code involving `linprog`, we
737
+ recommend explicitly choosing one of these three method values instead of
738
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
739
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
740
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy).
741
+
742
+ The result fields `ineqlin`, `eqlin`, `lower`, and `upper` all contain
743
+ `marginals`, or partial derivatives of the objective function with respect
744
+ to the right-hand side of each constraint. These partial derivatives are
745
+ also referred to as "Lagrange multipliers", "dual values", and
746
+ "shadow prices". The sign convention of `marginals` is opposite that
747
+ of Lagrange multipliers produced by many nonlinear solvers.
748
+
749
+ References
750
+ ----------
751
+ .. [13] Huangfu, Q., Galabova, I., Feldmeier, M., and Hall, J. A. J.
752
+ "HiGHS - high performance software for linear optimization."
753
+ https://highs.dev/
754
+ .. [14] Huangfu, Q. and Hall, J. A. J. "Parallelizing the dual revised
755
+ simplex method." Mathematical Programming Computation, 10 (1),
756
+ 119-142, 2018. DOI: 10.1007/s12532-017-0130-5
757
+ """
758
+ pass
759
+
760
+
761
+ def _linprog_ip_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
762
+ bounds=None, method='interior-point', callback=None,
763
+ maxiter=1000, disp=False, presolve=True,
764
+ tol=1e-8, autoscale=False, rr=True,
765
+ alpha0=.99995, beta=0.1, sparse=False,
766
+ lstsq=False, sym_pos=True, cholesky=True, pc=True,
767
+ ip=False, permc_spec='MMD_AT_PLUS_A', **unknown_options):
768
+ r"""
769
+ Linear programming: minimize a linear objective function subject to linear
770
+ equality and inequality constraints using the interior-point method of
771
+ [4]_.
772
+
773
+ .. deprecated:: 1.9.0
774
+ `method='interior-point'` will be removed in SciPy 1.11.0.
775
+ It is replaced by `method='highs'` because the latter is
776
+ faster and more robust.
777
+
778
+ Linear programming solves problems of the following form:
779
+
780
+ .. math::
781
+
782
+ \min_x \ & c^T x \\
783
+ \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
784
+ & A_{eq} x = b_{eq},\\
785
+ & l \leq x \leq u ,
786
+
787
+ where :math:`x` is a vector of decision variables; :math:`c`,
788
+ :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
789
+ :math:`A_{ub}` and :math:`A_{eq}` are matrices.
790
+
791
+ Alternatively, that's:
792
+
793
+ minimize::
794
+
795
+ c @ x
796
+
797
+ such that::
798
+
799
+ A_ub @ x <= b_ub
800
+ A_eq @ x == b_eq
801
+ lb <= x <= ub
802
+
803
+ Note that by default ``lb = 0`` and ``ub = None`` unless specified with
804
+ ``bounds``.
805
+
806
+ Parameters
807
+ ----------
808
+ c : 1-D array
809
+ The coefficients of the linear objective function to be minimized.
810
+ A_ub : 2-D array, optional
811
+ The inequality constraint matrix. Each row of ``A_ub`` specifies the
812
+ coefficients of a linear inequality constraint on ``x``.
813
+ b_ub : 1-D array, optional
814
+ The inequality constraint vector. Each element represents an
815
+ upper bound on the corresponding value of ``A_ub @ x``.
816
+ A_eq : 2-D array, optional
817
+ The equality constraint matrix. Each row of ``A_eq`` specifies the
818
+ coefficients of a linear equality constraint on ``x``.
819
+ b_eq : 1-D array, optional
820
+ The equality constraint vector. Each element of ``A_eq @ x`` must equal
821
+ the corresponding element of ``b_eq``.
822
+ bounds : sequence, optional
823
+ A sequence of ``(min, max)`` pairs for each element in ``x``, defining
824
+ the minimum and maximum values of that decision variable. Use ``None``
825
+ to indicate that there is no bound. By default, bounds are
826
+ ``(0, None)`` (all decision variables are non-negative).
827
+ If a single tuple ``(min, max)`` is provided, then ``min`` and
828
+ ``max`` will serve as bounds for all decision variables.
829
+ method : str
830
+ This is the method-specific documentation for 'interior-point'.
831
+ :ref:`'highs' <optimize.linprog-highs>`,
832
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`,
833
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`,
834
+ :ref:`'revised simplex' <optimize.linprog-revised_simplex>`, and
835
+ :ref:`'simplex' <optimize.linprog-simplex>` (legacy)
836
+ are also available.
837
+ callback : callable, optional
838
+ Callback function to be executed once per iteration.
839
+
840
+ Options
841
+ -------
842
+ maxiter : int (default: 1000)
843
+ The maximum number of iterations of the algorithm.
844
+ disp : bool (default: False)
845
+ Set to ``True`` if indicators of optimization status are to be printed
846
+ to the console each iteration.
847
+ presolve : bool (default: True)
848
+ Presolve attempts to identify trivial infeasibilities,
849
+ identify trivial unboundedness, and simplify the problem before
850
+ sending it to the main solver. It is generally recommended
851
+ to keep the default setting ``True``; set to ``False`` if
852
+ presolve is to be disabled.
853
+ tol : float (default: 1e-8)
854
+ Termination tolerance to be used for all termination criteria;
855
+ see [4]_ Section 4.5.
856
+ autoscale : bool (default: False)
857
+ Set to ``True`` to automatically perform equilibration.
858
+ Consider using this option if the numerical values in the
859
+ constraints are separated by several orders of magnitude.
860
+ rr : bool (default: True)
861
+ Set to ``False`` to disable automatic redundancy removal.
862
+ alpha0 : float (default: 0.99995)
863
+ The maximal step size for Mehrota's predictor-corrector search
864
+ direction; see :math:`\beta_{3}` of [4]_ Table 8.1.
865
+ beta : float (default: 0.1)
866
+ The desired reduction of the path parameter :math:`\mu` (see [6]_)
867
+ when Mehrota's predictor-corrector is not in use (uncommon).
868
+ sparse : bool (default: False)
869
+ Set to ``True`` if the problem is to be treated as sparse after
870
+ presolve. If either ``A_eq`` or ``A_ub`` is sparse,
871
+ this option will automatically be set ``True``, and the problem
872
+ will be treated as sparse even during presolve. If your constraint
873
+ matrices contain mostly zeros and the problem is not very small (less
874
+ than about 100 constraints or variables), consider setting ``True``
875
+ or providing ``A_eq`` and ``A_ub`` as sparse arrays.
876
+ lstsq : bool (default: ``False``)
877
+ Set to ``True`` if the problem is expected to be very poorly
878
+ conditioned. This should always be left ``False`` unless severe
879
+ numerical difficulties are encountered. Leave this at the default
880
+ unless you receive a warning message suggesting otherwise.
881
+ sym_pos : bool (default: True)
882
+ Leave ``True`` if the problem is expected to yield a well conditioned
883
+ symmetric positive definite normal equation matrix
884
+ (almost always). Leave this at the default unless you receive
885
+ a warning message suggesting otherwise.
886
+ cholesky : bool (default: True)
887
+ Set to ``True`` if the normal equations are to be solved by explicit
888
+ Cholesky decomposition followed by explicit forward/backward
889
+ substitution. This is typically faster for problems
890
+ that are numerically well-behaved.
891
+ pc : bool (default: True)
892
+ Leave ``True`` if the predictor-corrector method of Mehrota is to be
893
+ used. This is almost always (if not always) beneficial.
894
+ ip : bool (default: False)
895
+ Set to ``True`` if the improved initial point suggestion due to [4]_
896
+ Section 4.3 is desired. Whether this is beneficial or not
897
+ depends on the problem.
898
+ permc_spec : str (default: 'MMD_AT_PLUS_A')
899
+ (Has effect only with ``sparse = True``, ``lstsq = False``, ``sym_pos =
900
+ True``, and no SuiteSparse.)
901
+ A matrix is factorized in each iteration of the algorithm.
902
+ This option specifies how to permute the columns of the matrix for
903
+ sparsity preservation. Acceptable values are:
904
+
905
+ - ``NATURAL``: natural ordering.
906
+ - ``MMD_ATA``: minimum degree ordering on the structure of A^T A.
907
+ - ``MMD_AT_PLUS_A``: minimum degree ordering on the structure of A^T+A.
908
+ - ``COLAMD``: approximate minimum degree column ordering.
909
+
910
+ This option can impact the convergence of the
911
+ interior point algorithm; test different values to determine which
912
+ performs best for your problem. For more information, refer to
913
+ ``scipy.sparse.linalg.splu``.
914
+ unknown_options : dict
915
+ Optional arguments not used by this particular solver. If
916
+ `unknown_options` is non-empty a warning is issued listing all
917
+ unused options.
918
+
919
+ Returns
920
+ -------
921
+ res : OptimizeResult
922
+ A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
923
+
924
+ x : 1-D array
925
+ The values of the decision variables that minimizes the
926
+ objective function while satisfying the constraints.
927
+ fun : float
928
+ The optimal value of the objective function ``c @ x``.
929
+ slack : 1-D array
930
+ The (nominally positive) values of the slack variables,
931
+ ``b_ub - A_ub @ x``.
932
+ con : 1-D array
933
+ The (nominally zero) residuals of the equality constraints,
934
+ ``b_eq - A_eq @ x``.
935
+ success : bool
936
+ ``True`` when the algorithm succeeds in finding an optimal
937
+ solution.
938
+ status : int
939
+ An integer representing the exit status of the algorithm.
940
+
941
+ ``0`` : Optimization terminated successfully.
942
+
943
+ ``1`` : Iteration limit reached.
944
+
945
+ ``2`` : Problem appears to be infeasible.
946
+
947
+ ``3`` : Problem appears to be unbounded.
948
+
949
+ ``4`` : Numerical difficulties encountered.
950
+
951
+ message : str
952
+ A string descriptor of the exit status of the algorithm.
953
+ nit : int
954
+ The total number of iterations performed in all phases.
955
+
956
+
957
+ Notes
958
+ -----
959
+ This method implements the algorithm outlined in [4]_ with ideas from [8]_
960
+ and a structure inspired by the simpler methods of [6]_.
961
+
962
+ The primal-dual path following method begins with initial 'guesses' of
963
+ the primal and dual variables of the standard form problem and iteratively
964
+ attempts to solve the (nonlinear) Karush-Kuhn-Tucker conditions for the
965
+ problem with a gradually reduced logarithmic barrier term added to the
966
+ objective. This particular implementation uses a homogeneous self-dual
967
+ formulation, which provides certificates of infeasibility or unboundedness
968
+ where applicable.
969
+
970
+ The default initial point for the primal and dual variables is that
971
+ defined in [4]_ Section 4.4 Equation 8.22. Optionally (by setting initial
972
+ point option ``ip=True``), an alternate (potentially improved) starting
973
+ point can be calculated according to the additional recommendations of
974
+ [4]_ Section 4.4.
975
+
976
+ A search direction is calculated using the predictor-corrector method
977
+ (single correction) proposed by Mehrota and detailed in [4]_ Section 4.1.
978
+ (A potential improvement would be to implement the method of multiple
979
+ corrections described in [4]_ Section 4.2.) In practice, this is
980
+ accomplished by solving the normal equations, [4]_ Section 5.1 Equations
981
+ 8.31 and 8.32, derived from the Newton equations [4]_ Section 5 Equations
982
+ 8.25 (compare to [4]_ Section 4 Equations 8.6-8.8). The advantage of
983
+ solving the normal equations rather than 8.25 directly is that the
984
+ matrices involved are symmetric positive definite, so Cholesky
985
+ decomposition can be used rather than the more expensive LU factorization.
986
+
987
+ With default options, the solver used to perform the factorization depends
988
+ on third-party software availability and the conditioning of the problem.
989
+
990
+ For dense problems, solvers are tried in the following order:
991
+
992
+ 1. ``scipy.linalg.cho_factor``
993
+
994
+ 2. ``scipy.linalg.solve`` with option ``sym_pos=True``
995
+
996
+ 3. ``scipy.linalg.solve`` with option ``sym_pos=False``
997
+
998
+ 4. ``scipy.linalg.lstsq``
999
+
1000
+ For sparse problems:
1001
+
1002
+ 1. ``sksparse.cholmod.cholesky`` (if scikit-sparse and SuiteSparse are
1003
+ installed)
1004
+
1005
+ 2. ``scipy.sparse.linalg.factorized`` (if scikit-umfpack and SuiteSparse
1006
+ are installed)
1007
+
1008
+ 3. ``scipy.sparse.linalg.splu`` (which uses SuperLU distributed with SciPy)
1009
+
1010
+ 4. ``scipy.sparse.linalg.lsqr``
1011
+
1012
+ If the solver fails for any reason, successively more robust (but slower)
1013
+ solvers are attempted in the order indicated. Attempting, failing, and
1014
+ re-starting factorization can be time consuming, so if the problem is
1015
+ numerically challenging, options can be set to bypass solvers that are
1016
+ failing. Setting ``cholesky=False`` skips to solver 2,
1017
+ ``sym_pos=False`` skips to solver 3, and ``lstsq=True`` skips
1018
+ to solver 4 for both sparse and dense problems.
1019
+
1020
+ Potential improvements for combating issues associated with dense
1021
+ columns in otherwise sparse problems are outlined in [4]_ Section 5.3 and
1022
+ [10]_ Section 4.1-4.2; the latter also discusses the alleviation of
1023
+ accuracy issues associated with the substitution approach to free
1024
+ variables.
1025
+
1026
+ After calculating the search direction, the maximum possible step size
1027
+ that does not activate the non-negativity constraints is calculated, and
1028
+ the smaller of this step size and unity is applied (as in [4]_ Section
1029
+ 4.1.) [4]_ Section 4.3 suggests improvements for choosing the step size.
1030
+
1031
+ The new point is tested according to the termination conditions of [4]_
1032
+ Section 4.5. The same tolerance, which can be set using the ``tol`` option,
1033
+ is used for all checks. (A potential improvement would be to expose
1034
+ the different tolerances to be set independently.) If optimality,
1035
+ unboundedness, or infeasibility is detected, the solve procedure
1036
+ terminates; otherwise it repeats.
1037
+
1038
+ Whereas the top level ``linprog`` module expects a problem of form:
1039
+
1040
+ Minimize::
1041
+
1042
+ c @ x
1043
+
1044
+ Subject to::
1045
+
1046
+ A_ub @ x <= b_ub
1047
+ A_eq @ x == b_eq
1048
+ lb <= x <= ub
1049
+
1050
+ where ``lb = 0`` and ``ub = None`` unless set in ``bounds``. The problem
1051
+ is automatically converted to the form:
1052
+
1053
+ Minimize::
1054
+
1055
+ c @ x
1056
+
1057
+ Subject to::
1058
+
1059
+ A @ x == b
1060
+ x >= 0
1061
+
1062
+ for solution. That is, the original problem contains equality, upper-bound
1063
+ and variable constraints whereas the method specific solver requires
1064
+ equality constraints and variable non-negativity. ``linprog`` converts the
1065
+ original problem to standard form by converting the simple bounds to upper
1066
+ bound constraints, introducing non-negative slack variables for inequality
1067
+ constraints, and expressing unbounded variables as the difference between
1068
+ two non-negative variables. The problem is converted back to the original
1069
+ form before results are reported.
1070
+
1071
+ References
1072
+ ----------
1073
+ .. [4] Andersen, Erling D., and Knud D. Andersen. "The MOSEK interior point
1074
+ optimizer for linear programming: an implementation of the
1075
+ homogeneous algorithm." High performance optimization. Springer US,
1076
+ 2000. 197-232.
1077
+ .. [6] Freund, Robert M. "Primal-Dual Interior-Point Methods for Linear
1078
+ Programming based on Newton's Method." Unpublished Course Notes,
1079
+ March 2004. Available 2/25/2017 at
1080
+ https://ocw.mit.edu/courses/sloan-school-of-management/15-084j-nonlinear-programming-spring-2004/lecture-notes/lec14_int_pt_mthd.pdf
1081
+ .. [8] Andersen, Erling D., and Knud D. Andersen. "Presolving in linear
1082
+ programming." Mathematical Programming 71.2 (1995): 221-245.
1083
+ .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
1084
+ programming." Athena Scientific 1 (1997): 997.
1085
+ .. [10] Andersen, Erling D., et al. Implementation of interior point
1086
+ methods for large scale linear programming. HEC/Universite de
1087
+ Geneve, 1996.
1088
+ """
1089
+ pass
1090
+
1091
+
1092
+ def _linprog_rs_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
1093
+ bounds=None, method='interior-point', callback=None,
1094
+ x0=None, maxiter=5000, disp=False, presolve=True,
1095
+ tol=1e-12, autoscale=False, rr=True, maxupdate=10,
1096
+ mast=False, pivot="mrc", **unknown_options):
1097
+ r"""
1098
+ Linear programming: minimize a linear objective function subject to linear
1099
+ equality and inequality constraints using the revised simplex method.
1100
+
1101
+ .. deprecated:: 1.9.0
1102
+ `method='revised simplex'` will be removed in SciPy 1.11.0.
1103
+ It is replaced by `method='highs'` because the latter is
1104
+ faster and more robust.
1105
+
1106
+ Linear programming solves problems of the following form:
1107
+
1108
+ .. math::
1109
+
1110
+ \min_x \ & c^T x \\
1111
+ \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
1112
+ & A_{eq} x = b_{eq},\\
1113
+ & l \leq x \leq u ,
1114
+
1115
+ where :math:`x` is a vector of decision variables; :math:`c`,
1116
+ :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
1117
+ :math:`A_{ub}` and :math:`A_{eq}` are matrices.
1118
+
1119
+ Alternatively, that's:
1120
+
1121
+ minimize::
1122
+
1123
+ c @ x
1124
+
1125
+ such that::
1126
+
1127
+ A_ub @ x <= b_ub
1128
+ A_eq @ x == b_eq
1129
+ lb <= x <= ub
1130
+
1131
+ Note that by default ``lb = 0`` and ``ub = None`` unless specified with
1132
+ ``bounds``.
1133
+
1134
+ Parameters
1135
+ ----------
1136
+ c : 1-D array
1137
+ The coefficients of the linear objective function to be minimized.
1138
+ A_ub : 2-D array, optional
1139
+ The inequality constraint matrix. Each row of ``A_ub`` specifies the
1140
+ coefficients of a linear inequality constraint on ``x``.
1141
+ b_ub : 1-D array, optional
1142
+ The inequality constraint vector. Each element represents an
1143
+ upper bound on the corresponding value of ``A_ub @ x``.
1144
+ A_eq : 2-D array, optional
1145
+ The equality constraint matrix. Each row of ``A_eq`` specifies the
1146
+ coefficients of a linear equality constraint on ``x``.
1147
+ b_eq : 1-D array, optional
1148
+ The equality constraint vector. Each element of ``A_eq @ x`` must equal
1149
+ the corresponding element of ``b_eq``.
1150
+ bounds : sequence, optional
1151
+ A sequence of ``(min, max)`` pairs for each element in ``x``, defining
1152
+ the minimum and maximum values of that decision variable. Use ``None``
1153
+ to indicate that there is no bound. By default, bounds are
1154
+ ``(0, None)`` (all decision variables are non-negative).
1155
+ If a single tuple ``(min, max)`` is provided, then ``min`` and
1156
+ ``max`` will serve as bounds for all decision variables.
1157
+ method : str
1158
+ This is the method-specific documentation for 'revised simplex'.
1159
+ :ref:`'highs' <optimize.linprog-highs>`,
1160
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`,
1161
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`,
1162
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
1163
+ and :ref:`'simplex' <optimize.linprog-simplex>` (legacy)
1164
+ are also available.
1165
+ callback : callable, optional
1166
+ Callback function to be executed once per iteration.
1167
+ x0 : 1-D array, optional
1168
+ Guess values of the decision variables, which will be refined by
1169
+ the optimization algorithm. This argument is currently used only by the
1170
+ 'revised simplex' method, and can only be used if `x0` represents a
1171
+ basic feasible solution.
1172
+
1173
+ Options
1174
+ -------
1175
+ maxiter : int (default: 5000)
1176
+ The maximum number of iterations to perform in either phase.
1177
+ disp : bool (default: False)
1178
+ Set to ``True`` if indicators of optimization status are to be printed
1179
+ to the console each iteration.
1180
+ presolve : bool (default: True)
1181
+ Presolve attempts to identify trivial infeasibilities,
1182
+ identify trivial unboundedness, and simplify the problem before
1183
+ sending it to the main solver. It is generally recommended
1184
+ to keep the default setting ``True``; set to ``False`` if
1185
+ presolve is to be disabled.
1186
+ tol : float (default: 1e-12)
1187
+ The tolerance which determines when a solution is "close enough" to
1188
+ zero in Phase 1 to be considered a basic feasible solution or close
1189
+ enough to positive to serve as an optimal solution.
1190
+ autoscale : bool (default: False)
1191
+ Set to ``True`` to automatically perform equilibration.
1192
+ Consider using this option if the numerical values in the
1193
+ constraints are separated by several orders of magnitude.
1194
+ rr : bool (default: True)
1195
+ Set to ``False`` to disable automatic redundancy removal.
1196
+ maxupdate : int (default: 10)
1197
+ The maximum number of updates performed on the LU factorization.
1198
+ After this many updates is reached, the basis matrix is factorized
1199
+ from scratch.
1200
+ mast : bool (default: False)
1201
+ Minimize Amortized Solve Time. If enabled, the average time to solve
1202
+ a linear system using the basis factorization is measured. Typically,
1203
+ the average solve time will decrease with each successive solve after
1204
+ initial factorization, as factorization takes much more time than the
1205
+ solve operation (and updates). Eventually, however, the updated
1206
+ factorization becomes sufficiently complex that the average solve time
1207
+ begins to increase. When this is detected, the basis is refactorized
1208
+ from scratch. Enable this option to maximize speed at the risk of
1209
+ nondeterministic behavior. Ignored if ``maxupdate`` is 0.
1210
+ pivot : "mrc" or "bland" (default: "mrc")
1211
+ Pivot rule: Minimum Reduced Cost ("mrc") or Bland's rule ("bland").
1212
+ Choose Bland's rule if iteration limit is reached and cycling is
1213
+ suspected.
1214
+ unknown_options : dict
1215
+ Optional arguments not used by this particular solver. If
1216
+ `unknown_options` is non-empty a warning is issued listing all
1217
+ unused options.
1218
+
1219
+ Returns
1220
+ -------
1221
+ res : OptimizeResult
1222
+ A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
1223
+
1224
+ x : 1-D array
1225
+ The values of the decision variables that minimizes the
1226
+ objective function while satisfying the constraints.
1227
+ fun : float
1228
+ The optimal value of the objective function ``c @ x``.
1229
+ slack : 1-D array
1230
+ The (nominally positive) values of the slack variables,
1231
+ ``b_ub - A_ub @ x``.
1232
+ con : 1-D array
1233
+ The (nominally zero) residuals of the equality constraints,
1234
+ ``b_eq - A_eq @ x``.
1235
+ success : bool
1236
+ ``True`` when the algorithm succeeds in finding an optimal
1237
+ solution.
1238
+ status : int
1239
+ An integer representing the exit status of the algorithm.
1240
+
1241
+ ``0`` : Optimization terminated successfully.
1242
+
1243
+ ``1`` : Iteration limit reached.
1244
+
1245
+ ``2`` : Problem appears to be infeasible.
1246
+
1247
+ ``3`` : Problem appears to be unbounded.
1248
+
1249
+ ``4`` : Numerical difficulties encountered.
1250
+
1251
+ ``5`` : Problem has no constraints; turn presolve on.
1252
+
1253
+ ``6`` : Invalid guess provided.
1254
+
1255
+ message : str
1256
+ A string descriptor of the exit status of the algorithm.
1257
+ nit : int
1258
+ The total number of iterations performed in all phases.
1259
+
1260
+
1261
+ Notes
1262
+ -----
1263
+ Method *revised simplex* uses the revised simplex method as described in
1264
+ [9]_, except that a factorization [11]_ of the basis matrix, rather than
1265
+ its inverse, is efficiently maintained and used to solve the linear systems
1266
+ at each iteration of the algorithm.
1267
+
1268
+ References
1269
+ ----------
1270
+ .. [9] Bertsimas, Dimitris, and J. Tsitsiklis. "Introduction to linear
1271
+ programming." Athena Scientific 1 (1997): 997.
1272
+ .. [11] Bartels, Richard H. "A stabilization of the simplex method."
1273
+ Journal in Numerische Mathematik 16.5 (1971): 414-434.
1274
+ """
1275
+ pass
1276
+
1277
+
1278
+ def _linprog_simplex_doc(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
1279
+ bounds=None, method='interior-point', callback=None,
1280
+ maxiter=5000, disp=False, presolve=True,
1281
+ tol=1e-12, autoscale=False, rr=True, bland=False,
1282
+ **unknown_options):
1283
+ r"""
1284
+ Linear programming: minimize a linear objective function subject to linear
1285
+ equality and inequality constraints using the tableau-based simplex method.
1286
+
1287
+ .. deprecated:: 1.9.0
1288
+ `method='simplex'` will be removed in SciPy 1.11.0.
1289
+ It is replaced by `method='highs'` because the latter is
1290
+ faster and more robust.
1291
+
1292
+ Linear programming solves problems of the following form:
1293
+
1294
+ .. math::
1295
+
1296
+ \min_x \ & c^T x \\
1297
+ \mbox{such that} \ & A_{ub} x \leq b_{ub},\\
1298
+ & A_{eq} x = b_{eq},\\
1299
+ & l \leq x \leq u ,
1300
+
1301
+ where :math:`x` is a vector of decision variables; :math:`c`,
1302
+ :math:`b_{ub}`, :math:`b_{eq}`, :math:`l`, and :math:`u` are vectors; and
1303
+ :math:`A_{ub}` and :math:`A_{eq}` are matrices.
1304
+
1305
+ Alternatively, that's:
1306
+
1307
+ minimize::
1308
+
1309
+ c @ x
1310
+
1311
+ such that::
1312
+
1313
+ A_ub @ x <= b_ub
1314
+ A_eq @ x == b_eq
1315
+ lb <= x <= ub
1316
+
1317
+ Note that by default ``lb = 0`` and ``ub = None`` unless specified with
1318
+ ``bounds``.
1319
+
1320
+ Parameters
1321
+ ----------
1322
+ c : 1-D array
1323
+ The coefficients of the linear objective function to be minimized.
1324
+ A_ub : 2-D array, optional
1325
+ The inequality constraint matrix. Each row of ``A_ub`` specifies the
1326
+ coefficients of a linear inequality constraint on ``x``.
1327
+ b_ub : 1-D array, optional
1328
+ The inequality constraint vector. Each element represents an
1329
+ upper bound on the corresponding value of ``A_ub @ x``.
1330
+ A_eq : 2-D array, optional
1331
+ The equality constraint matrix. Each row of ``A_eq`` specifies the
1332
+ coefficients of a linear equality constraint on ``x``.
1333
+ b_eq : 1-D array, optional
1334
+ The equality constraint vector. Each element of ``A_eq @ x`` must equal
1335
+ the corresponding element of ``b_eq``.
1336
+ bounds : sequence, optional
1337
+ A sequence of ``(min, max)`` pairs for each element in ``x``, defining
1338
+ the minimum and maximum values of that decision variable. Use ``None``
1339
+ to indicate that there is no bound. By default, bounds are
1340
+ ``(0, None)`` (all decision variables are non-negative).
1341
+ If a single tuple ``(min, max)`` is provided, then ``min`` and
1342
+ ``max`` will serve as bounds for all decision variables.
1343
+ method : str
1344
+ This is the method-specific documentation for 'simplex'.
1345
+ :ref:`'highs' <optimize.linprog-highs>`,
1346
+ :ref:`'highs-ds' <optimize.linprog-highs-ds>`,
1347
+ :ref:`'highs-ipm' <optimize.linprog-highs-ipm>`,
1348
+ :ref:`'interior-point' <optimize.linprog-interior-point>` (default),
1349
+ and :ref:`'revised simplex' <optimize.linprog-revised_simplex>`
1350
+ are also available.
1351
+ callback : callable, optional
1352
+ Callback function to be executed once per iteration.
1353
+
1354
+ Options
1355
+ -------
1356
+ maxiter : int (default: 5000)
1357
+ The maximum number of iterations to perform in either phase.
1358
+ disp : bool (default: False)
1359
+ Set to ``True`` if indicators of optimization status are to be printed
1360
+ to the console each iteration.
1361
+ presolve : bool (default: True)
1362
+ Presolve attempts to identify trivial infeasibilities,
1363
+ identify trivial unboundedness, and simplify the problem before
1364
+ sending it to the main solver. It is generally recommended
1365
+ to keep the default setting ``True``; set to ``False`` if
1366
+ presolve is to be disabled.
1367
+ tol : float (default: 1e-12)
1368
+ The tolerance which determines when a solution is "close enough" to
1369
+ zero in Phase 1 to be considered a basic feasible solution or close
1370
+ enough to positive to serve as an optimal solution.
1371
+ autoscale : bool (default: False)
1372
+ Set to ``True`` to automatically perform equilibration.
1373
+ Consider using this option if the numerical values in the
1374
+ constraints are separated by several orders of magnitude.
1375
+ rr : bool (default: True)
1376
+ Set to ``False`` to disable automatic redundancy removal.
1377
+ bland : bool
1378
+ If True, use Bland's anti-cycling rule [3]_ to choose pivots to
1379
+ prevent cycling. If False, choose pivots which should lead to a
1380
+ converged solution more quickly. The latter method is subject to
1381
+ cycling (non-convergence) in rare instances.
1382
+ unknown_options : dict
1383
+ Optional arguments not used by this particular solver. If
1384
+ `unknown_options` is non-empty a warning is issued listing all
1385
+ unused options.
1386
+
1387
+ Returns
1388
+ -------
1389
+ res : OptimizeResult
1390
+ A :class:`scipy.optimize.OptimizeResult` consisting of the fields:
1391
+
1392
+ x : 1-D array
1393
+ The values of the decision variables that minimizes the
1394
+ objective function while satisfying the constraints.
1395
+ fun : float
1396
+ The optimal value of the objective function ``c @ x``.
1397
+ slack : 1-D array
1398
+ The (nominally positive) values of the slack variables,
1399
+ ``b_ub - A_ub @ x``.
1400
+ con : 1-D array
1401
+ The (nominally zero) residuals of the equality constraints,
1402
+ ``b_eq - A_eq @ x``.
1403
+ success : bool
1404
+ ``True`` when the algorithm succeeds in finding an optimal
1405
+ solution.
1406
+ status : int
1407
+ An integer representing the exit status of the algorithm.
1408
+
1409
+ ``0`` : Optimization terminated successfully.
1410
+
1411
+ ``1`` : Iteration limit reached.
1412
+
1413
+ ``2`` : Problem appears to be infeasible.
1414
+
1415
+ ``3`` : Problem appears to be unbounded.
1416
+
1417
+ ``4`` : Numerical difficulties encountered.
1418
+
1419
+ message : str
1420
+ A string descriptor of the exit status of the algorithm.
1421
+ nit : int
1422
+ The total number of iterations performed in all phases.
1423
+
1424
+ References
1425
+ ----------
1426
+ .. [1] Dantzig, George B., Linear programming and extensions. Rand
1427
+ Corporation Research Study Princeton Univ. Press, Princeton, NJ,
1428
+ 1963
1429
+ .. [2] Hillier, S.H. and Lieberman, G.J. (1995), "Introduction to
1430
+ Mathematical Programming", McGraw-Hill, Chapter 4.
1431
+ .. [3] Bland, Robert G. New finite pivoting rules for the simplex method.
1432
+ Mathematics of Operations Research (2), 1977: pp. 103-107.
1433
+ """
1434
+ pass