scipy 1.15.3__cp312-cp312-macosx_14_0_arm64.whl → 1.16.0__cp312-cp312-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (632) hide show
  1. scipy/.dylibs/libgcc_s.1.1.dylib +0 -0
  2. scipy/.dylibs/libgfortran.5.dylib +0 -0
  3. scipy/.dylibs/libquadmath.0.dylib +0 -0
  4. scipy/__config__.py +5 -5
  5. scipy/__init__.py +3 -6
  6. scipy/_cyutility.cpython-312-darwin.so +0 -0
  7. scipy/_lib/_array_api.py +486 -161
  8. scipy/_lib/_array_api_compat_vendor.py +9 -0
  9. scipy/_lib/_bunch.py +4 -0
  10. scipy/_lib/_ccallback_c.cpython-312-darwin.so +0 -0
  11. scipy/_lib/_docscrape.py +1 -1
  12. scipy/_lib/_elementwise_iterative_method.py +15 -26
  13. scipy/_lib/_sparse.py +41 -0
  14. scipy/_lib/_test_deprecation_call.cpython-312-darwin.so +0 -0
  15. scipy/_lib/_test_deprecation_def.cpython-312-darwin.so +0 -0
  16. scipy/_lib/_testutils.py +6 -2
  17. scipy/_lib/_util.py +222 -125
  18. scipy/_lib/array_api_compat/__init__.py +4 -4
  19. scipy/_lib/array_api_compat/_internal.py +19 -6
  20. scipy/_lib/array_api_compat/common/__init__.py +1 -1
  21. scipy/_lib/array_api_compat/common/_aliases.py +365 -193
  22. scipy/_lib/array_api_compat/common/_fft.py +94 -64
  23. scipy/_lib/array_api_compat/common/_helpers.py +413 -180
  24. scipy/_lib/array_api_compat/common/_linalg.py +116 -40
  25. scipy/_lib/array_api_compat/common/_typing.py +179 -10
  26. scipy/_lib/array_api_compat/cupy/__init__.py +1 -4
  27. scipy/_lib/array_api_compat/cupy/_aliases.py +61 -41
  28. scipy/_lib/array_api_compat/cupy/_info.py +16 -6
  29. scipy/_lib/array_api_compat/cupy/_typing.py +24 -39
  30. scipy/_lib/array_api_compat/dask/array/__init__.py +6 -3
  31. scipy/_lib/array_api_compat/dask/array/_aliases.py +267 -108
  32. scipy/_lib/array_api_compat/dask/array/_info.py +105 -34
  33. scipy/_lib/array_api_compat/dask/array/fft.py +5 -8
  34. scipy/_lib/array_api_compat/dask/array/linalg.py +21 -22
  35. scipy/_lib/array_api_compat/numpy/__init__.py +13 -15
  36. scipy/_lib/array_api_compat/numpy/_aliases.py +98 -49
  37. scipy/_lib/array_api_compat/numpy/_info.py +36 -16
  38. scipy/_lib/array_api_compat/numpy/_typing.py +27 -43
  39. scipy/_lib/array_api_compat/numpy/fft.py +11 -5
  40. scipy/_lib/array_api_compat/numpy/linalg.py +75 -22
  41. scipy/_lib/array_api_compat/torch/__init__.py +3 -5
  42. scipy/_lib/array_api_compat/torch/_aliases.py +262 -159
  43. scipy/_lib/array_api_compat/torch/_info.py +27 -16
  44. scipy/_lib/array_api_compat/torch/_typing.py +3 -0
  45. scipy/_lib/array_api_compat/torch/fft.py +17 -18
  46. scipy/_lib/array_api_compat/torch/linalg.py +16 -16
  47. scipy/_lib/array_api_extra/__init__.py +26 -3
  48. scipy/_lib/array_api_extra/_delegation.py +171 -0
  49. scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
  50. scipy/_lib/array_api_extra/_lib/_at.py +463 -0
  51. scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
  52. scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
  53. scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
  54. scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
  55. scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
  56. scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
  57. scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
  58. scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
  59. scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
  60. scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
  61. scipy/_lib/array_api_extra/testing.py +359 -0
  62. scipy/_lib/decorator.py +2 -2
  63. scipy/_lib/doccer.py +1 -7
  64. scipy/_lib/messagestream.cpython-312-darwin.so +0 -0
  65. scipy/_lib/pyprima/__init__.py +212 -0
  66. scipy/_lib/pyprima/cobyla/__init__.py +0 -0
  67. scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
  68. scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
  69. scipy/_lib/pyprima/cobyla/geometry.py +226 -0
  70. scipy/_lib/pyprima/cobyla/initialize.py +215 -0
  71. scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
  72. scipy/_lib/pyprima/cobyla/update.py +289 -0
  73. scipy/_lib/pyprima/common/__init__.py +0 -0
  74. scipy/_lib/pyprima/common/_bounds.py +34 -0
  75. scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
  76. scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
  77. scipy/_lib/pyprima/common/_project.py +173 -0
  78. scipy/_lib/pyprima/common/checkbreak.py +93 -0
  79. scipy/_lib/pyprima/common/consts.py +47 -0
  80. scipy/_lib/pyprima/common/evaluate.py +99 -0
  81. scipy/_lib/pyprima/common/history.py +38 -0
  82. scipy/_lib/pyprima/common/infos.py +30 -0
  83. scipy/_lib/pyprima/common/linalg.py +435 -0
  84. scipy/_lib/pyprima/common/message.py +290 -0
  85. scipy/_lib/pyprima/common/powalg.py +131 -0
  86. scipy/_lib/pyprima/common/preproc.py +277 -0
  87. scipy/_lib/pyprima/common/present.py +5 -0
  88. scipy/_lib/pyprima/common/ratio.py +54 -0
  89. scipy/_lib/pyprima/common/redrho.py +47 -0
  90. scipy/_lib/pyprima/common/selectx.py +296 -0
  91. scipy/_lib/tests/test__util.py +105 -121
  92. scipy/_lib/tests/test_array_api.py +166 -35
  93. scipy/_lib/tests/test_bunch.py +7 -0
  94. scipy/_lib/tests/test_ccallback.py +2 -10
  95. scipy/_lib/tests/test_public_api.py +13 -0
  96. scipy/cluster/_hierarchy.cpython-312-darwin.so +0 -0
  97. scipy/cluster/_optimal_leaf_ordering.cpython-312-darwin.so +0 -0
  98. scipy/cluster/_vq.cpython-312-darwin.so +0 -0
  99. scipy/cluster/hierarchy.py +393 -223
  100. scipy/cluster/tests/test_hierarchy.py +273 -335
  101. scipy/cluster/tests/test_vq.py +45 -61
  102. scipy/cluster/vq.py +39 -35
  103. scipy/conftest.py +282 -151
  104. scipy/constants/_constants.py +4 -1
  105. scipy/constants/tests/test_codata.py +2 -2
  106. scipy/constants/tests/test_constants.py +11 -18
  107. scipy/datasets/_download_all.py +15 -1
  108. scipy/datasets/_fetchers.py +7 -1
  109. scipy/datasets/_utils.py +1 -1
  110. scipy/differentiate/_differentiate.py +25 -25
  111. scipy/differentiate/tests/test_differentiate.py +24 -25
  112. scipy/fft/_basic.py +20 -0
  113. scipy/fft/_helper.py +3 -34
  114. scipy/fft/_pocketfft/helper.py +29 -1
  115. scipy/fft/_pocketfft/tests/test_basic.py +2 -4
  116. scipy/fft/_pocketfft/tests/test_real_transforms.py +4 -4
  117. scipy/fft/_realtransforms.py +13 -0
  118. scipy/fft/tests/test_basic.py +27 -25
  119. scipy/fft/tests/test_fftlog.py +16 -7
  120. scipy/fft/tests/test_helper.py +18 -34
  121. scipy/fft/tests/test_real_transforms.py +8 -10
  122. scipy/fftpack/convolve.cpython-312-darwin.so +0 -0
  123. scipy/fftpack/tests/test_basic.py +2 -4
  124. scipy/fftpack/tests/test_real_transforms.py +8 -9
  125. scipy/integrate/_bvp.py +9 -3
  126. scipy/integrate/_cubature.py +3 -2
  127. scipy/integrate/_dop.cpython-312-darwin.so +0 -0
  128. scipy/integrate/_lsoda.cpython-312-darwin.so +0 -0
  129. scipy/integrate/_ode.py +9 -2
  130. scipy/integrate/_odepack.cpython-312-darwin.so +0 -0
  131. scipy/integrate/_quad_vec.py +21 -29
  132. scipy/integrate/_quadpack.cpython-312-darwin.so +0 -0
  133. scipy/integrate/_quadpack_py.py +11 -7
  134. scipy/integrate/_quadrature.py +3 -3
  135. scipy/integrate/_rules/_base.py +2 -2
  136. scipy/integrate/_tanhsinh.py +48 -47
  137. scipy/integrate/_test_odeint_banded.cpython-312-darwin.so +0 -0
  138. scipy/integrate/_vode.cpython-312-darwin.so +0 -0
  139. scipy/integrate/tests/test__quad_vec.py +0 -6
  140. scipy/integrate/tests/test_banded_ode_solvers.py +85 -0
  141. scipy/integrate/tests/test_cubature.py +21 -35
  142. scipy/integrate/tests/test_quadrature.py +6 -8
  143. scipy/integrate/tests/test_tanhsinh.py +56 -48
  144. scipy/interpolate/__init__.py +70 -58
  145. scipy/interpolate/_bary_rational.py +22 -22
  146. scipy/interpolate/_bsplines.py +119 -66
  147. scipy/interpolate/_cubic.py +65 -50
  148. scipy/interpolate/_dfitpack.cpython-312-darwin.so +0 -0
  149. scipy/interpolate/_dierckx.cpython-312-darwin.so +0 -0
  150. scipy/interpolate/_fitpack.cpython-312-darwin.so +0 -0
  151. scipy/interpolate/_fitpack2.py +9 -6
  152. scipy/interpolate/_fitpack_impl.py +32 -26
  153. scipy/interpolate/_fitpack_repro.py +23 -19
  154. scipy/interpolate/_interpnd.cpython-312-darwin.so +0 -0
  155. scipy/interpolate/_interpolate.py +30 -12
  156. scipy/interpolate/_ndbspline.py +13 -18
  157. scipy/interpolate/_ndgriddata.py +5 -8
  158. scipy/interpolate/_polyint.py +95 -31
  159. scipy/interpolate/_ppoly.cpython-312-darwin.so +0 -0
  160. scipy/interpolate/_rbf.py +2 -2
  161. scipy/interpolate/_rbfinterp.py +1 -1
  162. scipy/interpolate/_rbfinterp_pythran.cpython-312-darwin.so +0 -0
  163. scipy/interpolate/_rgi.py +31 -26
  164. scipy/interpolate/_rgi_cython.cpython-312-darwin.so +0 -0
  165. scipy/interpolate/dfitpack.py +0 -20
  166. scipy/interpolate/interpnd.py +1 -2
  167. scipy/interpolate/tests/test_bary_rational.py +2 -2
  168. scipy/interpolate/tests/test_bsplines.py +97 -1
  169. scipy/interpolate/tests/test_fitpack2.py +39 -1
  170. scipy/interpolate/tests/test_interpnd.py +32 -20
  171. scipy/interpolate/tests/test_interpolate.py +48 -4
  172. scipy/interpolate/tests/test_rgi.py +2 -1
  173. scipy/io/_fast_matrix_market/__init__.py +2 -0
  174. scipy/io/_harwell_boeing/_fortran_format_parser.py +19 -16
  175. scipy/io/_harwell_boeing/hb.py +7 -11
  176. scipy/io/_idl.py +5 -7
  177. scipy/io/_netcdf.py +15 -5
  178. scipy/io/_test_fortran.cpython-312-darwin.so +0 -0
  179. scipy/io/arff/tests/test_arffread.py +3 -3
  180. scipy/io/matlab/__init__.py +5 -3
  181. scipy/io/matlab/_mio.py +4 -1
  182. scipy/io/matlab/_mio5.py +19 -13
  183. scipy/io/matlab/_mio5_utils.cpython-312-darwin.so +0 -0
  184. scipy/io/matlab/_mio_utils.cpython-312-darwin.so +0 -0
  185. scipy/io/matlab/_miobase.py +4 -1
  186. scipy/io/matlab/_streams.cpython-312-darwin.so +0 -0
  187. scipy/io/matlab/tests/test_mio.py +46 -18
  188. scipy/io/matlab/tests/test_mio_funcs.py +1 -1
  189. scipy/io/tests/test_mmio.py +7 -1
  190. scipy/io/tests/test_wavfile.py +41 -0
  191. scipy/io/wavfile.py +57 -10
  192. scipy/linalg/_basic.py +113 -86
  193. scipy/linalg/_cythonized_array_utils.cpython-312-darwin.so +0 -0
  194. scipy/linalg/_decomp.py +22 -9
  195. scipy/linalg/_decomp_cholesky.py +28 -13
  196. scipy/linalg/_decomp_cossin.py +45 -30
  197. scipy/linalg/_decomp_interpolative.cpython-312-darwin.so +0 -0
  198. scipy/linalg/_decomp_ldl.py +4 -1
  199. scipy/linalg/_decomp_lu.py +18 -6
  200. scipy/linalg/_decomp_lu_cython.cpython-312-darwin.so +0 -0
  201. scipy/linalg/_decomp_polar.py +2 -0
  202. scipy/linalg/_decomp_qr.py +6 -2
  203. scipy/linalg/_decomp_qz.py +3 -0
  204. scipy/linalg/_decomp_schur.py +3 -1
  205. scipy/linalg/_decomp_svd.py +13 -2
  206. scipy/linalg/_decomp_update.cpython-312-darwin.so +0 -0
  207. scipy/linalg/_expm_frechet.py +4 -0
  208. scipy/linalg/_fblas.cpython-312-darwin.so +0 -0
  209. scipy/linalg/_flapack.cpython-312-darwin.so +0 -0
  210. scipy/linalg/_linalg_pythran.cpython-312-darwin.so +0 -0
  211. scipy/linalg/_matfuncs.py +187 -4
  212. scipy/linalg/_matfuncs_expm.cpython-312-darwin.so +0 -0
  213. scipy/linalg/_matfuncs_schur_sqrtm.cpython-312-darwin.so +0 -0
  214. scipy/linalg/_matfuncs_sqrtm.py +1 -99
  215. scipy/linalg/_matfuncs_sqrtm_triu.cpython-312-darwin.so +0 -0
  216. scipy/linalg/_procrustes.py +2 -0
  217. scipy/linalg/_sketches.py +17 -6
  218. scipy/linalg/_solve_toeplitz.cpython-312-darwin.so +0 -0
  219. scipy/linalg/_solvers.py +7 -2
  220. scipy/linalg/_special_matrices.py +26 -36
  221. scipy/linalg/blas.py +35 -24
  222. scipy/linalg/cython_blas.cpython-312-darwin.so +0 -0
  223. scipy/linalg/cython_lapack.cpython-312-darwin.so +0 -0
  224. scipy/linalg/lapack.py +22 -2
  225. scipy/linalg/tests/_cython_examples/meson.build +7 -0
  226. scipy/linalg/tests/test_basic.py +31 -16
  227. scipy/linalg/tests/test_batch.py +588 -0
  228. scipy/linalg/tests/test_cythonized_array_utils.py +0 -2
  229. scipy/linalg/tests/test_decomp.py +40 -3
  230. scipy/linalg/tests/test_decomp_cossin.py +14 -0
  231. scipy/linalg/tests/test_decomp_ldl.py +1 -1
  232. scipy/linalg/tests/test_lapack.py +115 -7
  233. scipy/linalg/tests/test_matfuncs.py +157 -102
  234. scipy/linalg/tests/test_procrustes.py +0 -7
  235. scipy/linalg/tests/test_solve_toeplitz.py +1 -1
  236. scipy/linalg/tests/test_special_matrices.py +1 -5
  237. scipy/ndimage/__init__.py +1 -0
  238. scipy/ndimage/_cytest.cpython-312-darwin.so +0 -0
  239. scipy/ndimage/_delegators.py +8 -2
  240. scipy/ndimage/_filters.py +453 -5
  241. scipy/ndimage/_interpolation.py +36 -6
  242. scipy/ndimage/_measurements.py +4 -2
  243. scipy/ndimage/_morphology.py +5 -0
  244. scipy/ndimage/_nd_image.cpython-312-darwin.so +0 -0
  245. scipy/ndimage/_ni_docstrings.py +5 -1
  246. scipy/ndimage/_ni_label.cpython-312-darwin.so +0 -0
  247. scipy/ndimage/_ni_support.py +1 -5
  248. scipy/ndimage/_rank_filter_1d.cpython-312-darwin.so +0 -0
  249. scipy/ndimage/_support_alternative_backends.py +18 -6
  250. scipy/ndimage/tests/test_filters.py +370 -259
  251. scipy/ndimage/tests/test_fourier.py +7 -9
  252. scipy/ndimage/tests/test_interpolation.py +68 -61
  253. scipy/ndimage/tests/test_measurements.py +18 -35
  254. scipy/ndimage/tests/test_morphology.py +143 -131
  255. scipy/ndimage/tests/test_splines.py +1 -3
  256. scipy/odr/__odrpack.cpython-312-darwin.so +0 -0
  257. scipy/optimize/_basinhopping.py +13 -7
  258. scipy/optimize/_bglu_dense.cpython-312-darwin.so +0 -0
  259. scipy/optimize/_bracket.py +17 -24
  260. scipy/optimize/_chandrupatla.py +9 -10
  261. scipy/optimize/_cobyla_py.py +104 -123
  262. scipy/optimize/_constraints.py +14 -10
  263. scipy/optimize/_differentiable_functions.py +371 -230
  264. scipy/optimize/_differentialevolution.py +4 -3
  265. scipy/optimize/_direct.cpython-312-darwin.so +0 -0
  266. scipy/optimize/_dual_annealing.py +1 -1
  267. scipy/optimize/_elementwise.py +1 -4
  268. scipy/optimize/_group_columns.cpython-312-darwin.so +0 -0
  269. scipy/optimize/_lbfgsb.cpython-312-darwin.so +0 -0
  270. scipy/optimize/_lbfgsb_py.py +80 -24
  271. scipy/optimize/_linprog_doc.py +2 -2
  272. scipy/optimize/_linprog_highs.py +2 -2
  273. scipy/optimize/_linprog_ip.py +25 -10
  274. scipy/optimize/_linprog_util.py +14 -16
  275. scipy/optimize/_lsap.cpython-312-darwin.so +0 -0
  276. scipy/optimize/_lsq/common.py +3 -3
  277. scipy/optimize/_lsq/dogbox.py +16 -2
  278. scipy/optimize/_lsq/givens_elimination.cpython-312-darwin.so +0 -0
  279. scipy/optimize/_lsq/least_squares.py +198 -126
  280. scipy/optimize/_lsq/lsq_linear.py +6 -6
  281. scipy/optimize/_lsq/trf.py +35 -8
  282. scipy/optimize/_milp.py +3 -1
  283. scipy/optimize/_minimize.py +105 -36
  284. scipy/optimize/_minpack.cpython-312-darwin.so +0 -0
  285. scipy/optimize/_minpack_py.py +21 -14
  286. scipy/optimize/_moduleTNC.cpython-312-darwin.so +0 -0
  287. scipy/optimize/_nnls.py +20 -21
  288. scipy/optimize/_nonlin.py +34 -3
  289. scipy/optimize/_numdiff.py +288 -110
  290. scipy/optimize/_optimize.py +86 -48
  291. scipy/optimize/_pava_pybind.cpython-312-darwin.so +0 -0
  292. scipy/optimize/_remove_redundancy.py +5 -5
  293. scipy/optimize/_root_scalar.py +1 -1
  294. scipy/optimize/_shgo.py +6 -0
  295. scipy/optimize/_shgo_lib/_complex.py +1 -1
  296. scipy/optimize/_slsqp_py.py +216 -124
  297. scipy/optimize/_slsqplib.cpython-312-darwin.so +0 -0
  298. scipy/optimize/_spectral.py +1 -1
  299. scipy/optimize/_tnc.py +8 -1
  300. scipy/optimize/_trlib/_trlib.cpython-312-darwin.so +0 -0
  301. scipy/optimize/_trustregion.py +20 -6
  302. scipy/optimize/_trustregion_constr/canonical_constraint.py +7 -7
  303. scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +1 -1
  304. scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +11 -3
  305. scipy/optimize/_trustregion_constr/projections.py +12 -8
  306. scipy/optimize/_trustregion_constr/qp_subproblem.py +9 -9
  307. scipy/optimize/_trustregion_constr/tests/test_projections.py +7 -7
  308. scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +77 -77
  309. scipy/optimize/_trustregion_constr/tr_interior_point.py +5 -5
  310. scipy/optimize/_trustregion_exact.py +0 -1
  311. scipy/optimize/_zeros.cpython-312-darwin.so +0 -0
  312. scipy/optimize/_zeros_py.py +97 -17
  313. scipy/optimize/cython_optimize/_zeros.cpython-312-darwin.so +0 -0
  314. scipy/optimize/slsqp.py +0 -1
  315. scipy/optimize/tests/test__basinhopping.py +1 -1
  316. scipy/optimize/tests/test__differential_evolution.py +4 -4
  317. scipy/optimize/tests/test__linprog_clean_inputs.py +5 -3
  318. scipy/optimize/tests/test__numdiff.py +66 -22
  319. scipy/optimize/tests/test__remove_redundancy.py +2 -2
  320. scipy/optimize/tests/test__shgo.py +9 -1
  321. scipy/optimize/tests/test_bracket.py +36 -46
  322. scipy/optimize/tests/test_chandrupatla.py +133 -135
  323. scipy/optimize/tests/test_cobyla.py +74 -45
  324. scipy/optimize/tests/test_constraints.py +1 -1
  325. scipy/optimize/tests/test_differentiable_functions.py +226 -6
  326. scipy/optimize/tests/test_lbfgsb_hessinv.py +22 -0
  327. scipy/optimize/tests/test_least_squares.py +125 -13
  328. scipy/optimize/tests/test_linear_assignment.py +3 -3
  329. scipy/optimize/tests/test_linprog.py +3 -3
  330. scipy/optimize/tests/test_lsq_linear.py +6 -6
  331. scipy/optimize/tests/test_minimize_constrained.py +2 -2
  332. scipy/optimize/tests/test_minpack.py +4 -4
  333. scipy/optimize/tests/test_nnls.py +43 -3
  334. scipy/optimize/tests/test_nonlin.py +36 -0
  335. scipy/optimize/tests/test_optimize.py +98 -20
  336. scipy/optimize/tests/test_slsqp.py +36 -4
  337. scipy/optimize/tests/test_zeros.py +34 -1
  338. scipy/signal/__init__.py +12 -23
  339. scipy/signal/_delegators.py +568 -0
  340. scipy/signal/_filter_design.py +459 -241
  341. scipy/signal/_fir_filter_design.py +262 -90
  342. scipy/signal/_lti_conversion.py +3 -2
  343. scipy/signal/_ltisys.py +118 -91
  344. scipy/signal/_max_len_seq_inner.cpython-312-darwin.so +0 -0
  345. scipy/signal/_peak_finding_utils.cpython-312-darwin.so +0 -0
  346. scipy/signal/_polyutils.py +172 -0
  347. scipy/signal/_short_time_fft.py +519 -70
  348. scipy/signal/_signal_api.py +30 -0
  349. scipy/signal/_signaltools.py +719 -399
  350. scipy/signal/_sigtools.cpython-312-darwin.so +0 -0
  351. scipy/signal/_sosfilt.cpython-312-darwin.so +0 -0
  352. scipy/signal/_spectral_py.py +230 -50
  353. scipy/signal/_spline.cpython-312-darwin.so +0 -0
  354. scipy/signal/_spline_filters.py +108 -68
  355. scipy/signal/_support_alternative_backends.py +73 -0
  356. scipy/signal/_upfirdn.py +4 -1
  357. scipy/signal/_upfirdn_apply.cpython-312-darwin.so +0 -0
  358. scipy/signal/_waveforms.py +2 -11
  359. scipy/signal/_wavelets.py +1 -1
  360. scipy/signal/fir_filter_design.py +1 -0
  361. scipy/signal/spline.py +4 -11
  362. scipy/signal/tests/_scipy_spectral_test_shim.py +2 -171
  363. scipy/signal/tests/test_bsplines.py +114 -79
  364. scipy/signal/tests/test_cont2discrete.py +9 -2
  365. scipy/signal/tests/test_filter_design.py +721 -481
  366. scipy/signal/tests/test_fir_filter_design.py +332 -140
  367. scipy/signal/tests/test_savitzky_golay.py +4 -3
  368. scipy/signal/tests/test_short_time_fft.py +221 -3
  369. scipy/signal/tests/test_signaltools.py +2145 -1349
  370. scipy/signal/tests/test_spectral.py +50 -6
  371. scipy/signal/tests/test_splines.py +161 -96
  372. scipy/signal/tests/test_upfirdn.py +84 -50
  373. scipy/signal/tests/test_waveforms.py +20 -0
  374. scipy/signal/tests/test_windows.py +607 -466
  375. scipy/signal/windows/_windows.py +287 -148
  376. scipy/sparse/__init__.py +23 -4
  377. scipy/sparse/_base.py +270 -108
  378. scipy/sparse/_bsr.py +7 -4
  379. scipy/sparse/_compressed.py +59 -231
  380. scipy/sparse/_construct.py +90 -38
  381. scipy/sparse/_coo.py +115 -181
  382. scipy/sparse/_csc.py +4 -4
  383. scipy/sparse/_csparsetools.cpython-312-darwin.so +0 -0
  384. scipy/sparse/_csr.py +2 -2
  385. scipy/sparse/_data.py +48 -48
  386. scipy/sparse/_dia.py +105 -18
  387. scipy/sparse/_dok.py +0 -23
  388. scipy/sparse/_index.py +4 -4
  389. scipy/sparse/_matrix.py +23 -0
  390. scipy/sparse/_sparsetools.cpython-312-darwin.so +0 -0
  391. scipy/sparse/_sputils.py +37 -22
  392. scipy/sparse/base.py +0 -9
  393. scipy/sparse/bsr.py +0 -14
  394. scipy/sparse/compressed.py +0 -23
  395. scipy/sparse/construct.py +0 -6
  396. scipy/sparse/coo.py +0 -14
  397. scipy/sparse/csc.py +0 -3
  398. scipy/sparse/csgraph/_flow.cpython-312-darwin.so +0 -0
  399. scipy/sparse/csgraph/_matching.cpython-312-darwin.so +0 -0
  400. scipy/sparse/csgraph/_min_spanning_tree.cpython-312-darwin.so +0 -0
  401. scipy/sparse/csgraph/_reordering.cpython-312-darwin.so +0 -0
  402. scipy/sparse/csgraph/_shortest_path.cpython-312-darwin.so +0 -0
  403. scipy/sparse/csgraph/_tools.cpython-312-darwin.so +0 -0
  404. scipy/sparse/csgraph/_traversal.cpython-312-darwin.so +0 -0
  405. scipy/sparse/csgraph/tests/test_matching.py +14 -2
  406. scipy/sparse/csgraph/tests/test_pydata_sparse.py +4 -1
  407. scipy/sparse/csgraph/tests/test_shortest_path.py +83 -27
  408. scipy/sparse/csr.py +0 -5
  409. scipy/sparse/data.py +1 -6
  410. scipy/sparse/dia.py +0 -7
  411. scipy/sparse/dok.py +0 -10
  412. scipy/sparse/linalg/_dsolve/_superlu.cpython-312-darwin.so +0 -0
  413. scipy/sparse/linalg/_dsolve/linsolve.py +9 -0
  414. scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +35 -28
  415. scipy/sparse/linalg/_eigen/arpack/_arpack.cpython-312-darwin.so +0 -0
  416. scipy/sparse/linalg/_eigen/arpack/arpack.py +23 -17
  417. scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +6 -6
  418. scipy/sparse/linalg/_interface.py +17 -18
  419. scipy/sparse/linalg/_isolve/_gcrotmk.py +4 -4
  420. scipy/sparse/linalg/_isolve/iterative.py +51 -45
  421. scipy/sparse/linalg/_isolve/lgmres.py +6 -6
  422. scipy/sparse/linalg/_isolve/minres.py +5 -5
  423. scipy/sparse/linalg/_isolve/tfqmr.py +7 -7
  424. scipy/sparse/linalg/_isolve/utils.py +2 -8
  425. scipy/sparse/linalg/_matfuncs.py +1 -1
  426. scipy/sparse/linalg/_norm.py +1 -1
  427. scipy/sparse/linalg/_propack/_cpropack.cpython-312-darwin.so +0 -0
  428. scipy/sparse/linalg/_propack/_dpropack.cpython-312-darwin.so +0 -0
  429. scipy/sparse/linalg/_propack/_spropack.cpython-312-darwin.so +0 -0
  430. scipy/sparse/linalg/_propack/_zpropack.cpython-312-darwin.so +0 -0
  431. scipy/sparse/linalg/_special_sparse_arrays.py +39 -38
  432. scipy/sparse/linalg/tests/test_pydata_sparse.py +14 -0
  433. scipy/sparse/tests/test_arithmetic1d.py +5 -2
  434. scipy/sparse/tests/test_base.py +214 -42
  435. scipy/sparse/tests/test_common1d.py +7 -7
  436. scipy/sparse/tests/test_construct.py +1 -1
  437. scipy/sparse/tests/test_coo.py +272 -4
  438. scipy/sparse/tests/test_sparsetools.py +5 -0
  439. scipy/sparse/tests/test_sputils.py +36 -7
  440. scipy/spatial/_ckdtree.cpython-312-darwin.so +0 -0
  441. scipy/spatial/_distance_pybind.cpython-312-darwin.so +0 -0
  442. scipy/spatial/_distance_wrap.cpython-312-darwin.so +0 -0
  443. scipy/spatial/_hausdorff.cpython-312-darwin.so +0 -0
  444. scipy/spatial/_qhull.cpython-312-darwin.so +0 -0
  445. scipy/spatial/_voronoi.cpython-312-darwin.so +0 -0
  446. scipy/spatial/distance.py +49 -42
  447. scipy/spatial/tests/test_distance.py +15 -1
  448. scipy/spatial/tests/test_kdtree.py +1 -0
  449. scipy/spatial/tests/test_qhull.py +7 -2
  450. scipy/spatial/transform/__init__.py +5 -3
  451. scipy/spatial/transform/_rigid_transform.cpython-312-darwin.so +0 -0
  452. scipy/spatial/transform/_rotation.cpython-312-darwin.so +0 -0
  453. scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
  454. scipy/spatial/transform/tests/test_rotation.py +1213 -832
  455. scipy/spatial/transform/tests/test_rotation_groups.py +3 -3
  456. scipy/spatial/transform/tests/test_rotation_spline.py +29 -8
  457. scipy/special/__init__.py +1 -47
  458. scipy/special/_add_newdocs.py +34 -772
  459. scipy/special/_basic.py +22 -25
  460. scipy/special/_comb.cpython-312-darwin.so +0 -0
  461. scipy/special/_ellip_harm_2.cpython-312-darwin.so +0 -0
  462. scipy/special/_gufuncs.cpython-312-darwin.so +0 -0
  463. scipy/special/_logsumexp.py +67 -58
  464. scipy/special/_orthogonal.pyi +1 -1
  465. scipy/special/_specfun.cpython-312-darwin.so +0 -0
  466. scipy/special/_special_ufuncs.cpython-312-darwin.so +0 -0
  467. scipy/special/_spherical_bessel.py +4 -4
  468. scipy/special/_support_alternative_backends.py +212 -119
  469. scipy/special/_test_internal.cpython-312-darwin.so +0 -0
  470. scipy/special/_testutils.py +4 -4
  471. scipy/special/_ufuncs.cpython-312-darwin.so +0 -0
  472. scipy/special/_ufuncs.pyi +1 -0
  473. scipy/special/_ufuncs.pyx +215 -1400
  474. scipy/special/_ufuncs_cxx.cpython-312-darwin.so +0 -0
  475. scipy/special/_ufuncs_cxx.pxd +2 -15
  476. scipy/special/_ufuncs_cxx.pyx +5 -44
  477. scipy/special/_ufuncs_cxx_defs.h +2 -16
  478. scipy/special/_ufuncs_defs.h +0 -8
  479. scipy/special/cython_special.cpython-312-darwin.so +0 -0
  480. scipy/special/cython_special.pxd +1 -1
  481. scipy/special/tests/_cython_examples/meson.build +10 -1
  482. scipy/special/tests/test_basic.py +153 -20
  483. scipy/special/tests/test_boost_ufuncs.py +3 -0
  484. scipy/special/tests/test_cdflib.py +35 -11
  485. scipy/special/tests/test_gammainc.py +16 -0
  486. scipy/special/tests/test_hyp2f1.py +2 -2
  487. scipy/special/tests/test_log1mexp.py +85 -0
  488. scipy/special/tests/test_logsumexp.py +206 -64
  489. scipy/special/tests/test_mpmath.py +1 -0
  490. scipy/special/tests/test_nan_inputs.py +1 -1
  491. scipy/special/tests/test_orthogonal.py +17 -18
  492. scipy/special/tests/test_sf_error.py +3 -2
  493. scipy/special/tests/test_sph_harm.py +6 -7
  494. scipy/special/tests/test_support_alternative_backends.py +211 -76
  495. scipy/stats/__init__.py +4 -1
  496. scipy/stats/_ansari_swilk_statistics.cpython-312-darwin.so +0 -0
  497. scipy/stats/_axis_nan_policy.py +5 -12
  498. scipy/stats/_biasedurn.cpython-312-darwin.so +0 -0
  499. scipy/stats/_continued_fraction.py +387 -0
  500. scipy/stats/_continuous_distns.py +277 -310
  501. scipy/stats/_correlation.py +1 -1
  502. scipy/stats/_covariance.py +6 -3
  503. scipy/stats/_discrete_distns.py +39 -32
  504. scipy/stats/_distn_infrastructure.py +39 -12
  505. scipy/stats/_distribution_infrastructure.py +920 -238
  506. scipy/stats/_entropy.py +9 -10
  507. scipy/{_lib → stats}/_finite_differences.py +1 -1
  508. scipy/stats/_hypotests.py +83 -50
  509. scipy/stats/_kde.py +53 -49
  510. scipy/stats/_ksstats.py +1 -1
  511. scipy/stats/_levy_stable/__init__.py +7 -15
  512. scipy/stats/_levy_stable/levyst.cpython-312-darwin.so +0 -0
  513. scipy/stats/_morestats.py +118 -73
  514. scipy/stats/_mstats_basic.py +13 -17
  515. scipy/stats/_mstats_extras.py +8 -8
  516. scipy/stats/_multivariate.py +89 -113
  517. scipy/stats/_new_distributions.py +97 -20
  518. scipy/stats/_page_trend_test.py +12 -5
  519. scipy/stats/_probability_distribution.py +265 -43
  520. scipy/stats/_qmc.py +14 -9
  521. scipy/stats/_qmc_cy.cpython-312-darwin.so +0 -0
  522. scipy/stats/_qmvnt.py +16 -95
  523. scipy/stats/_qmvnt_cy.cpython-312-darwin.so +0 -0
  524. scipy/stats/_quantile.py +335 -0
  525. scipy/stats/_rcont/rcont.cpython-312-darwin.so +0 -0
  526. scipy/stats/_resampling.py +5 -30
  527. scipy/stats/_sampling.py +1 -1
  528. scipy/stats/_sobol.cpython-312-darwin.so +0 -0
  529. scipy/stats/_stats.cpython-312-darwin.so +0 -0
  530. scipy/stats/_stats_mstats_common.py +21 -2
  531. scipy/stats/_stats_py.py +551 -477
  532. scipy/stats/_stats_pythran.cpython-312-darwin.so +0 -0
  533. scipy/stats/_unuran/unuran_wrapper.cpython-312-darwin.so +0 -0
  534. scipy/stats/_unuran/unuran_wrapper.pyi +2 -1
  535. scipy/stats/_variation.py +6 -8
  536. scipy/stats/_wilcoxon.py +13 -7
  537. scipy/stats/tests/common_tests.py +6 -4
  538. scipy/stats/tests/test_axis_nan_policy.py +62 -24
  539. scipy/stats/tests/test_continued_fraction.py +173 -0
  540. scipy/stats/tests/test_continuous.py +379 -60
  541. scipy/stats/tests/test_continuous_basic.py +18 -12
  542. scipy/stats/tests/test_discrete_basic.py +14 -8
  543. scipy/stats/tests/test_discrete_distns.py +16 -16
  544. scipy/stats/tests/test_distributions.py +95 -75
  545. scipy/stats/tests/test_entropy.py +40 -48
  546. scipy/stats/tests/test_fit.py +4 -3
  547. scipy/stats/tests/test_hypotests.py +153 -24
  548. scipy/stats/tests/test_kdeoth.py +109 -41
  549. scipy/stats/tests/test_marray.py +289 -0
  550. scipy/stats/tests/test_morestats.py +81 -49
  551. scipy/stats/tests/test_mstats_basic.py +3 -3
  552. scipy/stats/tests/test_multivariate.py +434 -83
  553. scipy/stats/tests/test_qmc.py +13 -10
  554. scipy/stats/tests/test_quantile.py +199 -0
  555. scipy/stats/tests/test_rank.py +119 -112
  556. scipy/stats/tests/test_resampling.py +47 -56
  557. scipy/stats/tests/test_sampling.py +9 -4
  558. scipy/stats/tests/test_stats.py +799 -939
  559. scipy/stats/tests/test_variation.py +8 -6
  560. scipy/version.py +2 -2
  561. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/LICENSE.txt +4 -4
  562. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/METADATA +11 -11
  563. {scipy-1.15.3.dist-info → scipy-1.16.0.dist-info}/RECORD +564 -571
  564. scipy-1.16.0.dist-info/WHEEL +6 -0
  565. scipy/_lib/array_api_extra/_funcs.py +0 -484
  566. scipy/_lib/array_api_extra/_typing.py +0 -8
  567. scipy/interpolate/_bspl.cpython-312-darwin.so +0 -0
  568. scipy/optimize/_cobyla.cpython-312-darwin.so +0 -0
  569. scipy/optimize/_cython_nnls.cpython-312-darwin.so +0 -0
  570. scipy/optimize/_slsqp.cpython-312-darwin.so +0 -0
  571. scipy/spatial/qhull_src/COPYING.txt +0 -38
  572. scipy/special/libsf_error_state.dylib +0 -0
  573. scipy/special/tests/test_log_softmax.py +0 -109
  574. scipy/special/tests/test_xsf_cuda.py +0 -114
  575. scipy/special/xsf/binom.h +0 -89
  576. scipy/special/xsf/cdflib.h +0 -100
  577. scipy/special/xsf/cephes/airy.h +0 -307
  578. scipy/special/xsf/cephes/besselpoly.h +0 -51
  579. scipy/special/xsf/cephes/beta.h +0 -257
  580. scipy/special/xsf/cephes/cbrt.h +0 -131
  581. scipy/special/xsf/cephes/chbevl.h +0 -85
  582. scipy/special/xsf/cephes/chdtr.h +0 -193
  583. scipy/special/xsf/cephes/const.h +0 -87
  584. scipy/special/xsf/cephes/ellie.h +0 -293
  585. scipy/special/xsf/cephes/ellik.h +0 -251
  586. scipy/special/xsf/cephes/ellpe.h +0 -107
  587. scipy/special/xsf/cephes/ellpk.h +0 -117
  588. scipy/special/xsf/cephes/expn.h +0 -260
  589. scipy/special/xsf/cephes/gamma.h +0 -398
  590. scipy/special/xsf/cephes/hyp2f1.h +0 -596
  591. scipy/special/xsf/cephes/hyperg.h +0 -361
  592. scipy/special/xsf/cephes/i0.h +0 -149
  593. scipy/special/xsf/cephes/i1.h +0 -158
  594. scipy/special/xsf/cephes/igam.h +0 -421
  595. scipy/special/xsf/cephes/igam_asymp_coeff.h +0 -195
  596. scipy/special/xsf/cephes/igami.h +0 -313
  597. scipy/special/xsf/cephes/j0.h +0 -225
  598. scipy/special/xsf/cephes/j1.h +0 -198
  599. scipy/special/xsf/cephes/jv.h +0 -715
  600. scipy/special/xsf/cephes/k0.h +0 -164
  601. scipy/special/xsf/cephes/k1.h +0 -163
  602. scipy/special/xsf/cephes/kn.h +0 -243
  603. scipy/special/xsf/cephes/lanczos.h +0 -112
  604. scipy/special/xsf/cephes/ndtr.h +0 -275
  605. scipy/special/xsf/cephes/poch.h +0 -85
  606. scipy/special/xsf/cephes/polevl.h +0 -167
  607. scipy/special/xsf/cephes/psi.h +0 -194
  608. scipy/special/xsf/cephes/rgamma.h +0 -111
  609. scipy/special/xsf/cephes/scipy_iv.h +0 -811
  610. scipy/special/xsf/cephes/shichi.h +0 -248
  611. scipy/special/xsf/cephes/sici.h +0 -224
  612. scipy/special/xsf/cephes/sindg.h +0 -221
  613. scipy/special/xsf/cephes/tandg.h +0 -139
  614. scipy/special/xsf/cephes/trig.h +0 -58
  615. scipy/special/xsf/cephes/unity.h +0 -186
  616. scipy/special/xsf/cephes/zeta.h +0 -172
  617. scipy/special/xsf/config.h +0 -304
  618. scipy/special/xsf/digamma.h +0 -205
  619. scipy/special/xsf/error.h +0 -57
  620. scipy/special/xsf/evalpoly.h +0 -47
  621. scipy/special/xsf/expint.h +0 -266
  622. scipy/special/xsf/hyp2f1.h +0 -694
  623. scipy/special/xsf/iv_ratio.h +0 -173
  624. scipy/special/xsf/lambertw.h +0 -150
  625. scipy/special/xsf/loggamma.h +0 -163
  626. scipy/special/xsf/sici.h +0 -200
  627. scipy/special/xsf/tools.h +0 -427
  628. scipy/special/xsf/trig.h +0 -164
  629. scipy/special/xsf/wright_bessel.h +0 -843
  630. scipy/special/xsf/zlog1.h +0 -35
  631. scipy/stats/_mvn.cpython-312-darwin.so +0 -0
  632. scipy-1.15.3.dist-info/WHEEL +0 -4
@@ -1,248 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* shichi.c
6
- *
7
- * Hyperbolic sine and cosine integrals
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double x, Chi, Shi, shichi();
14
- *
15
- * shichi( x, &Chi, &Shi );
16
- *
17
- *
18
- * DESCRIPTION:
19
- *
20
- * Approximates the integrals
21
- *
22
- * x
23
- * -
24
- * | | cosh t - 1
25
- * Chi(x) = eul + ln x + | ----------- dt,
26
- * | | t
27
- * -
28
- * 0
29
- *
30
- * x
31
- * -
32
- * | | sinh t
33
- * Shi(x) = | ------ dt
34
- * | | t
35
- * -
36
- * 0
37
- *
38
- * where eul = 0.57721566490153286061 is Euler's constant.
39
- * The integrals are evaluated by power series for x < 8
40
- * and by Chebyshev expansions for x between 8 and 88.
41
- * For large x, both functions approach exp(x)/2x.
42
- * Arguments greater than 88 in magnitude return INFINITY.
43
- *
44
- *
45
- * ACCURACY:
46
- *
47
- * Test interval 0 to 88.
48
- * Relative error:
49
- * arithmetic function # trials peak rms
50
- * IEEE Shi 30000 6.9e-16 1.6e-16
51
- * Absolute error, except relative when |Chi| > 1:
52
- * IEEE Chi 30000 8.4e-16 1.4e-16
53
- */
54
-
55
- /*
56
- * Cephes Math Library Release 2.0: April, 1987
57
- * Copyright 1984, 1987 by Stephen L. Moshier
58
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140
59
- */
60
- #pragma once
61
-
62
- #include "../config.h"
63
-
64
- #include "chbevl.h"
65
- #include "const.h"
66
-
67
- namespace xsf {
68
- namespace cephes {
69
-
70
- namespace detail {
71
-
72
- /* x exp(-x) shi(x), inverted interval 8 to 18 */
73
- constexpr double shichi_S1[] = {
74
- 1.83889230173399459482E-17, -9.55485532279655569575E-17, 2.04326105980879882648E-16,
75
- 1.09896949074905343022E-15, -1.31313534344092599234E-14, 5.93976226264314278932E-14,
76
- -3.47197010497749154755E-14, -1.40059764613117131000E-12, 9.49044626224223543299E-12,
77
- -1.61596181145435454033E-11, -1.77899784436430310321E-10, 1.35455469767246947469E-9,
78
- -1.03257121792819495123E-9, -3.56699611114982536845E-8, 1.44818877384267342057E-7,
79
- 7.82018215184051295296E-7, -5.39919118403805073710E-6, -3.12458202168959833422E-5,
80
- 8.90136741950727517826E-5, 2.02558474743846862168E-3, 2.96064440855633256972E-2,
81
- 1.11847751047257036625E0};
82
-
83
- /* x exp(-x) shi(x), inverted interval 18 to 88 */
84
- constexpr double shichi_S2[] = {
85
- -1.05311574154850938805E-17, 2.62446095596355225821E-17, 8.82090135625368160657E-17,
86
- -3.38459811878103047136E-16, -8.30608026366935789136E-16, 3.93397875437050071776E-15,
87
- 1.01765565969729044505E-14, -4.21128170307640802703E-14, -1.60818204519802480035E-13,
88
- 3.34714954175994481761E-13, 2.72600352129153073807E-12, 1.66894954752839083608E-12,
89
- -3.49278141024730899554E-11, -1.58580661666482709598E-10, -1.79289437183355633342E-10,
90
- 1.76281629144264523277E-9, 1.69050228879421288846E-8, 1.25391771228487041649E-7,
91
- 1.16229947068677338732E-6, 1.61038260117376323993E-5, 3.49810375601053973070E-4,
92
- 1.28478065259647610779E-2, 1.03665722588798326712E0};
93
-
94
- /* x exp(-x) chin(x), inverted interval 8 to 18 */
95
- constexpr double shichi_C1[] = {
96
- -8.12435385225864036372E-18, 2.17586413290339214377E-17, 5.22624394924072204667E-17,
97
- -9.48812110591690559363E-16, 5.35546311647465209166E-15, -1.21009970113732918701E-14,
98
- -6.00865178553447437951E-14, 7.16339649156028587775E-13, -2.93496072607599856104E-12,
99
- -1.40359438136491256904E-12, 8.76302288609054966081E-11, -4.40092476213282340617E-10,
100
- -1.87992075640569295479E-10, 1.31458150989474594064E-8, -4.75513930924765465590E-8,
101
- -2.21775018801848880741E-7, 1.94635531373272490962E-6, 4.33505889257316408893E-6,
102
- -6.13387001076494349496E-5, -3.13085477492997465138E-4, 4.97164789823116062801E-4,
103
- 2.64347496031374526641E-2, 1.11446150876699213025E0};
104
-
105
- /* x exp(-x) chin(x), inverted interval 18 to 88 */
106
- constexpr double shichi_C2[] = {
107
- 8.06913408255155572081E-18, -2.08074168180148170312E-17, -5.98111329658272336816E-17,
108
- 2.68533951085945765591E-16, 4.52313941698904694774E-16, -3.10734917335299464535E-15,
109
- -4.42823207332531972288E-15, 3.49639695410806959872E-14, 6.63406731718911586609E-14,
110
- -3.71902448093119218395E-13, -1.27135418132338309016E-12, 2.74851141935315395333E-12,
111
- 2.33781843985453438400E-11, 2.71436006377612442764E-11, -2.56600180000355990529E-10,
112
- -1.61021375163803438552E-9, -4.72543064876271773512E-9, -3.00095178028681682282E-9,
113
- 7.79387474390914922337E-8, 1.06942765566401507066E-6, 1.59503164802313196374E-5,
114
- 3.49592575153777996871E-4, 1.28475387530065247392E-2, 1.03665693917934275131E0};
115
-
116
- /*
117
- * Evaluate 3F0(a1, a2, a3; z)
118
- *
119
- * The series is only asymptotic, so this requires z large enough.
120
- */
121
- XSF_HOST_DEVICE inline double hyp3f0(double a1, double a2, double a3, double z) {
122
- int n, maxiter;
123
- double err, sum, term, m;
124
-
125
- m = std::pow(z, -1.0 / 3);
126
- if (m < 50) {
127
- maxiter = m;
128
- } else {
129
- maxiter = 50;
130
- }
131
-
132
- term = 1.0;
133
- sum = term;
134
- for (n = 0; n < maxiter; ++n) {
135
- term *= (a1 + n) * (a2 + n) * (a3 + n) * z / (n + 1);
136
- sum += term;
137
- if (std::abs(term) < 1e-13 * std::abs(sum) || term == 0) {
138
- break;
139
- }
140
- }
141
-
142
- err = std::abs(term);
143
-
144
- if (err > 1e-13 * std::abs(sum)) {
145
- return std::numeric_limits<double>::quiet_NaN();
146
- }
147
-
148
- return sum;
149
- }
150
-
151
- } // namespace detail
152
-
153
- /* Sine and cosine integrals */
154
- XSF_HOST_DEVICE inline int shichi(double x, double *si, double *ci) {
155
- double k, z, c, s, a, b;
156
- short sign;
157
-
158
- if (x < 0.0) {
159
- sign = -1;
160
- x = -x;
161
- } else {
162
- sign = 0;
163
- }
164
-
165
- if (x == 0.0) {
166
- *si = 0.0;
167
- *ci = -std::numeric_limits<double>::infinity();
168
- return (0);
169
- }
170
-
171
- if (x >= 8.0) {
172
- goto chb;
173
- }
174
-
175
- if (x >= 88.0) {
176
- goto asymp;
177
- }
178
-
179
- z = x * x;
180
-
181
- /* Direct power series expansion */
182
- a = 1.0;
183
- s = 1.0;
184
- c = 0.0;
185
- k = 2.0;
186
-
187
- do {
188
- a *= z / k;
189
- c += a / k;
190
- k += 1.0;
191
- a /= k;
192
- s += a / k;
193
- k += 1.0;
194
- } while (std::abs(a / s) > detail::MACHEP);
195
-
196
- s *= x;
197
- goto done;
198
-
199
- chb:
200
- /* Chebyshev series expansions */
201
- if (x < 18.0) {
202
- a = (576.0 / x - 52.0) / 10.0;
203
- k = std::exp(x) / x;
204
- s = k * chbevl(a, detail::shichi_S1, 22);
205
- c = k * chbevl(a, detail::shichi_C1, 23);
206
- goto done;
207
- }
208
-
209
- if (x <= 88.0) {
210
- a = (6336.0 / x - 212.0) / 70.0;
211
- k = std::exp(x) / x;
212
- s = k * chbevl(a, detail::shichi_S2, 23);
213
- c = k * chbevl(a, detail::shichi_C2, 24);
214
- goto done;
215
- }
216
-
217
- asymp:
218
- if (x > 1000) {
219
- *si = std::numeric_limits<double>::infinity();
220
- *ci = std::numeric_limits<double>::infinity();
221
- } else {
222
- /* Asymptotic expansions
223
- * http://functions.wolfram.com/GammaBetaErf/CoshIntegral/06/02/
224
- * http://functions.wolfram.com/GammaBetaErf/SinhIntegral/06/02/0001/
225
- */
226
- a = detail::hyp3f0(0.5, 1, 1, 4.0 / (x * x));
227
- b = detail::hyp3f0(1, 1, 1.5, 4.0 / (x * x));
228
- *si = std::cosh(x) / x * a + std::sinh(x) / (x * x) * b;
229
- *ci = std::sinh(x) / x * a + std::cosh(x) / (x * x) * b;
230
- }
231
- if (sign) {
232
- *si = -*si;
233
- }
234
- return 0;
235
-
236
- done:
237
- if (sign) {
238
- s = -s;
239
- }
240
-
241
- *si = s;
242
-
243
- *ci = detail::SCIPY_EULER + std::log(x) + c;
244
- return (0);
245
- }
246
-
247
- } // namespace cephes
248
- } // namespace xsf
@@ -1,224 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* sici.c
6
- *
7
- * Sine and cosine integrals
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double x, Ci, Si, sici();
14
- *
15
- * sici( x, &Si, &Ci );
16
- *
17
- *
18
- * DESCRIPTION:
19
- *
20
- * Evaluates the integrals
21
- *
22
- * x
23
- * -
24
- * | cos t - 1
25
- * Ci(x) = eul + ln x + | --------- dt,
26
- * | t
27
- * -
28
- * 0
29
- * x
30
- * -
31
- * | sin t
32
- * Si(x) = | ----- dt
33
- * | t
34
- * -
35
- * 0
36
- *
37
- * where eul = 0.57721566490153286061 is Euler's constant.
38
- * The integrals are approximated by rational functions.
39
- * For x > 8 auxiliary functions f(x) and g(x) are employed
40
- * such that
41
- *
42
- * Ci(x) = f(x) sin(x) - g(x) cos(x)
43
- * Si(x) = pi/2 - f(x) cos(x) - g(x) sin(x)
44
- *
45
- *
46
- * ACCURACY:
47
- * Test interval = [0,50].
48
- * Absolute error, except relative when > 1:
49
- * arithmetic function # trials peak rms
50
- * IEEE Si 30000 4.4e-16 7.3e-17
51
- * IEEE Ci 30000 6.9e-16 5.1e-17
52
- */
53
-
54
- /*
55
- * Cephes Math Library Release 2.1: January, 1989
56
- * Copyright 1984, 1987, 1989 by Stephen L. Moshier
57
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140
58
- */
59
- #pragma once
60
-
61
- #include "../config.h"
62
-
63
- #include "const.h"
64
- #include "polevl.h"
65
-
66
- namespace xsf {
67
- namespace cephes {
68
-
69
- namespace detail {
70
-
71
- constexpr double sici_SN[] = {
72
- -8.39167827910303881427E-11, 4.62591714427012837309E-8, -9.75759303843632795789E-6,
73
- 9.76945438170435310816E-4, -4.13470316229406538752E-2, 1.00000000000000000302E0,
74
- };
75
-
76
- constexpr double sici_SD[] = {
77
- 2.03269266195951942049E-12, 1.27997891179943299903E-9, 4.41827842801218905784E-7,
78
- 9.96412122043875552487E-5, 1.42085239326149893930E-2, 9.99999999999999996984E-1,
79
- };
80
-
81
- constexpr double sici_CN[] = {
82
- 2.02524002389102268789E-11, -1.35249504915790756375E-8, 3.59325051419993077021E-6,
83
- -4.74007206873407909465E-4, 2.89159652607555242092E-2, -1.00000000000000000080E0,
84
- };
85
-
86
- constexpr double sici_CD[] = {
87
- 4.07746040061880559506E-12, 3.06780997581887812692E-9, 1.23210355685883423679E-6,
88
- 3.17442024775032769882E-4, 5.10028056236446052392E-2, 4.00000000000000000080E0,
89
- };
90
-
91
- constexpr double sici_FN4[] = {
92
- 4.23612862892216586994E0, 5.45937717161812843388E0, 1.62083287701538329132E0, 1.67006611831323023771E-1,
93
- 6.81020132472518137426E-3, 1.08936580650328664411E-4, 5.48900223421373614008E-7,
94
- };
95
-
96
- constexpr double sici_FD4[] = {
97
- /* 1.00000000000000000000E0, */
98
- 8.16496634205391016773E0, 7.30828822505564552187E0, 1.86792257950184183883E0, 1.78792052963149907262E-1,
99
- 7.01710668322789753610E-3, 1.10034357153915731354E-4, 5.48900252756255700982E-7,
100
- };
101
-
102
- constexpr double sici_FN8[] = {
103
- 4.55880873470465315206E-1, 7.13715274100146711374E-1, 1.60300158222319456320E-1,
104
- 1.16064229408124407915E-2, 3.49556442447859055605E-4, 4.86215430826454749482E-6,
105
- 3.20092790091004902806E-8, 9.41779576128512936592E-11, 9.70507110881952024631E-14,
106
- };
107
-
108
- constexpr double sici_FD8[] = {
109
- /* 1.00000000000000000000E0, */
110
- 9.17463611873684053703E-1, 1.78685545332074536321E-1, 1.22253594771971293032E-2,
111
- 3.58696481881851580297E-4, 4.92435064317881464393E-6, 3.21956939101046018377E-8,
112
- 9.43720590350276732376E-11, 9.70507110881952025725E-14,
113
- };
114
-
115
- constexpr double sici_GN4[] = {
116
- 8.71001698973114191777E-2, 6.11379109952219284151E-1, 3.97180296392337498885E-1, 7.48527737628469092119E-2,
117
- 5.38868681462177273157E-3, 1.61999794598934024525E-4, 1.97963874140963632189E-6, 7.82579040744090311069E-9,
118
- };
119
-
120
- constexpr double sici_GD4[] = {
121
- /* 1.00000000000000000000E0, */
122
- 1.64402202413355338886E0, 6.66296701268987968381E-1, 9.88771761277688796203E-2, 6.22396345441768420760E-3,
123
- 1.73221081474177119497E-4, 2.02659182086343991969E-6, 7.82579218933534490868E-9,
124
- };
125
-
126
- constexpr double sici_GN8[] = {
127
- 6.97359953443276214934E-1, 3.30410979305632063225E-1, 3.84878767649974295920E-2,
128
- 1.71718239052347903558E-3, 3.48941165502279436777E-5, 3.47131167084116673800E-7,
129
- 1.70404452782044526189E-9, 3.85945925430276600453E-12, 3.14040098946363334640E-15,
130
- };
131
-
132
- constexpr double sici_GD8[] = {
133
- /* 1.00000000000000000000E0, */
134
- 1.68548898811011640017E0, 4.87852258695304967486E-1, 4.67913194259625806320E-2,
135
- 1.90284426674399523638E-3, 3.68475504442561108162E-5, 3.57043223443740838771E-7,
136
- 1.72693748966316146736E-9, 3.87830166023954706752E-12, 3.14040098946363335242E-15,
137
- };
138
-
139
- } // namespace detail
140
-
141
- XSF_HOST_DEVICE inline int sici(double x, double *si, double *ci) {
142
- double z, c, s, f, g;
143
- short sign;
144
-
145
- if (x < 0.0) {
146
- sign = -1;
147
- x = -x;
148
- } else {
149
- sign = 0;
150
- }
151
-
152
- if (x == 0.0) {
153
- *si = 0.0;
154
- *ci = -std::numeric_limits<double>::infinity();
155
- return (0);
156
- }
157
-
158
- if (x > 1.0e9) {
159
- if (std::isinf(x)) {
160
- if (sign == -1) {
161
- *si = -M_PI_2;
162
- *ci = std::numeric_limits<double>::quiet_NaN();
163
- } else {
164
- *si = M_PI_2;
165
- *ci = 0;
166
- }
167
- return 0;
168
- }
169
- *si = M_PI_2 - std::cos(x) / x;
170
- *ci = std::sin(x) / x;
171
- }
172
-
173
- if (x > 4.0) {
174
- goto asympt;
175
- }
176
-
177
- z = x * x;
178
- s = x * polevl(z, detail::sici_SN, 5) / polevl(z, detail::sici_SD, 5);
179
- c = z * polevl(z, detail::sici_CN, 5) / polevl(z, detail::sici_CD, 5);
180
-
181
- if (sign) {
182
- s = -s;
183
- }
184
- *si = s;
185
- *ci = detail::SCIPY_EULER + std::log(x) + c; /* real part if x < 0 */
186
- return (0);
187
-
188
- /* The auxiliary functions are:
189
- *
190
- *
191
- * *si = *si - M_PI_2;
192
- * c = cos(x);
193
- * s = sin(x);
194
- *
195
- * t = *ci * s - *si * c;
196
- * a = *ci * c + *si * s;
197
- *
198
- * *si = t;
199
- * *ci = -a;
200
- */
201
-
202
- asympt:
203
-
204
- s = std::sin(x);
205
- c = std::cos(x);
206
- z = 1.0 / (x * x);
207
- if (x < 8.0) {
208
- f = polevl(z, detail::sici_FN4, 6) / (x * p1evl(z, detail::sici_FD4, 7));
209
- g = z * polevl(z, detail::sici_GN4, 7) / p1evl(z, detail::sici_GD4, 7);
210
- } else {
211
- f = polevl(z, detail::sici_FN8, 8) / (x * p1evl(z, detail::sici_FD8, 8));
212
- g = z * polevl(z, detail::sici_GN8, 8) / p1evl(z, detail::sici_GD8, 9);
213
- }
214
- *si = M_PI_2 - f * c - g * s;
215
- if (sign) {
216
- *si = -(*si);
217
- }
218
- *ci = f * s - g * c;
219
-
220
- return (0);
221
- }
222
-
223
- } // namespace cephes
224
- } // namespace xsf
@@ -1,221 +0,0 @@
1
- /* Translated into C++ by SciPy developers in 2024.
2
- * Original header with Copyright information appears below.
3
- */
4
-
5
- /* sindg.c
6
- *
7
- * Circular sine of angle in degrees
8
- *
9
- *
10
- *
11
- * SYNOPSIS:
12
- *
13
- * double x, y, sindg();
14
- *
15
- * y = sindg( x );
16
- *
17
- *
18
- *
19
- * DESCRIPTION:
20
- *
21
- * Range reduction is into intervals of 45 degrees.
22
- *
23
- * Two polynomial approximating functions are employed.
24
- * Between 0 and pi/4 the sine is approximated by
25
- * x + x**3 P(x**2).
26
- * Between pi/4 and pi/2 the cosine is represented as
27
- * 1 - x**2 P(x**2).
28
- *
29
- *
30
- *
31
- * ACCURACY:
32
- *
33
- * Relative error:
34
- * arithmetic domain # trials peak rms
35
- * IEEE +-1000 30000 2.3e-16 5.6e-17
36
- *
37
- * ERROR MESSAGES:
38
- *
39
- * message condition value returned
40
- * sindg total loss x > 1.0e14 (IEEE) 0.0
41
- *
42
- */
43
- /* cosdg.c
44
- *
45
- * Circular cosine of angle in degrees
46
- *
47
- *
48
- *
49
- * SYNOPSIS:
50
- *
51
- * double x, y, cosdg();
52
- *
53
- * y = cosdg( x );
54
- *
55
- *
56
- *
57
- * DESCRIPTION:
58
- *
59
- * Range reduction is into intervals of 45 degrees.
60
- *
61
- * Two polynomial approximating functions are employed.
62
- * Between 0 and pi/4 the cosine is approximated by
63
- * 1 - x**2 P(x**2).
64
- * Between pi/4 and pi/2 the sine is represented as
65
- * x + x**3 P(x**2).
66
- *
67
- *
68
- * ACCURACY:
69
- *
70
- * Relative error:
71
- * arithmetic domain # trials peak rms
72
- * IEEE +-1000 30000 2.1e-16 5.7e-17
73
- * See also sin().
74
- *
75
- */
76
-
77
- /* Cephes Math Library Release 2.0: April, 1987
78
- * Copyright 1985, 1987 by Stephen L. Moshier
79
- * Direct inquiries to 30 Frost Street, Cambridge, MA 02140 */
80
- #pragma once
81
-
82
- #include "../config.h"
83
- #include "../error.h"
84
-
85
- #include "const.h"
86
- #include "polevl.h"
87
-
88
- namespace xsf {
89
- namespace cephes {
90
-
91
- namespace detail {
92
-
93
- constexpr double sincof[] = {1.58962301572218447952E-10, -2.50507477628503540135E-8,
94
- 2.75573136213856773549E-6, -1.98412698295895384658E-4,
95
- 8.33333333332211858862E-3, -1.66666666666666307295E-1};
96
-
97
- constexpr double coscof[] = {1.13678171382044553091E-11, -2.08758833757683644217E-9, 2.75573155429816611547E-7,
98
- -2.48015872936186303776E-5, 1.38888888888806666760E-3, -4.16666666666666348141E-2,
99
- 4.99999999999999999798E-1};
100
-
101
- constexpr double sindg_lossth = 1.0e14;
102
-
103
- } // namespace detail
104
-
105
- XSF_HOST_DEVICE inline double sindg(double x) {
106
- double y, z, zz;
107
- int j, sign;
108
-
109
- /* make argument positive but save the sign */
110
- sign = 1;
111
- if (x < 0) {
112
- x = -x;
113
- sign = -1;
114
- }
115
-
116
- if (x > detail::sindg_lossth) {
117
- set_error("sindg", SF_ERROR_NO_RESULT, NULL);
118
- return (0.0);
119
- }
120
-
121
- y = std::floor(x / 45.0); /* integer part of x/M_PI_4 */
122
-
123
- /* strip high bits of integer part to prevent integer overflow */
124
- z = std::ldexp(y, -4);
125
- z = std::floor(z); /* integer part of y/8 */
126
- z = y - std::ldexp(z, 4); /* y - 16 * (y/16) */
127
-
128
- j = z; /* convert to integer for tests on the phase angle */
129
- /* map zeros to origin */
130
- if (j & 1) {
131
- j += 1;
132
- y += 1.0;
133
- }
134
- j = j & 07; /* octant modulo 360 degrees */
135
- /* reflect in x axis */
136
- if (j > 3) {
137
- sign = -sign;
138
- j -= 4;
139
- }
140
-
141
- z = x - y * 45.0; /* x mod 45 degrees */
142
- z *= detail::PI180; /* multiply by pi/180 to convert to radians */
143
- zz = z * z;
144
-
145
- if ((j == 1) || (j == 2)) {
146
- y = 1.0 - zz * polevl(zz, detail::coscof, 6);
147
- } else {
148
- y = z + z * (zz * polevl(zz, detail::sincof, 5));
149
- }
150
-
151
- if (sign < 0)
152
- y = -y;
153
-
154
- return (y);
155
- }
156
-
157
- XSF_HOST_DEVICE inline double cosdg(double x) {
158
- double y, z, zz;
159
- int j, sign;
160
-
161
- /* make argument positive */
162
- sign = 1;
163
- if (x < 0)
164
- x = -x;
165
-
166
- if (x > detail::sindg_lossth) {
167
- set_error("cosdg", SF_ERROR_NO_RESULT, NULL);
168
- return (0.0);
169
- }
170
-
171
- y = std::floor(x / 45.0);
172
- z = std::ldexp(y, -4);
173
- z = std::floor(z); /* integer part of y/8 */
174
- z = y - std::ldexp(z, 4); /* y - 16 * (y/16) */
175
-
176
- /* integer and fractional part modulo one octant */
177
- j = z;
178
- if (j & 1) { /* map zeros to origin */
179
- j += 1;
180
- y += 1.0;
181
- }
182
- j = j & 07;
183
- if (j > 3) {
184
- j -= 4;
185
- sign = -sign;
186
- }
187
-
188
- if (j > 1)
189
- sign = -sign;
190
-
191
- z = x - y * 45.0; /* x mod 45 degrees */
192
- z *= detail::PI180; /* multiply by pi/180 to convert to radians */
193
-
194
- zz = z * z;
195
-
196
- if ((j == 1) || (j == 2)) {
197
- y = z + z * (zz * polevl(zz, detail::sincof, 5));
198
- } else {
199
- y = 1.0 - zz * polevl(zz, detail::coscof, 6);
200
- }
201
-
202
- if (sign < 0)
203
- y = -y;
204
-
205
- return (y);
206
- }
207
-
208
- /* Degrees, minutes, seconds to radians: */
209
-
210
- /* 1 arc second, in radians = 4.848136811095359935899141023579479759563533023727e-6 */
211
-
212
- namespace detail {
213
- constexpr double sindg_P64800 = 4.848136811095359935899141023579479759563533023727e-6;
214
- }
215
-
216
- XSF_HOST_DEVICE inline double radian(double d, double m, double s) {
217
- return (((d * 60.0 + m) * 60.0 + s) * detail::sindg_P64800);
218
- }
219
-
220
- } // namespace cephes
221
- } // namespace xsf