scipy 1.15.3__cp313-cp313-macosx_12_0_arm64.whl → 1.16.0rc2__cp313-cp313-macosx_12_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.
- scipy/.dylibs/libscipy_openblas.dylib +0 -0
- scipy/__config__.py +8 -8
- scipy/__init__.py +3 -6
- scipy/_cyutility.cpython-313-darwin.so +0 -0
- scipy/_lib/_array_api.py +486 -161
- scipy/_lib/_array_api_compat_vendor.py +9 -0
- scipy/_lib/_bunch.py +4 -0
- scipy/_lib/_ccallback_c.cpython-313-darwin.so +0 -0
- scipy/_lib/_docscrape.py +1 -1
- scipy/_lib/_elementwise_iterative_method.py +15 -26
- scipy/_lib/_sparse.py +41 -0
- scipy/_lib/_test_deprecation_call.cpython-313-darwin.so +0 -0
- scipy/_lib/_test_deprecation_def.cpython-313-darwin.so +0 -0
- scipy/_lib/_testutils.py +6 -2
- scipy/_lib/_util.py +222 -125
- scipy/_lib/array_api_compat/__init__.py +4 -4
- scipy/_lib/array_api_compat/_internal.py +19 -6
- scipy/_lib/array_api_compat/common/__init__.py +1 -1
- scipy/_lib/array_api_compat/common/_aliases.py +365 -193
- scipy/_lib/array_api_compat/common/_fft.py +94 -64
- scipy/_lib/array_api_compat/common/_helpers.py +413 -180
- scipy/_lib/array_api_compat/common/_linalg.py +116 -40
- scipy/_lib/array_api_compat/common/_typing.py +179 -10
- scipy/_lib/array_api_compat/cupy/__init__.py +1 -4
- scipy/_lib/array_api_compat/cupy/_aliases.py +61 -41
- scipy/_lib/array_api_compat/cupy/_info.py +16 -6
- scipy/_lib/array_api_compat/cupy/_typing.py +24 -39
- scipy/_lib/array_api_compat/dask/array/__init__.py +6 -3
- scipy/_lib/array_api_compat/dask/array/_aliases.py +267 -108
- scipy/_lib/array_api_compat/dask/array/_info.py +105 -34
- scipy/_lib/array_api_compat/dask/array/fft.py +5 -8
- scipy/_lib/array_api_compat/dask/array/linalg.py +21 -22
- scipy/_lib/array_api_compat/numpy/__init__.py +13 -15
- scipy/_lib/array_api_compat/numpy/_aliases.py +98 -49
- scipy/_lib/array_api_compat/numpy/_info.py +36 -16
- scipy/_lib/array_api_compat/numpy/_typing.py +27 -43
- scipy/_lib/array_api_compat/numpy/fft.py +11 -5
- scipy/_lib/array_api_compat/numpy/linalg.py +75 -22
- scipy/_lib/array_api_compat/torch/__init__.py +3 -5
- scipy/_lib/array_api_compat/torch/_aliases.py +262 -159
- scipy/_lib/array_api_compat/torch/_info.py +27 -16
- scipy/_lib/array_api_compat/torch/_typing.py +3 -0
- scipy/_lib/array_api_compat/torch/fft.py +17 -18
- scipy/_lib/array_api_compat/torch/linalg.py +16 -16
- scipy/_lib/array_api_extra/__init__.py +26 -3
- scipy/_lib/array_api_extra/_delegation.py +171 -0
- scipy/_lib/array_api_extra/_lib/__init__.py +1 -0
- scipy/_lib/array_api_extra/_lib/_at.py +463 -0
- scipy/_lib/array_api_extra/_lib/_backends.py +46 -0
- scipy/_lib/array_api_extra/_lib/_funcs.py +937 -0
- scipy/_lib/array_api_extra/_lib/_lazy.py +357 -0
- scipy/_lib/array_api_extra/_lib/_testing.py +278 -0
- scipy/_lib/array_api_extra/_lib/_utils/__init__.py +1 -0
- scipy/_lib/array_api_extra/_lib/_utils/_compat.py +74 -0
- scipy/_lib/array_api_extra/_lib/_utils/_compat.pyi +45 -0
- scipy/_lib/array_api_extra/_lib/_utils/_helpers.py +559 -0
- scipy/_lib/array_api_extra/_lib/_utils/_typing.py +10 -0
- scipy/_lib/array_api_extra/_lib/_utils/_typing.pyi +105 -0
- scipy/_lib/array_api_extra/testing.py +359 -0
- scipy/_lib/decorator.py +2 -2
- scipy/_lib/doccer.py +1 -7
- scipy/_lib/messagestream.cpython-313-darwin.so +0 -0
- scipy/_lib/pyprima/__init__.py +212 -0
- scipy/_lib/pyprima/cobyla/__init__.py +0 -0
- scipy/_lib/pyprima/cobyla/cobyla.py +559 -0
- scipy/_lib/pyprima/cobyla/cobylb.py +714 -0
- scipy/_lib/pyprima/cobyla/geometry.py +226 -0
- scipy/_lib/pyprima/cobyla/initialize.py +215 -0
- scipy/_lib/pyprima/cobyla/trustregion.py +492 -0
- scipy/_lib/pyprima/cobyla/update.py +289 -0
- scipy/_lib/pyprima/common/__init__.py +0 -0
- scipy/_lib/pyprima/common/_bounds.py +34 -0
- scipy/_lib/pyprima/common/_linear_constraints.py +46 -0
- scipy/_lib/pyprima/common/_nonlinear_constraints.py +54 -0
- scipy/_lib/pyprima/common/_project.py +173 -0
- scipy/_lib/pyprima/common/checkbreak.py +93 -0
- scipy/_lib/pyprima/common/consts.py +47 -0
- scipy/_lib/pyprima/common/evaluate.py +99 -0
- scipy/_lib/pyprima/common/history.py +38 -0
- scipy/_lib/pyprima/common/infos.py +30 -0
- scipy/_lib/pyprima/common/linalg.py +435 -0
- scipy/_lib/pyprima/common/message.py +290 -0
- scipy/_lib/pyprima/common/powalg.py +131 -0
- scipy/_lib/pyprima/common/preproc.py +277 -0
- scipy/_lib/pyprima/common/present.py +5 -0
- scipy/_lib/pyprima/common/ratio.py +54 -0
- scipy/_lib/pyprima/common/redrho.py +47 -0
- scipy/_lib/pyprima/common/selectx.py +296 -0
- scipy/_lib/tests/test__util.py +105 -121
- scipy/_lib/tests/test_array_api.py +166 -35
- scipy/_lib/tests/test_bunch.py +7 -0
- scipy/_lib/tests/test_ccallback.py +2 -10
- scipy/_lib/tests/test_public_api.py +13 -0
- scipy/cluster/_hierarchy.cpython-313-darwin.so +0 -0
- scipy/cluster/_optimal_leaf_ordering.cpython-313-darwin.so +0 -0
- scipy/cluster/_vq.cpython-313-darwin.so +0 -0
- scipy/cluster/hierarchy.py +393 -223
- scipy/cluster/tests/test_hierarchy.py +273 -335
- scipy/cluster/tests/test_vq.py +45 -61
- scipy/cluster/vq.py +39 -35
- scipy/conftest.py +263 -157
- scipy/constants/_constants.py +4 -1
- scipy/constants/tests/test_codata.py +2 -2
- scipy/constants/tests/test_constants.py +11 -18
- scipy/datasets/_download_all.py +15 -1
- scipy/datasets/_fetchers.py +7 -1
- scipy/datasets/_utils.py +1 -1
- scipy/differentiate/_differentiate.py +25 -25
- scipy/differentiate/tests/test_differentiate.py +24 -25
- scipy/fft/_basic.py +20 -0
- scipy/fft/_helper.py +3 -34
- scipy/fft/_pocketfft/helper.py +29 -1
- scipy/fft/_pocketfft/tests/test_basic.py +2 -4
- scipy/fft/_pocketfft/tests/test_real_transforms.py +4 -4
- scipy/fft/_realtransforms.py +13 -0
- scipy/fft/tests/test_basic.py +27 -25
- scipy/fft/tests/test_fftlog.py +16 -7
- scipy/fft/tests/test_helper.py +18 -34
- scipy/fft/tests/test_real_transforms.py +8 -10
- scipy/fftpack/convolve.cpython-313-darwin.so +0 -0
- scipy/fftpack/tests/test_basic.py +2 -4
- scipy/fftpack/tests/test_real_transforms.py +8 -9
- scipy/integrate/_bvp.py +9 -3
- scipy/integrate/_cubature.py +3 -2
- scipy/integrate/_dop.cpython-313-darwin.so +0 -0
- scipy/integrate/_lsoda.cpython-313-darwin.so +0 -0
- scipy/integrate/_ode.py +9 -2
- scipy/integrate/_odepack.cpython-313-darwin.so +0 -0
- scipy/integrate/_quad_vec.py +21 -29
- scipy/integrate/_quadpack.cpython-313-darwin.so +0 -0
- scipy/integrate/_quadpack_py.py +11 -7
- scipy/integrate/_quadrature.py +3 -3
- scipy/integrate/_rules/_base.py +2 -2
- scipy/integrate/_tanhsinh.py +48 -47
- scipy/integrate/_test_odeint_banded.cpython-313-darwin.so +0 -0
- scipy/integrate/_vode.cpython-313-darwin.so +0 -0
- scipy/integrate/tests/test__quad_vec.py +0 -6
- scipy/integrate/tests/test_banded_ode_solvers.py +85 -0
- scipy/integrate/tests/test_cubature.py +21 -35
- scipy/integrate/tests/test_quadrature.py +6 -8
- scipy/integrate/tests/test_tanhsinh.py +56 -48
- scipy/interpolate/__init__.py +70 -58
- scipy/interpolate/_bary_rational.py +22 -22
- scipy/interpolate/_bsplines.py +119 -66
- scipy/interpolate/_cubic.py +65 -50
- scipy/interpolate/_dfitpack.cpython-313-darwin.so +0 -0
- scipy/interpolate/_dierckx.cpython-313-darwin.so +0 -0
- scipy/interpolate/_fitpack.cpython-313-darwin.so +0 -0
- scipy/interpolate/_fitpack2.py +9 -6
- scipy/interpolate/_fitpack_impl.py +32 -26
- scipy/interpolate/_fitpack_repro.py +23 -19
- scipy/interpolate/_interpnd.cpython-313-darwin.so +0 -0
- scipy/interpolate/_interpolate.py +30 -12
- scipy/interpolate/_ndbspline.py +13 -18
- scipy/interpolate/_ndgriddata.py +5 -8
- scipy/interpolate/_polyint.py +95 -31
- scipy/interpolate/_ppoly.cpython-313-darwin.so +0 -0
- scipy/interpolate/_rbf.py +2 -2
- scipy/interpolate/_rbfinterp.py +1 -1
- scipy/interpolate/_rbfinterp_pythran.cpython-313-darwin.so +0 -0
- scipy/interpolate/_rgi.py +31 -26
- scipy/interpolate/_rgi_cython.cpython-313-darwin.so +0 -0
- scipy/interpolate/dfitpack.py +0 -20
- scipy/interpolate/interpnd.py +1 -2
- scipy/interpolate/tests/test_bary_rational.py +2 -2
- scipy/interpolate/tests/test_bsplines.py +97 -1
- scipy/interpolate/tests/test_fitpack2.py +39 -1
- scipy/interpolate/tests/test_interpnd.py +32 -20
- scipy/interpolate/tests/test_interpolate.py +48 -4
- scipy/interpolate/tests/test_rgi.py +2 -1
- scipy/io/_fast_matrix_market/__init__.py +2 -0
- scipy/io/_harwell_boeing/_fortran_format_parser.py +19 -16
- scipy/io/_harwell_boeing/hb.py +7 -11
- scipy/io/_idl.py +5 -7
- scipy/io/_netcdf.py +15 -5
- scipy/io/_test_fortran.cpython-313-darwin.so +0 -0
- scipy/io/arff/tests/test_arffread.py +3 -3
- scipy/io/matlab/__init__.py +5 -3
- scipy/io/matlab/_mio.py +4 -1
- scipy/io/matlab/_mio5.py +19 -13
- scipy/io/matlab/_mio5_utils.cpython-313-darwin.so +0 -0
- scipy/io/matlab/_mio_utils.cpython-313-darwin.so +0 -0
- scipy/io/matlab/_miobase.py +4 -1
- scipy/io/matlab/_streams.cpython-313-darwin.so +0 -0
- scipy/io/matlab/tests/test_mio.py +46 -18
- scipy/io/matlab/tests/test_mio_funcs.py +1 -1
- scipy/io/tests/test_mmio.py +7 -1
- scipy/io/tests/test_wavfile.py +41 -0
- scipy/io/wavfile.py +57 -10
- scipy/linalg/_basic.py +113 -86
- scipy/linalg/_cythonized_array_utils.cpython-313-darwin.so +0 -0
- scipy/linalg/_decomp.py +22 -9
- scipy/linalg/_decomp_cholesky.py +28 -13
- scipy/linalg/_decomp_cossin.py +45 -30
- scipy/linalg/_decomp_interpolative.cpython-313-darwin.so +0 -0
- scipy/linalg/_decomp_ldl.py +4 -1
- scipy/linalg/_decomp_lu.py +18 -6
- scipy/linalg/_decomp_lu_cython.cpython-313-darwin.so +0 -0
- scipy/linalg/_decomp_polar.py +2 -0
- scipy/linalg/_decomp_qr.py +6 -2
- scipy/linalg/_decomp_qz.py +3 -0
- scipy/linalg/_decomp_schur.py +3 -1
- scipy/linalg/_decomp_svd.py +13 -2
- scipy/linalg/_decomp_update.cpython-313-darwin.so +0 -0
- scipy/linalg/_expm_frechet.py +4 -0
- scipy/linalg/_fblas.cpython-313-darwin.so +0 -0
- scipy/linalg/_flapack.cpython-313-darwin.so +0 -0
- scipy/linalg/_linalg_pythran.cpython-313-darwin.so +0 -0
- scipy/linalg/_matfuncs.py +187 -4
- scipy/linalg/_matfuncs_expm.cpython-313-darwin.so +0 -0
- scipy/linalg/_matfuncs_schur_sqrtm.cpython-313-darwin.so +0 -0
- scipy/linalg/_matfuncs_sqrtm.py +1 -99
- scipy/linalg/_matfuncs_sqrtm_triu.cpython-313-darwin.so +0 -0
- scipy/linalg/_procrustes.py +2 -0
- scipy/linalg/_sketches.py +17 -6
- scipy/linalg/_solve_toeplitz.cpython-313-darwin.so +0 -0
- scipy/linalg/_solvers.py +7 -2
- scipy/linalg/_special_matrices.py +26 -36
- scipy/linalg/cython_blas.cpython-313-darwin.so +0 -0
- scipy/linalg/cython_lapack.cpython-313-darwin.so +0 -0
- scipy/linalg/lapack.py +22 -2
- scipy/linalg/tests/_cython_examples/meson.build +7 -0
- scipy/linalg/tests/test_basic.py +31 -16
- scipy/linalg/tests/test_batch.py +588 -0
- scipy/linalg/tests/test_cythonized_array_utils.py +0 -2
- scipy/linalg/tests/test_decomp.py +40 -3
- scipy/linalg/tests/test_decomp_cossin.py +14 -0
- scipy/linalg/tests/test_decomp_ldl.py +1 -1
- scipy/linalg/tests/test_lapack.py +115 -7
- scipy/linalg/tests/test_matfuncs.py +157 -102
- scipy/linalg/tests/test_procrustes.py +0 -7
- scipy/linalg/tests/test_solve_toeplitz.py +1 -1
- scipy/linalg/tests/test_special_matrices.py +1 -5
- scipy/ndimage/__init__.py +1 -0
- scipy/ndimage/_cytest.cpython-313-darwin.so +0 -0
- scipy/ndimage/_delegators.py +8 -2
- scipy/ndimage/_filters.py +453 -5
- scipy/ndimage/_interpolation.py +36 -6
- scipy/ndimage/_measurements.py +4 -2
- scipy/ndimage/_morphology.py +5 -0
- scipy/ndimage/_nd_image.cpython-313-darwin.so +0 -0
- scipy/ndimage/_ni_docstrings.py +5 -1
- scipy/ndimage/_ni_label.cpython-313-darwin.so +0 -0
- scipy/ndimage/_ni_support.py +1 -5
- scipy/ndimage/_rank_filter_1d.cpython-313-darwin.so +0 -0
- scipy/ndimage/_support_alternative_backends.py +18 -6
- scipy/ndimage/tests/test_filters.py +370 -259
- scipy/ndimage/tests/test_fourier.py +7 -9
- scipy/ndimage/tests/test_interpolation.py +68 -61
- scipy/ndimage/tests/test_measurements.py +18 -35
- scipy/ndimage/tests/test_morphology.py +143 -131
- scipy/ndimage/tests/test_splines.py +1 -3
- scipy/odr/__odrpack.cpython-313-darwin.so +0 -0
- scipy/optimize/_basinhopping.py +13 -7
- scipy/optimize/_bglu_dense.cpython-313-darwin.so +0 -0
- scipy/optimize/_bracket.py +17 -24
- scipy/optimize/_chandrupatla.py +9 -10
- scipy/optimize/_cobyla_py.py +104 -123
- scipy/optimize/_constraints.py +14 -10
- scipy/optimize/_differentiable_functions.py +371 -230
- scipy/optimize/_differentialevolution.py +4 -3
- scipy/optimize/_direct.cpython-313-darwin.so +0 -0
- scipy/optimize/_dual_annealing.py +1 -1
- scipy/optimize/_elementwise.py +1 -4
- scipy/optimize/_group_columns.cpython-313-darwin.so +0 -0
- scipy/optimize/_lbfgsb.cpython-313-darwin.so +0 -0
- scipy/optimize/_lbfgsb_py.py +57 -16
- scipy/optimize/_linprog_doc.py +2 -2
- scipy/optimize/_linprog_highs.py +2 -2
- scipy/optimize/_linprog_ip.py +25 -10
- scipy/optimize/_linprog_util.py +14 -16
- scipy/optimize/_lsap.cpython-313-darwin.so +0 -0
- scipy/optimize/_lsq/common.py +3 -3
- scipy/optimize/_lsq/dogbox.py +16 -2
- scipy/optimize/_lsq/givens_elimination.cpython-313-darwin.so +0 -0
- scipy/optimize/_lsq/least_squares.py +198 -126
- scipy/optimize/_lsq/lsq_linear.py +6 -6
- scipy/optimize/_lsq/trf.py +35 -8
- scipy/optimize/_milp.py +3 -1
- scipy/optimize/_minimize.py +105 -36
- scipy/optimize/_minpack.cpython-313-darwin.so +0 -0
- scipy/optimize/_minpack_py.py +21 -14
- scipy/optimize/_moduleTNC.cpython-313-darwin.so +0 -0
- scipy/optimize/_nnls.py +20 -21
- scipy/optimize/_nonlin.py +34 -3
- scipy/optimize/_numdiff.py +288 -110
- scipy/optimize/_optimize.py +86 -48
- scipy/optimize/_pava_pybind.cpython-313-darwin.so +0 -0
- scipy/optimize/_remove_redundancy.py +5 -5
- scipy/optimize/_root_scalar.py +1 -1
- scipy/optimize/_shgo.py +6 -0
- scipy/optimize/_shgo_lib/_complex.py +1 -1
- scipy/optimize/_slsqp_py.py +216 -124
- scipy/optimize/_slsqplib.cpython-313-darwin.so +0 -0
- scipy/optimize/_spectral.py +1 -1
- scipy/optimize/_tnc.py +8 -1
- scipy/optimize/_trlib/_trlib.cpython-313-darwin.so +0 -0
- scipy/optimize/_trustregion.py +20 -6
- scipy/optimize/_trustregion_constr/canonical_constraint.py +7 -7
- scipy/optimize/_trustregion_constr/equality_constrained_sqp.py +1 -1
- scipy/optimize/_trustregion_constr/minimize_trustregion_constr.py +11 -3
- scipy/optimize/_trustregion_constr/projections.py +12 -8
- scipy/optimize/_trustregion_constr/qp_subproblem.py +9 -9
- scipy/optimize/_trustregion_constr/tests/test_projections.py +7 -7
- scipy/optimize/_trustregion_constr/tests/test_qp_subproblem.py +77 -77
- scipy/optimize/_trustregion_constr/tr_interior_point.py +5 -5
- scipy/optimize/_trustregion_exact.py +0 -1
- scipy/optimize/_zeros.cpython-313-darwin.so +0 -0
- scipy/optimize/_zeros_py.py +97 -17
- scipy/optimize/cython_optimize/_zeros.cpython-313-darwin.so +0 -0
- scipy/optimize/slsqp.py +0 -1
- scipy/optimize/tests/test__basinhopping.py +1 -1
- scipy/optimize/tests/test__differential_evolution.py +4 -4
- scipy/optimize/tests/test__linprog_clean_inputs.py +5 -3
- scipy/optimize/tests/test__numdiff.py +66 -22
- scipy/optimize/tests/test__remove_redundancy.py +2 -2
- scipy/optimize/tests/test__shgo.py +9 -1
- scipy/optimize/tests/test_bracket.py +36 -46
- scipy/optimize/tests/test_chandrupatla.py +133 -135
- scipy/optimize/tests/test_cobyla.py +74 -45
- scipy/optimize/tests/test_constraints.py +1 -1
- scipy/optimize/tests/test_differentiable_functions.py +226 -6
- scipy/optimize/tests/test_lbfgsb_hessinv.py +22 -0
- scipy/optimize/tests/test_least_squares.py +125 -13
- scipy/optimize/tests/test_linear_assignment.py +3 -3
- scipy/optimize/tests/test_linprog.py +3 -3
- scipy/optimize/tests/test_lsq_linear.py +6 -6
- scipy/optimize/tests/test_minimize_constrained.py +2 -2
- scipy/optimize/tests/test_minpack.py +4 -4
- scipy/optimize/tests/test_nnls.py +43 -3
- scipy/optimize/tests/test_nonlin.py +36 -0
- scipy/optimize/tests/test_optimize.py +95 -17
- scipy/optimize/tests/test_slsqp.py +36 -4
- scipy/optimize/tests/test_zeros.py +34 -1
- scipy/signal/__init__.py +12 -23
- scipy/signal/_delegators.py +568 -0
- scipy/signal/_filter_design.py +459 -241
- scipy/signal/_fir_filter_design.py +262 -90
- scipy/signal/_lti_conversion.py +3 -2
- scipy/signal/_ltisys.py +118 -91
- scipy/signal/_max_len_seq_inner.cpython-313-darwin.so +0 -0
- scipy/signal/_peak_finding_utils.cpython-313-darwin.so +0 -0
- scipy/signal/_polyutils.py +172 -0
- scipy/signal/_short_time_fft.py +519 -70
- scipy/signal/_signal_api.py +30 -0
- scipy/signal/_signaltools.py +719 -399
- scipy/signal/_sigtools.cpython-313-darwin.so +0 -0
- scipy/signal/_sosfilt.cpython-313-darwin.so +0 -0
- scipy/signal/_spectral_py.py +230 -50
- scipy/signal/_spline.cpython-313-darwin.so +0 -0
- scipy/signal/_spline_filters.py +108 -68
- scipy/signal/_support_alternative_backends.py +73 -0
- scipy/signal/_upfirdn.py +4 -1
- scipy/signal/_upfirdn_apply.cpython-313-darwin.so +0 -0
- scipy/signal/_waveforms.py +2 -11
- scipy/signal/_wavelets.py +1 -1
- scipy/signal/fir_filter_design.py +1 -0
- scipy/signal/spline.py +4 -11
- scipy/signal/tests/_scipy_spectral_test_shim.py +2 -171
- scipy/signal/tests/test_bsplines.py +114 -79
- scipy/signal/tests/test_cont2discrete.py +9 -2
- scipy/signal/tests/test_filter_design.py +721 -481
- scipy/signal/tests/test_fir_filter_design.py +332 -140
- scipy/signal/tests/test_savitzky_golay.py +4 -3
- scipy/signal/tests/test_short_time_fft.py +221 -3
- scipy/signal/tests/test_signaltools.py +2144 -1348
- scipy/signal/tests/test_spectral.py +50 -6
- scipy/signal/tests/test_splines.py +161 -96
- scipy/signal/tests/test_upfirdn.py +84 -50
- scipy/signal/tests/test_waveforms.py +20 -0
- scipy/signal/tests/test_windows.py +607 -466
- scipy/signal/windows/_windows.py +287 -148
- scipy/sparse/__init__.py +23 -4
- scipy/sparse/_base.py +270 -108
- scipy/sparse/_bsr.py +7 -4
- scipy/sparse/_compressed.py +59 -231
- scipy/sparse/_construct.py +90 -38
- scipy/sparse/_coo.py +115 -181
- scipy/sparse/_csc.py +4 -4
- scipy/sparse/_csparsetools.cpython-313-darwin.so +0 -0
- scipy/sparse/_csr.py +2 -2
- scipy/sparse/_data.py +48 -48
- scipy/sparse/_dia.py +105 -18
- scipy/sparse/_dok.py +0 -23
- scipy/sparse/_index.py +4 -4
- scipy/sparse/_matrix.py +23 -0
- scipy/sparse/_sparsetools.cpython-313-darwin.so +0 -0
- scipy/sparse/_sputils.py +37 -22
- scipy/sparse/base.py +0 -9
- scipy/sparse/bsr.py +0 -14
- scipy/sparse/compressed.py +0 -23
- scipy/sparse/construct.py +0 -6
- scipy/sparse/coo.py +0 -14
- scipy/sparse/csc.py +0 -3
- scipy/sparse/csgraph/_flow.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/_matching.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/_min_spanning_tree.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/_reordering.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/_shortest_path.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/_tools.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/_traversal.cpython-313-darwin.so +0 -0
- scipy/sparse/csgraph/tests/test_matching.py +14 -2
- scipy/sparse/csgraph/tests/test_pydata_sparse.py +4 -1
- scipy/sparse/csgraph/tests/test_shortest_path.py +83 -27
- scipy/sparse/csr.py +0 -5
- scipy/sparse/data.py +1 -6
- scipy/sparse/dia.py +0 -7
- scipy/sparse/dok.py +0 -10
- scipy/sparse/linalg/_dsolve/_superlu.cpython-313-darwin.so +0 -0
- scipy/sparse/linalg/_dsolve/linsolve.py +9 -0
- scipy/sparse/linalg/_dsolve/tests/test_linsolve.py +35 -28
- scipy/sparse/linalg/_eigen/arpack/_arpack.cpython-313-darwin.so +0 -0
- scipy/sparse/linalg/_eigen/arpack/arpack.py +23 -17
- scipy/sparse/linalg/_eigen/lobpcg/lobpcg.py +6 -6
- scipy/sparse/linalg/_interface.py +17 -18
- scipy/sparse/linalg/_isolve/_gcrotmk.py +4 -4
- scipy/sparse/linalg/_isolve/iterative.py +51 -45
- scipy/sparse/linalg/_isolve/lgmres.py +6 -6
- scipy/sparse/linalg/_isolve/minres.py +5 -5
- scipy/sparse/linalg/_isolve/tfqmr.py +7 -7
- scipy/sparse/linalg/_isolve/utils.py +2 -8
- scipy/sparse/linalg/_matfuncs.py +1 -1
- scipy/sparse/linalg/_norm.py +1 -1
- scipy/sparse/linalg/_propack/_cpropack.cpython-313-darwin.so +0 -0
- scipy/sparse/linalg/_propack/_dpropack.cpython-313-darwin.so +0 -0
- scipy/sparse/linalg/_propack/_spropack.cpython-313-darwin.so +0 -0
- scipy/sparse/linalg/_propack/_zpropack.cpython-313-darwin.so +0 -0
- scipy/sparse/linalg/_special_sparse_arrays.py +39 -38
- scipy/sparse/linalg/tests/test_pydata_sparse.py +14 -0
- scipy/sparse/tests/test_arithmetic1d.py +5 -2
- scipy/sparse/tests/test_base.py +214 -42
- scipy/sparse/tests/test_common1d.py +7 -7
- scipy/sparse/tests/test_construct.py +1 -1
- scipy/sparse/tests/test_coo.py +272 -4
- scipy/sparse/tests/test_sparsetools.py +5 -0
- scipy/sparse/tests/test_sputils.py +36 -7
- scipy/spatial/_ckdtree.cpython-313-darwin.so +0 -0
- scipy/spatial/_distance_pybind.cpython-313-darwin.so +0 -0
- scipy/spatial/_distance_wrap.cpython-313-darwin.so +0 -0
- scipy/spatial/_hausdorff.cpython-313-darwin.so +0 -0
- scipy/spatial/_qhull.cpython-313-darwin.so +0 -0
- scipy/spatial/_voronoi.cpython-313-darwin.so +0 -0
- scipy/spatial/distance.py +49 -42
- scipy/spatial/tests/test_distance.py +15 -1
- scipy/spatial/tests/test_kdtree.py +1 -0
- scipy/spatial/tests/test_qhull.py +7 -2
- scipy/spatial/transform/__init__.py +5 -3
- scipy/spatial/transform/_rigid_transform.cpython-313-darwin.so +0 -0
- scipy/spatial/transform/_rotation.cpython-313-darwin.so +0 -0
- scipy/spatial/transform/tests/test_rigid_transform.py +1221 -0
- scipy/spatial/transform/tests/test_rotation.py +1213 -832
- scipy/spatial/transform/tests/test_rotation_groups.py +3 -3
- scipy/spatial/transform/tests/test_rotation_spline.py +29 -8
- scipy/special/__init__.py +1 -47
- scipy/special/_add_newdocs.py +34 -772
- scipy/special/_basic.py +22 -25
- scipy/special/_comb.cpython-313-darwin.so +0 -0
- scipy/special/_ellip_harm_2.cpython-313-darwin.so +0 -0
- scipy/special/_gufuncs.cpython-313-darwin.so +0 -0
- scipy/special/_logsumexp.py +67 -58
- scipy/special/_orthogonal.pyi +1 -1
- scipy/special/_specfun.cpython-313-darwin.so +0 -0
- scipy/special/_special_ufuncs.cpython-313-darwin.so +0 -0
- scipy/special/_spherical_bessel.py +4 -4
- scipy/special/_support_alternative_backends.py +212 -119
- scipy/special/_test_internal.cpython-313-darwin.so +0 -0
- scipy/special/_testutils.py +4 -4
- scipy/special/_ufuncs.cpython-313-darwin.so +0 -0
- scipy/special/_ufuncs.pyi +1 -0
- scipy/special/_ufuncs.pyx +215 -1400
- scipy/special/_ufuncs_cxx.cpython-313-darwin.so +0 -0
- scipy/special/_ufuncs_cxx.pxd +2 -15
- scipy/special/_ufuncs_cxx.pyx +5 -44
- scipy/special/_ufuncs_cxx_defs.h +2 -16
- scipy/special/_ufuncs_defs.h +0 -8
- scipy/special/cython_special.cpython-313-darwin.so +0 -0
- scipy/special/cython_special.pxd +1 -1
- scipy/special/tests/_cython_examples/meson.build +10 -1
- scipy/special/tests/test_basic.py +153 -20
- scipy/special/tests/test_boost_ufuncs.py +3 -0
- scipy/special/tests/test_cdflib.py +35 -11
- scipy/special/tests/test_gammainc.py +16 -0
- scipy/special/tests/test_hyp2f1.py +2 -2
- scipy/special/tests/test_log1mexp.py +85 -0
- scipy/special/tests/test_logsumexp.py +206 -64
- scipy/special/tests/test_mpmath.py +1 -0
- scipy/special/tests/test_nan_inputs.py +1 -1
- scipy/special/tests/test_orthogonal.py +17 -18
- scipy/special/tests/test_sf_error.py +3 -2
- scipy/special/tests/test_sph_harm.py +6 -7
- scipy/special/tests/test_support_alternative_backends.py +211 -76
- scipy/stats/__init__.py +4 -1
- scipy/stats/_ansari_swilk_statistics.cpython-313-darwin.so +0 -0
- scipy/stats/_axis_nan_policy.py +5 -12
- scipy/stats/_biasedurn.cpython-313-darwin.so +0 -0
- scipy/stats/_continued_fraction.py +387 -0
- scipy/stats/_continuous_distns.py +277 -310
- scipy/stats/_correlation.py +1 -1
- scipy/stats/_covariance.py +6 -3
- scipy/stats/_discrete_distns.py +39 -32
- scipy/stats/_distn_infrastructure.py +39 -12
- scipy/stats/_distribution_infrastructure.py +900 -238
- scipy/stats/_entropy.py +9 -10
- scipy/{_lib → stats}/_finite_differences.py +1 -1
- scipy/stats/_hypotests.py +83 -50
- scipy/stats/_kde.py +53 -49
- scipy/stats/_ksstats.py +1 -1
- scipy/stats/_levy_stable/__init__.py +7 -15
- scipy/stats/_levy_stable/levyst.cpython-313-darwin.so +0 -0
- scipy/stats/_morestats.py +118 -73
- scipy/stats/_mstats_basic.py +13 -17
- scipy/stats/_mstats_extras.py +8 -8
- scipy/stats/_multivariate.py +89 -113
- scipy/stats/_new_distributions.py +97 -20
- scipy/stats/_page_trend_test.py +12 -5
- scipy/stats/_probability_distribution.py +265 -43
- scipy/stats/_qmc.py +14 -9
- scipy/stats/_qmc_cy.cpython-313-darwin.so +0 -0
- scipy/stats/_qmvnt.py +16 -95
- scipy/stats/_qmvnt_cy.cpython-313-darwin.so +0 -0
- scipy/stats/_quantile.py +335 -0
- scipy/stats/_rcont/rcont.cpython-313-darwin.so +0 -0
- scipy/stats/_resampling.py +4 -29
- scipy/stats/_sampling.py +1 -1
- scipy/stats/_sobol.cpython-313-darwin.so +0 -0
- scipy/stats/_stats.cpython-313-darwin.so +0 -0
- scipy/stats/_stats_mstats_common.py +21 -2
- scipy/stats/_stats_py.py +550 -476
- scipy/stats/_stats_pythran.cpython-313-darwin.so +0 -0
- scipy/stats/_unuran/unuran_wrapper.cpython-313-darwin.so +0 -0
- scipy/stats/_unuran/unuran_wrapper.pyi +2 -1
- scipy/stats/_variation.py +6 -8
- scipy/stats/_wilcoxon.py +13 -7
- scipy/stats/tests/common_tests.py +6 -4
- scipy/stats/tests/test_axis_nan_policy.py +62 -24
- scipy/stats/tests/test_continued_fraction.py +173 -0
- scipy/stats/tests/test_continuous.py +379 -60
- scipy/stats/tests/test_continuous_basic.py +18 -12
- scipy/stats/tests/test_discrete_basic.py +14 -8
- scipy/stats/tests/test_discrete_distns.py +16 -16
- scipy/stats/tests/test_distributions.py +95 -75
- scipy/stats/tests/test_entropy.py +40 -48
- scipy/stats/tests/test_fit.py +4 -3
- scipy/stats/tests/test_hypotests.py +153 -24
- scipy/stats/tests/test_kdeoth.py +109 -41
- scipy/stats/tests/test_marray.py +289 -0
- scipy/stats/tests/test_morestats.py +79 -47
- scipy/stats/tests/test_mstats_basic.py +3 -3
- scipy/stats/tests/test_multivariate.py +434 -83
- scipy/stats/tests/test_qmc.py +13 -10
- scipy/stats/tests/test_quantile.py +199 -0
- scipy/stats/tests/test_rank.py +119 -112
- scipy/stats/tests/test_resampling.py +47 -56
- scipy/stats/tests/test_sampling.py +9 -4
- scipy/stats/tests/test_stats.py +799 -939
- scipy/stats/tests/test_variation.py +8 -6
- scipy/version.py +2 -2
- {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/LICENSE.txt +4 -4
- {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/METADATA +11 -11
- {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/RECORD +561 -568
- scipy-1.16.0rc2.dist-info/WHEEL +6 -0
- scipy/_lib/array_api_extra/_funcs.py +0 -484
- scipy/_lib/array_api_extra/_typing.py +0 -8
- scipy/interpolate/_bspl.cpython-313-darwin.so +0 -0
- scipy/optimize/_cobyla.cpython-313-darwin.so +0 -0
- scipy/optimize/_cython_nnls.cpython-313-darwin.so +0 -0
- scipy/optimize/_slsqp.cpython-313-darwin.so +0 -0
- scipy/spatial/qhull_src/COPYING.txt +0 -38
- scipy/special/libsf_error_state.dylib +0 -0
- scipy/special/tests/test_log_softmax.py +0 -109
- scipy/special/tests/test_xsf_cuda.py +0 -114
- scipy/special/xsf/binom.h +0 -89
- scipy/special/xsf/cdflib.h +0 -100
- scipy/special/xsf/cephes/airy.h +0 -307
- scipy/special/xsf/cephes/besselpoly.h +0 -51
- scipy/special/xsf/cephes/beta.h +0 -257
- scipy/special/xsf/cephes/cbrt.h +0 -131
- scipy/special/xsf/cephes/chbevl.h +0 -85
- scipy/special/xsf/cephes/chdtr.h +0 -193
- scipy/special/xsf/cephes/const.h +0 -87
- scipy/special/xsf/cephes/ellie.h +0 -293
- scipy/special/xsf/cephes/ellik.h +0 -251
- scipy/special/xsf/cephes/ellpe.h +0 -107
- scipy/special/xsf/cephes/ellpk.h +0 -117
- scipy/special/xsf/cephes/expn.h +0 -260
- scipy/special/xsf/cephes/gamma.h +0 -398
- scipy/special/xsf/cephes/hyp2f1.h +0 -596
- scipy/special/xsf/cephes/hyperg.h +0 -361
- scipy/special/xsf/cephes/i0.h +0 -149
- scipy/special/xsf/cephes/i1.h +0 -158
- scipy/special/xsf/cephes/igam.h +0 -421
- scipy/special/xsf/cephes/igam_asymp_coeff.h +0 -195
- scipy/special/xsf/cephes/igami.h +0 -313
- scipy/special/xsf/cephes/j0.h +0 -225
- scipy/special/xsf/cephes/j1.h +0 -198
- scipy/special/xsf/cephes/jv.h +0 -715
- scipy/special/xsf/cephes/k0.h +0 -164
- scipy/special/xsf/cephes/k1.h +0 -163
- scipy/special/xsf/cephes/kn.h +0 -243
- scipy/special/xsf/cephes/lanczos.h +0 -112
- scipy/special/xsf/cephes/ndtr.h +0 -275
- scipy/special/xsf/cephes/poch.h +0 -85
- scipy/special/xsf/cephes/polevl.h +0 -167
- scipy/special/xsf/cephes/psi.h +0 -194
- scipy/special/xsf/cephes/rgamma.h +0 -111
- scipy/special/xsf/cephes/scipy_iv.h +0 -811
- scipy/special/xsf/cephes/shichi.h +0 -248
- scipy/special/xsf/cephes/sici.h +0 -224
- scipy/special/xsf/cephes/sindg.h +0 -221
- scipy/special/xsf/cephes/tandg.h +0 -139
- scipy/special/xsf/cephes/trig.h +0 -58
- scipy/special/xsf/cephes/unity.h +0 -186
- scipy/special/xsf/cephes/zeta.h +0 -172
- scipy/special/xsf/config.h +0 -304
- scipy/special/xsf/digamma.h +0 -205
- scipy/special/xsf/error.h +0 -57
- scipy/special/xsf/evalpoly.h +0 -47
- scipy/special/xsf/expint.h +0 -266
- scipy/special/xsf/hyp2f1.h +0 -694
- scipy/special/xsf/iv_ratio.h +0 -173
- scipy/special/xsf/lambertw.h +0 -150
- scipy/special/xsf/loggamma.h +0 -163
- scipy/special/xsf/sici.h +0 -200
- scipy/special/xsf/tools.h +0 -427
- scipy/special/xsf/trig.h +0 -164
- scipy/special/xsf/wright_bessel.h +0 -843
- scipy/special/xsf/zlog1.h +0 -35
- scipy/stats/_mvn.cpython-313-darwin.so +0 -0
- scipy-1.15.3.dist-info/WHEEL +0 -4
scipy/special/xsf/cephes/beta.h
DELETED
@@ -1,257 +0,0 @@
|
|
1
|
-
/* Translated into C++ by SciPy developers in 2024.
|
2
|
-
* Original header with Copyright information appears below.
|
3
|
-
*/
|
4
|
-
|
5
|
-
/* beta.c
|
6
|
-
*
|
7
|
-
* Beta function
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
11
|
-
* SYNOPSIS:
|
12
|
-
*
|
13
|
-
* double a, b, y, beta();
|
14
|
-
*
|
15
|
-
* y = beta( a, b );
|
16
|
-
*
|
17
|
-
*
|
18
|
-
*
|
19
|
-
* DESCRIPTION:
|
20
|
-
*
|
21
|
-
* - -
|
22
|
-
* | (a) | (b)
|
23
|
-
* beta( a, b ) = -----------.
|
24
|
-
* -
|
25
|
-
* | (a+b)
|
26
|
-
*
|
27
|
-
* For large arguments the logarithm of the function is
|
28
|
-
* evaluated using lgam(), then exponentiated.
|
29
|
-
*
|
30
|
-
*
|
31
|
-
*
|
32
|
-
* ACCURACY:
|
33
|
-
*
|
34
|
-
* Relative error:
|
35
|
-
* arithmetic domain # trials peak rms
|
36
|
-
* IEEE 0,30 30000 8.1e-14 1.1e-14
|
37
|
-
*
|
38
|
-
* ERROR MESSAGES:
|
39
|
-
*
|
40
|
-
* message condition value returned
|
41
|
-
* beta overflow log(beta) > MAXLOG 0.0
|
42
|
-
* a or b <0 integer 0.0
|
43
|
-
*
|
44
|
-
*/
|
45
|
-
|
46
|
-
/*
|
47
|
-
* Cephes Math Library Release 2.0: April, 1987
|
48
|
-
* Copyright 1984, 1987 by Stephen L. Moshier
|
49
|
-
* Direct inquiries to 30 Frost Street, Cambridge, MA 02140
|
50
|
-
*/
|
51
|
-
#pragma once
|
52
|
-
|
53
|
-
#include "../config.h"
|
54
|
-
#include "const.h"
|
55
|
-
#include "gamma.h"
|
56
|
-
#include "rgamma.h"
|
57
|
-
|
58
|
-
namespace xsf {
|
59
|
-
namespace cephes {
|
60
|
-
|
61
|
-
XSF_HOST_DEVICE double beta(double, double);
|
62
|
-
XSF_HOST_DEVICE double lbeta(double, double);
|
63
|
-
|
64
|
-
namespace detail {
|
65
|
-
constexpr double beta_ASYMP_FACTOR = 1e6;
|
66
|
-
|
67
|
-
/*
|
68
|
-
* Asymptotic expansion for ln(|B(a, b)|) for a > ASYMP_FACTOR*max(|b|, 1).
|
69
|
-
*/
|
70
|
-
XSF_HOST_DEVICE inline double lbeta_asymp(double a, double b, int *sgn) {
|
71
|
-
double r = lgam_sgn(b, sgn);
|
72
|
-
r -= b * std::log(a);
|
73
|
-
|
74
|
-
r += b * (1 - b) / (2 * a);
|
75
|
-
r += b * (1 - b) * (1 - 2 * b) / (12 * a * a);
|
76
|
-
r += -b * b * (1 - b) * (1 - b) / (12 * a * a * a);
|
77
|
-
|
78
|
-
return r;
|
79
|
-
}
|
80
|
-
|
81
|
-
/*
|
82
|
-
* Special case for a negative integer argument
|
83
|
-
*/
|
84
|
-
|
85
|
-
XSF_HOST_DEVICE inline double beta_negint(int a, double b) {
|
86
|
-
int sgn;
|
87
|
-
if (b == static_cast<int>(b) && 1 - a - b > 0) {
|
88
|
-
sgn = (static_cast<int>(b) % 2 == 0) ? 1 : -1;
|
89
|
-
return sgn * xsf::cephes::beta(1 - a - b, b);
|
90
|
-
} else {
|
91
|
-
set_error("lbeta", SF_ERROR_OVERFLOW, NULL);
|
92
|
-
return std::numeric_limits<double>::infinity();
|
93
|
-
}
|
94
|
-
}
|
95
|
-
|
96
|
-
XSF_HOST_DEVICE inline double lbeta_negint(int a, double b) {
|
97
|
-
double r;
|
98
|
-
if (b == static_cast<int>(b) && 1 - a - b > 0) {
|
99
|
-
r = xsf::cephes::lbeta(1 - a - b, b);
|
100
|
-
return r;
|
101
|
-
} else {
|
102
|
-
set_error("lbeta", SF_ERROR_OVERFLOW, NULL);
|
103
|
-
return std::numeric_limits<double>::infinity();
|
104
|
-
}
|
105
|
-
}
|
106
|
-
} // namespace detail
|
107
|
-
|
108
|
-
XSF_HOST_DEVICE inline double beta(double a, double b) {
|
109
|
-
double y;
|
110
|
-
int sign = 1;
|
111
|
-
|
112
|
-
if (a <= 0.0) {
|
113
|
-
if (a == std::floor(a)) {
|
114
|
-
if (a == static_cast<int>(a)) {
|
115
|
-
return detail::beta_negint(static_cast<int>(a), b);
|
116
|
-
} else {
|
117
|
-
goto overflow;
|
118
|
-
}
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
if (b <= 0.0) {
|
123
|
-
if (b == std::floor(b)) {
|
124
|
-
if (b == static_cast<int>(b)) {
|
125
|
-
return detail::beta_negint(static_cast<int>(b), a);
|
126
|
-
} else {
|
127
|
-
goto overflow;
|
128
|
-
}
|
129
|
-
}
|
130
|
-
}
|
131
|
-
|
132
|
-
if (std::abs(a) < std::abs(b)) {
|
133
|
-
y = a;
|
134
|
-
a = b;
|
135
|
-
b = y;
|
136
|
-
}
|
137
|
-
|
138
|
-
if (std::abs(a) > detail::beta_ASYMP_FACTOR * std::abs(b) && a > detail::beta_ASYMP_FACTOR) {
|
139
|
-
/* Avoid loss of precision in lgam(a + b) - lgam(a) */
|
140
|
-
y = detail::lbeta_asymp(a, b, &sign);
|
141
|
-
return sign * std::exp(y);
|
142
|
-
}
|
143
|
-
|
144
|
-
y = a + b;
|
145
|
-
if (std::abs(y) > detail::MAXGAM || std::abs(a) > detail::MAXGAM || std::abs(b) > detail::MAXGAM) {
|
146
|
-
int sgngam;
|
147
|
-
y = detail::lgam_sgn(y, &sgngam);
|
148
|
-
sign *= sgngam; /* keep track of the sign */
|
149
|
-
y = detail::lgam_sgn(b, &sgngam) - y;
|
150
|
-
sign *= sgngam;
|
151
|
-
y = detail::lgam_sgn(a, &sgngam) + y;
|
152
|
-
sign *= sgngam;
|
153
|
-
if (y > detail::MAXLOG) {
|
154
|
-
goto overflow;
|
155
|
-
}
|
156
|
-
return (sign * std::exp(y));
|
157
|
-
}
|
158
|
-
|
159
|
-
y = rgamma(y);
|
160
|
-
a = Gamma(a);
|
161
|
-
b = Gamma(b);
|
162
|
-
if (std::isinf(y)) {
|
163
|
-
goto overflow;
|
164
|
-
}
|
165
|
-
|
166
|
-
if (std::abs(std::abs(a*y) - 1.0) > std::abs(std::abs(b*y) - 1.0)) {
|
167
|
-
y = b * y;
|
168
|
-
y *= a;
|
169
|
-
} else {
|
170
|
-
y = a * y;
|
171
|
-
y *= b;
|
172
|
-
}
|
173
|
-
|
174
|
-
return (y);
|
175
|
-
|
176
|
-
overflow:
|
177
|
-
set_error("beta", SF_ERROR_OVERFLOW, NULL);
|
178
|
-
return (sign * std::numeric_limits<double>::infinity());
|
179
|
-
}
|
180
|
-
|
181
|
-
/* Natural log of |beta|. */
|
182
|
-
|
183
|
-
XSF_HOST_DEVICE inline double lbeta(double a, double b) {
|
184
|
-
double y;
|
185
|
-
int sign;
|
186
|
-
|
187
|
-
sign = 1;
|
188
|
-
|
189
|
-
if (a <= 0.0) {
|
190
|
-
if (a == std::floor(a)) {
|
191
|
-
if (a == static_cast<int>(a)) {
|
192
|
-
return detail::lbeta_negint(static_cast<int>(a), b);
|
193
|
-
} else {
|
194
|
-
goto over;
|
195
|
-
}
|
196
|
-
}
|
197
|
-
}
|
198
|
-
|
199
|
-
if (b <= 0.0) {
|
200
|
-
if (b == std::floor(b)) {
|
201
|
-
if (b == static_cast<int>(b)) {
|
202
|
-
return detail::lbeta_negint(static_cast<int>(b), a);
|
203
|
-
} else {
|
204
|
-
goto over;
|
205
|
-
}
|
206
|
-
}
|
207
|
-
}
|
208
|
-
|
209
|
-
if (std::abs(a) < std::abs(b)) {
|
210
|
-
y = a;
|
211
|
-
a = b;
|
212
|
-
b = y;
|
213
|
-
}
|
214
|
-
|
215
|
-
if (std::abs(a) > detail::beta_ASYMP_FACTOR * std::abs(b) && a > detail::beta_ASYMP_FACTOR) {
|
216
|
-
/* Avoid loss of precision in lgam(a + b) - lgam(a) */
|
217
|
-
y = detail::lbeta_asymp(a, b, &sign);
|
218
|
-
return y;
|
219
|
-
}
|
220
|
-
|
221
|
-
y = a + b;
|
222
|
-
if (std::abs(y) > detail::MAXGAM || std::abs(a) > detail::MAXGAM || std::abs(b) > detail::MAXGAM) {
|
223
|
-
int sgngam;
|
224
|
-
y = detail::lgam_sgn(y, &sgngam);
|
225
|
-
sign *= sgngam; /* keep track of the sign */
|
226
|
-
y = detail::lgam_sgn(b, &sgngam) - y;
|
227
|
-
sign *= sgngam;
|
228
|
-
y = detail::lgam_sgn(a, &sgngam) + y;
|
229
|
-
sign *= sgngam;
|
230
|
-
return (y);
|
231
|
-
}
|
232
|
-
|
233
|
-
y = rgamma(y);
|
234
|
-
a = Gamma(a);
|
235
|
-
b = Gamma(b);
|
236
|
-
if (std::isinf(y)) {
|
237
|
-
over:
|
238
|
-
set_error("lbeta", SF_ERROR_OVERFLOW, NULL);
|
239
|
-
return (sign * std::numeric_limits<double>::infinity());
|
240
|
-
}
|
241
|
-
|
242
|
-
if (std::abs(std::abs(a*y) - 1.0) > std::abs(std::abs(b*y) - 1.0)) {
|
243
|
-
y = b * y;
|
244
|
-
y *= a;
|
245
|
-
} else {
|
246
|
-
y = a * y;
|
247
|
-
y *= b;
|
248
|
-
}
|
249
|
-
|
250
|
-
if (y < 0) {
|
251
|
-
y = -y;
|
252
|
-
}
|
253
|
-
|
254
|
-
return (std::log(y));
|
255
|
-
}
|
256
|
-
} // namespace cephes
|
257
|
-
} // namespace xsf
|
scipy/special/xsf/cephes/cbrt.h
DELETED
@@ -1,131 +0,0 @@
|
|
1
|
-
/* Translated into C++ by SciPy developers in 2024.
|
2
|
-
* Original header with Copyright information appears below.
|
3
|
-
*/
|
4
|
-
|
5
|
-
/* cbrt.c
|
6
|
-
*
|
7
|
-
* Cube root
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
11
|
-
* SYNOPSIS:
|
12
|
-
*
|
13
|
-
* double x, y, cbrt();
|
14
|
-
*
|
15
|
-
* y = cbrt( x );
|
16
|
-
*
|
17
|
-
*
|
18
|
-
*
|
19
|
-
* DESCRIPTION:
|
20
|
-
*
|
21
|
-
* Returns the cube root of the argument, which may be negative.
|
22
|
-
*
|
23
|
-
* Range reduction involves determining the power of 2 of
|
24
|
-
* the argument. A polynomial of degree 2 applied to the
|
25
|
-
* mantissa, and multiplication by the cube root of 1, 2, or 4
|
26
|
-
* approximates the root to within about 0.1%. Then Newton's
|
27
|
-
* iteration is used three times to converge to an accurate
|
28
|
-
* result.
|
29
|
-
*
|
30
|
-
*
|
31
|
-
*
|
32
|
-
* ACCURACY:
|
33
|
-
*
|
34
|
-
* Relative error:
|
35
|
-
* arithmetic domain # trials peak rms
|
36
|
-
* IEEE 0,1e308 30000 1.5e-16 5.0e-17
|
37
|
-
*
|
38
|
-
*/
|
39
|
-
/* cbrt.c */
|
40
|
-
|
41
|
-
/*
|
42
|
-
* Cephes Math Library Release 2.2: January, 1991
|
43
|
-
* Copyright 1984, 1991 by Stephen L. Moshier
|
44
|
-
* Direct inquiries to 30 Frost Street, Cambridge, MA 02140
|
45
|
-
*/
|
46
|
-
#pragma once
|
47
|
-
|
48
|
-
#include "../config.h"
|
49
|
-
|
50
|
-
namespace xsf {
|
51
|
-
namespace cephes {
|
52
|
-
|
53
|
-
namespace detail {
|
54
|
-
|
55
|
-
constexpr double CBRT2 = 1.2599210498948731647672;
|
56
|
-
constexpr double CBRT4 = 1.5874010519681994747517;
|
57
|
-
constexpr double CBRT2I = 0.79370052598409973737585;
|
58
|
-
constexpr double CBRT4I = 0.62996052494743658238361;
|
59
|
-
|
60
|
-
XSF_HOST_DEVICE inline double cbrt(double x) {
|
61
|
-
int e, rem, sign;
|
62
|
-
double z;
|
63
|
-
|
64
|
-
if (!std::isfinite(x)) {
|
65
|
-
return x;
|
66
|
-
}
|
67
|
-
if (x == 0) {
|
68
|
-
return (x);
|
69
|
-
}
|
70
|
-
if (x > 0) {
|
71
|
-
sign = 1;
|
72
|
-
} else {
|
73
|
-
sign = -1;
|
74
|
-
x = -x;
|
75
|
-
}
|
76
|
-
|
77
|
-
z = x;
|
78
|
-
/* extract power of 2, leaving
|
79
|
-
* mantissa between 0.5 and 1
|
80
|
-
*/
|
81
|
-
x = std::frexp(x, &e);
|
82
|
-
|
83
|
-
/* Approximate cube root of number between .5 and 1,
|
84
|
-
* peak relative error = 9.2e-6
|
85
|
-
*/
|
86
|
-
x = (((-1.3466110473359520655053e-1 * x + 5.4664601366395524503440e-1) * x - 9.5438224771509446525043e-1) *
|
87
|
-
x +
|
88
|
-
1.1399983354717293273738e0) *
|
89
|
-
x +
|
90
|
-
4.0238979564544752126924e-1;
|
91
|
-
|
92
|
-
/* exponent divided by 3 */
|
93
|
-
if (e >= 0) {
|
94
|
-
rem = e;
|
95
|
-
e /= 3;
|
96
|
-
rem -= 3 * e;
|
97
|
-
if (rem == 1) {
|
98
|
-
x *= CBRT2;
|
99
|
-
} else if (rem == 2) {
|
100
|
-
x *= CBRT4;
|
101
|
-
}
|
102
|
-
}
|
103
|
-
/* argument less than 1 */
|
104
|
-
else {
|
105
|
-
e = -e;
|
106
|
-
rem = e;
|
107
|
-
e /= 3;
|
108
|
-
rem -= 3 * e;
|
109
|
-
if (rem == 1) {
|
110
|
-
x *= CBRT2I;
|
111
|
-
} else if (rem == 2) {
|
112
|
-
x *= CBRT4I;
|
113
|
-
}
|
114
|
-
e = -e;
|
115
|
-
}
|
116
|
-
|
117
|
-
/* multiply by power of 2 */
|
118
|
-
x = std::ldexp(x, e);
|
119
|
-
|
120
|
-
/* Newton iteration */
|
121
|
-
x -= (x - (z / (x * x))) * 0.33333333333333333333;
|
122
|
-
x -= (x - (z / (x * x))) * 0.33333333333333333333;
|
123
|
-
|
124
|
-
if (sign < 0)
|
125
|
-
x = -x;
|
126
|
-
return (x);
|
127
|
-
}
|
128
|
-
} // namespace detail
|
129
|
-
|
130
|
-
} // namespace cephes
|
131
|
-
} // namespace xsf
|
@@ -1,85 +0,0 @@
|
|
1
|
-
/* chbevl.c
|
2
|
-
*
|
3
|
-
* Evaluate Chebyshev series
|
4
|
-
*
|
5
|
-
*
|
6
|
-
*
|
7
|
-
* SYNOPSIS:
|
8
|
-
*
|
9
|
-
* int N;
|
10
|
-
* double x, y, coef[N], chebevl();
|
11
|
-
*
|
12
|
-
* y = chbevl( x, coef, N );
|
13
|
-
*
|
14
|
-
*
|
15
|
-
*
|
16
|
-
* DESCRIPTION:
|
17
|
-
*
|
18
|
-
* Evaluates the series
|
19
|
-
*
|
20
|
-
* N-1
|
21
|
-
* - '
|
22
|
-
* y = > coef[i] T (x/2)
|
23
|
-
* - i
|
24
|
-
* i=0
|
25
|
-
*
|
26
|
-
* of Chebyshev polynomials Ti at argument x/2.
|
27
|
-
*
|
28
|
-
* Coefficients are stored in reverse order, i.e. the zero
|
29
|
-
* order term is last in the array. Note N is the number of
|
30
|
-
* coefficients, not the order.
|
31
|
-
*
|
32
|
-
* If coefficients are for the interval a to b, x must
|
33
|
-
* have been transformed to x -> 2(2x - b - a)/(b-a) before
|
34
|
-
* entering the routine. This maps x from (a, b) to (-1, 1),
|
35
|
-
* over which the Chebyshev polynomials are defined.
|
36
|
-
*
|
37
|
-
* If the coefficients are for the inverted interval, in
|
38
|
-
* which (a, b) is mapped to (1/b, 1/a), the transformation
|
39
|
-
* required is x -> 2(2ab/x - b - a)/(b-a). If b is infinity,
|
40
|
-
* this becomes x -> 4a/x - 1.
|
41
|
-
*
|
42
|
-
*
|
43
|
-
*
|
44
|
-
* SPEED:
|
45
|
-
*
|
46
|
-
* Taking advantage of the recurrence properties of the
|
47
|
-
* Chebyshev polynomials, the routine requires one more
|
48
|
-
* addition per loop than evaluating a nested polynomial of
|
49
|
-
* the same degree.
|
50
|
-
*
|
51
|
-
*/
|
52
|
-
/* chbevl.c */
|
53
|
-
|
54
|
-
/*
|
55
|
-
* Cephes Math Library Release 2.0: April, 1987
|
56
|
-
* Copyright 1985, 1987 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
|
-
namespace xsf {
|
64
|
-
namespace cephes {
|
65
|
-
|
66
|
-
XSF_HOST_DEVICE double chbevl(double x, const double array[], int n) {
|
67
|
-
double b0, b1, b2;
|
68
|
-
const double *p;
|
69
|
-
int i;
|
70
|
-
|
71
|
-
p = array;
|
72
|
-
b0 = *p++;
|
73
|
-
b1 = 0.0;
|
74
|
-
i = n - 1;
|
75
|
-
|
76
|
-
do {
|
77
|
-
b2 = b1;
|
78
|
-
b1 = b0;
|
79
|
-
b0 = x * b1 - b2 + *p++;
|
80
|
-
} while (--i);
|
81
|
-
|
82
|
-
return (0.5 * (b0 - b2));
|
83
|
-
}
|
84
|
-
} // namespace cephes
|
85
|
-
} // namespace xsf
|
scipy/special/xsf/cephes/chdtr.h
DELETED
@@ -1,193 +0,0 @@
|
|
1
|
-
/* Translated into C++ by SciPy developers in 2024.
|
2
|
-
* Original header with Copyright information appears below.
|
3
|
-
*/
|
4
|
-
|
5
|
-
/* chdtr.c
|
6
|
-
*
|
7
|
-
* Chi-square distribution
|
8
|
-
*
|
9
|
-
*
|
10
|
-
*
|
11
|
-
* SYNOPSIS:
|
12
|
-
*
|
13
|
-
* double df, x, y, chdtr();
|
14
|
-
*
|
15
|
-
* y = chdtr( df, x );
|
16
|
-
*
|
17
|
-
*
|
18
|
-
*
|
19
|
-
* DESCRIPTION:
|
20
|
-
*
|
21
|
-
* Returns the area under the left hand tail (from 0 to x)
|
22
|
-
* of the Chi square probability density function with
|
23
|
-
* v degrees of freedom.
|
24
|
-
*
|
25
|
-
*
|
26
|
-
* inf.
|
27
|
-
* -
|
28
|
-
* 1 | | v/2-1 -t/2
|
29
|
-
* P( x | v ) = ----------- | t e dt
|
30
|
-
* v/2 - | |
|
31
|
-
* 2 | (v/2) -
|
32
|
-
* x
|
33
|
-
*
|
34
|
-
* where x is the Chi-square variable.
|
35
|
-
*
|
36
|
-
* The incomplete Gamma integral is used, according to the
|
37
|
-
* formula
|
38
|
-
*
|
39
|
-
* y = chdtr( v, x ) = igam( v/2.0, x/2.0 ).
|
40
|
-
*
|
41
|
-
*
|
42
|
-
* The arguments must both be positive.
|
43
|
-
*
|
44
|
-
*
|
45
|
-
*
|
46
|
-
* ACCURACY:
|
47
|
-
*
|
48
|
-
* See igam().
|
49
|
-
*
|
50
|
-
* ERROR MESSAGES:
|
51
|
-
*
|
52
|
-
* message condition value returned
|
53
|
-
* chdtr domain x < 0 or v < 1 0.0
|
54
|
-
*/
|
55
|
-
/* chdtrc()
|
56
|
-
*
|
57
|
-
* Complemented Chi-square distribution
|
58
|
-
*
|
59
|
-
*
|
60
|
-
*
|
61
|
-
* SYNOPSIS:
|
62
|
-
*
|
63
|
-
* double v, x, y, chdtrc();
|
64
|
-
*
|
65
|
-
* y = chdtrc( v, x );
|
66
|
-
*
|
67
|
-
*
|
68
|
-
*
|
69
|
-
* DESCRIPTION:
|
70
|
-
*
|
71
|
-
* Returns the area under the right hand tail (from x to
|
72
|
-
* infinity) of the Chi square probability density function
|
73
|
-
* with v degrees of freedom:
|
74
|
-
*
|
75
|
-
*
|
76
|
-
* inf.
|
77
|
-
* -
|
78
|
-
* 1 | | v/2-1 -t/2
|
79
|
-
* P( x | v ) = ----------- | t e dt
|
80
|
-
* v/2 - | |
|
81
|
-
* 2 | (v/2) -
|
82
|
-
* x
|
83
|
-
*
|
84
|
-
* where x is the Chi-square variable.
|
85
|
-
*
|
86
|
-
* The incomplete Gamma integral is used, according to the
|
87
|
-
* formula
|
88
|
-
*
|
89
|
-
* y = chdtr( v, x ) = igamc( v/2.0, x/2.0 ).
|
90
|
-
*
|
91
|
-
*
|
92
|
-
* The arguments must both be positive.
|
93
|
-
*
|
94
|
-
*
|
95
|
-
*
|
96
|
-
* ACCURACY:
|
97
|
-
*
|
98
|
-
* See igamc().
|
99
|
-
*
|
100
|
-
* ERROR MESSAGES:
|
101
|
-
*
|
102
|
-
* message condition value returned
|
103
|
-
* chdtrc domain x < 0 or v < 1 0.0
|
104
|
-
*/
|
105
|
-
/* chdtri()
|
106
|
-
*
|
107
|
-
* Inverse of complemented Chi-square distribution
|
108
|
-
*
|
109
|
-
*
|
110
|
-
*
|
111
|
-
* SYNOPSIS:
|
112
|
-
*
|
113
|
-
* double df, x, y, chdtri();
|
114
|
-
*
|
115
|
-
* x = chdtri( df, y );
|
116
|
-
*
|
117
|
-
*
|
118
|
-
*
|
119
|
-
*
|
120
|
-
* DESCRIPTION:
|
121
|
-
*
|
122
|
-
* Finds the Chi-square argument x such that the integral
|
123
|
-
* from x to infinity of the Chi-square density is equal
|
124
|
-
* to the given cumulative probability y.
|
125
|
-
*
|
126
|
-
* This is accomplished using the inverse Gamma integral
|
127
|
-
* function and the relation
|
128
|
-
*
|
129
|
-
* x/2 = igamci( df/2, y );
|
130
|
-
*
|
131
|
-
*
|
132
|
-
*
|
133
|
-
*
|
134
|
-
* ACCURACY:
|
135
|
-
*
|
136
|
-
* See igami.c.
|
137
|
-
*
|
138
|
-
* ERROR MESSAGES:
|
139
|
-
*
|
140
|
-
* message condition value returned
|
141
|
-
* chdtri domain y < 0 or y > 1 0.0
|
142
|
-
* v < 1
|
143
|
-
*
|
144
|
-
*/
|
145
|
-
|
146
|
-
/* chdtr() */
|
147
|
-
|
148
|
-
/*
|
149
|
-
* Cephes Math Library Release 2.0: April, 1987
|
150
|
-
* Copyright 1984, 1987 by Stephen L. Moshier
|
151
|
-
* Direct inquiries to 30 Frost Street, Cambridge, MA 02140
|
152
|
-
*/
|
153
|
-
#pragma once
|
154
|
-
|
155
|
-
#include "../config.h"
|
156
|
-
#include "../error.h"
|
157
|
-
|
158
|
-
#include "igam.h"
|
159
|
-
#include "igami.h"
|
160
|
-
|
161
|
-
namespace xsf {
|
162
|
-
namespace cephes {
|
163
|
-
|
164
|
-
XSF_HOST_DEVICE inline double chdtrc(double df, double x) {
|
165
|
-
|
166
|
-
if (x < 0.0)
|
167
|
-
return 1.0; /* modified by T. Oliphant */
|
168
|
-
return (igamc(df / 2.0, x / 2.0));
|
169
|
-
}
|
170
|
-
|
171
|
-
XSF_HOST_DEVICE inline double chdtr(double df, double x) {
|
172
|
-
|
173
|
-
if ((x < 0.0)) { /* || (df < 1.0) ) */
|
174
|
-
set_error("chdtr", SF_ERROR_DOMAIN, NULL);
|
175
|
-
return (std::numeric_limits<double>::quiet_NaN());
|
176
|
-
}
|
177
|
-
return (igam(df / 2.0, x / 2.0));
|
178
|
-
}
|
179
|
-
|
180
|
-
XSF_HOST_DEVICE double chdtri(double df, double y) {
|
181
|
-
double x;
|
182
|
-
|
183
|
-
if ((y < 0.0) || (y > 1.0)) { /* || (df < 1.0) ) */
|
184
|
-
set_error("chdtri", SF_ERROR_DOMAIN, NULL);
|
185
|
-
return (std::numeric_limits<double>::quiet_NaN());
|
186
|
-
}
|
187
|
-
|
188
|
-
x = igamci(0.5 * df, y);
|
189
|
-
return (2.0 * x);
|
190
|
-
}
|
191
|
-
|
192
|
-
} // namespace cephes
|
193
|
-
} // namespace xsf
|