scipy 1.15.3__cp311-cp311-win_amd64.whl → 1.16.0rc2__cp311-cp311-win_amd64.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/__config__.py +8 -8
- scipy/__init__.py +3 -6
- scipy/_cyutility.cp311-win_amd64.dll.a +0 -0
- scipy/_cyutility.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/_ccallback_c.cp311-win_amd64.pyd +0 -0
- scipy/_lib/_docscrape.py +1 -1
- scipy/_lib/_elementwise_iterative_method.py +15 -26
- scipy/_lib/_fpumode.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/_fpumode.cp311-win_amd64.pyd +0 -0
- scipy/_lib/_sparse.py +41 -0
- scipy/_lib/_test_ccallback.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/_test_ccallback.cp311-win_amd64.pyd +0 -0
- scipy/_lib/_test_deprecation_call.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/_test_deprecation_call.cp311-win_amd64.pyd +0 -0
- scipy/_lib/_test_deprecation_def.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/_test_deprecation_def.cp311-win_amd64.pyd +0 -0
- scipy/_lib/_testutils.py +6 -2
- scipy/_lib/_uarray/_uarray.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/_uarray/_uarray.cp311-win_amd64.pyd +0 -0
- 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.cp311-win_amd64.dll.a +0 -0
- scipy/_lib/messagestream.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/cluster/_hierarchy.cp311-win_amd64.pyd +0 -0
- scipy/cluster/_optimal_leaf_ordering.cp311-win_amd64.dll.a +0 -0
- scipy/cluster/_optimal_leaf_ordering.cp311-win_amd64.pyd +0 -0
- scipy/cluster/_vq.cp311-win_amd64.dll.a +0 -0
- scipy/cluster/_vq.cp311-win_amd64.pyd +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/pypocketfft.cp311-win_amd64.dll.a +0 -0
- scipy/fft/_pocketfft/pypocketfft.cp311-win_amd64.pyd +0 -0
- 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.cp311-win_amd64.dll.a +0 -0
- scipy/fftpack/convolve.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_dop.cp311-win_amd64.pyd +0 -0
- scipy/integrate/_lsoda.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_lsoda.cp311-win_amd64.pyd +0 -0
- scipy/integrate/_ode.py +9 -2
- scipy/integrate/_odepack.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_odepack.cp311-win_amd64.pyd +0 -0
- scipy/integrate/_quad_vec.py +21 -29
- scipy/integrate/_quadpack.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_quadpack.cp311-win_amd64.pyd +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_multivariate.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_test_multivariate.cp311-win_amd64.pyd +0 -0
- scipy/integrate/_test_odeint_banded.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_test_odeint_banded.cp311-win_amd64.pyd +0 -0
- scipy/integrate/_vode.cp311-win_amd64.dll.a +0 -0
- scipy/integrate/_vode.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_dfitpack.cp311-win_amd64.pyd +0 -0
- scipy/interpolate/_dierckx.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_dierckx.cp311-win_amd64.pyd +0 -0
- scipy/interpolate/_fitpack.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_fitpack.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_interpnd.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_ppoly.cp311-win_amd64.pyd +0 -0
- scipy/interpolate/_rbf.py +2 -2
- scipy/interpolate/_rbfinterp.py +1 -1
- scipy/interpolate/_rbfinterp_pythran.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_rbfinterp_pythran.cp311-win_amd64.pyd +0 -0
- scipy/interpolate/_rgi.py +31 -26
- scipy/interpolate/_rgi_cython.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_rgi_cython.cp311-win_amd64.pyd +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/_fast_matrix_market/_fmm_core.cp311-win_amd64.dll.a +0 -0
- scipy/io/_fast_matrix_market/_fmm_core.cp311-win_amd64.pyd +0 -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.cp311-win_amd64.dll.a +0 -0
- scipy/io/_test_fortran.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/io/matlab/_mio5_utils.cp311-win_amd64.pyd +0 -0
- scipy/io/matlab/_mio_utils.cp311-win_amd64.dll.a +0 -0
- scipy/io/matlab/_mio_utils.cp311-win_amd64.pyd +0 -0
- scipy/io/matlab/_miobase.py +4 -1
- scipy/io/matlab/_streams.cp311-win_amd64.dll.a +0 -0
- scipy/io/matlab/_streams.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_cythonized_array_utils.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_decomp_interpolative.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_decomp_ldl.py +4 -1
- scipy/linalg/_decomp_lu.py +18 -6
- scipy/linalg/_decomp_lu_cython.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_decomp_lu_cython.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_decomp_update.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_expm_frechet.py +4 -0
- scipy/linalg/_fblas.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_fblas.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_flapack.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_flapack.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_linalg_pythran.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_linalg_pythran.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_matfuncs.py +187 -4
- scipy/linalg/_matfuncs_expm.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_matfuncs_expm.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_matfuncs_schur_sqrtm.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_matfuncs_schur_sqrtm.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_matfuncs_sqrtm.py +1 -99
- scipy/linalg/_matfuncs_sqrtm_triu.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_matfuncs_sqrtm_triu.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_procrustes.py +2 -0
- scipy/linalg/_sketches.py +17 -6
- scipy/linalg/_solve_toeplitz.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/_solve_toeplitz.cp311-win_amd64.pyd +0 -0
- scipy/linalg/_solvers.py +7 -2
- scipy/linalg/_special_matrices.py +26 -36
- scipy/linalg/cython_blas.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/cython_blas.cp311-win_amd64.pyd +0 -0
- scipy/linalg/cython_lapack.cp311-win_amd64.dll.a +0 -0
- scipy/linalg/cython_lapack.cp311-win_amd64.pyd +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/_ctest.cp311-win_amd64.dll.a +0 -0
- scipy/ndimage/_ctest.cp311-win_amd64.pyd +0 -0
- scipy/ndimage/_cytest.cp311-win_amd64.dll.a +0 -0
- scipy/ndimage/_cytest.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/ndimage/_nd_image.cp311-win_amd64.pyd +0 -0
- scipy/ndimage/_ni_docstrings.py +5 -1
- scipy/ndimage/_ni_label.cp311-win_amd64.dll.a +0 -0
- scipy/ndimage/_ni_label.cp311-win_amd64.pyd +0 -0
- scipy/ndimage/_ni_support.py +1 -5
- scipy/ndimage/_rank_filter_1d.cp311-win_amd64.dll.a +0 -0
- scipy/ndimage/_rank_filter_1d.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/odr/__odrpack.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_basinhopping.py +13 -7
- scipy/optimize/_bglu_dense.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_bglu_dense.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_direct.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_dual_annealing.py +1 -1
- scipy/optimize/_elementwise.py +1 -4
- scipy/optimize/_group_columns.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_group_columns.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_highspy/_core.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_highspy/_core.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_highspy/_highs_options.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_highspy/_highs_options.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_lbfgsb.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_lbfgsb.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_lsap.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_lsq/common.py +3 -3
- scipy/optimize/_lsq/dogbox.py +16 -2
- scipy/optimize/_lsq/givens_elimination.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_lsq/givens_elimination.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_minpack.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_minpack_py.py +21 -14
- scipy/optimize/_moduleTNC.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_moduleTNC.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_pava_pybind.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_slsqplib.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_spectral.py +1 -1
- scipy/optimize/_tnc.py +8 -1
- scipy/optimize/_trlib/_trlib.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_trlib/_trlib.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_zeros.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_zeros_py.py +97 -17
- scipy/optimize/cython_optimize/_zeros.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/cython_optimize/_zeros.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/signal/_max_len_seq_inner.cp311-win_amd64.pyd +0 -0
- scipy/signal/_peak_finding_utils.cp311-win_amd64.dll.a +0 -0
- scipy/signal/_peak_finding_utils.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/signal/_sigtools.cp311-win_amd64.pyd +0 -0
- scipy/signal/_sosfilt.cp311-win_amd64.dll.a +0 -0
- scipy/signal/_sosfilt.cp311-win_amd64.pyd +0 -0
- scipy/signal/_spectral_py.py +230 -50
- scipy/signal/_spline.cp311-win_amd64.dll.a +0 -0
- scipy/signal/_spline.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/signal/_upfirdn_apply.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/_csparsetools.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/_sparsetools.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_flow.cp311-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_matching.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_matching.cp311-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_min_spanning_tree.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_min_spanning_tree.cp311-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_reordering.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_reordering.cp311-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_shortest_path.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_shortest_path.cp311-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_tools.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_tools.cp311-win_amd64.pyd +0 -0
- scipy/sparse/csgraph/_traversal.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/csgraph/_traversal.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_dsolve/_superlu.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_eigen/arpack/_arpack.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_cpropack.cp311-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_dpropack.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_dpropack.cp311-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_spropack.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_spropack.cp311-win_amd64.pyd +0 -0
- scipy/sparse/linalg/_propack/_zpropack.cp311-win_amd64.dll.a +0 -0
- scipy/sparse/linalg/_propack/_zpropack.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/_ckdtree.cp311-win_amd64.pyd +0 -0
- scipy/spatial/_distance_pybind.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/_distance_pybind.cp311-win_amd64.pyd +0 -0
- scipy/spatial/_distance_wrap.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/_distance_wrap.cp311-win_amd64.pyd +0 -0
- scipy/spatial/_hausdorff.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/_hausdorff.cp311-win_amd64.pyd +0 -0
- scipy/spatial/_qhull.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/_qhull.cp311-win_amd64.pyd +0 -0
- scipy/spatial/_voronoi.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/_voronoi.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/transform/_rigid_transform.cp311-win_amd64.pyd +0 -0
- scipy/spatial/transform/_rotation.cp311-win_amd64.dll.a +0 -0
- scipy/spatial/transform/_rotation.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/special/_comb.cp311-win_amd64.pyd +0 -0
- scipy/special/_ellip_harm_2.cp311-win_amd64.dll.a +0 -0
- scipy/special/_ellip_harm_2.cp311-win_amd64.pyd +0 -0
- scipy/special/_gufuncs.cp311-win_amd64.dll.a +0 -0
- scipy/special/_gufuncs.cp311-win_amd64.pyd +0 -0
- scipy/special/_logsumexp.py +67 -58
- scipy/special/_orthogonal.pyi +1 -1
- scipy/special/_specfun.cp311-win_amd64.dll.a +0 -0
- scipy/special/_specfun.cp311-win_amd64.pyd +0 -0
- scipy/special/_special_ufuncs.cp311-win_amd64.dll.a +0 -0
- scipy/special/_special_ufuncs.cp311-win_amd64.pyd +0 -0
- scipy/special/_spherical_bessel.py +4 -4
- scipy/special/_support_alternative_backends.py +212 -119
- scipy/special/_test_internal.cp311-win_amd64.dll.a +0 -0
- scipy/special/_test_internal.cp311-win_amd64.pyd +0 -0
- scipy/special/_testutils.py +4 -4
- scipy/special/_ufuncs.cp311-win_amd64.dll.a +0 -0
- scipy/special/_ufuncs.cp311-win_amd64.pyd +0 -0
- scipy/special/_ufuncs.pyi +1 -0
- scipy/special/_ufuncs.pyx +215 -1400
- scipy/special/_ufuncs_cxx.cp311-win_amd64.dll.a +0 -0
- scipy/special/_ufuncs_cxx.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/special/cython_special.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_ansari_swilk_statistics.cp311-win_amd64.pyd +0 -0
- scipy/stats/_axis_nan_policy.py +5 -12
- scipy/stats/_biasedurn.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_biasedurn.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_levy_stable/levyst.cp311-win_amd64.pyd +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.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_qmc_cy.cp311-win_amd64.pyd +0 -0
- scipy/stats/_qmvnt.py +16 -95
- scipy/stats/_qmvnt_cy.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_qmvnt_cy.cp311-win_amd64.pyd +0 -0
- scipy/stats/_quantile.py +335 -0
- scipy/stats/_rcont/rcont.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_rcont/rcont.cp311-win_amd64.pyd +0 -0
- scipy/stats/_resampling.py +4 -29
- scipy/stats/_sampling.py +1 -1
- scipy/stats/_sobol.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_sobol.cp311-win_amd64.pyd +0 -0
- scipy/stats/_stats.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_stats.cp311-win_amd64.pyd +0 -0
- scipy/stats/_stats_mstats_common.py +21 -2
- scipy/stats/_stats_py.py +550 -476
- scipy/stats/_stats_pythran.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_stats_pythran.cp311-win_amd64.pyd +0 -0
- scipy/stats/_unuran/unuran_wrapper.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_unuran/unuran_wrapper.cp311-win_amd64.pyd +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.16.0rc2.dist-info/DELVEWHEEL +2 -0
- {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 +685 -693
- scipy/_lib/array_api_extra/_funcs.py +0 -484
- scipy/_lib/array_api_extra/_typing.py +0 -8
- scipy/interpolate/_bspl.cp311-win_amd64.dll.a +0 -0
- scipy/interpolate/_bspl.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_cobyla.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_cobyla.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_cython_nnls.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_cython_nnls.cp311-win_amd64.pyd +0 -0
- scipy/optimize/_slsqp.cp311-win_amd64.dll.a +0 -0
- scipy/optimize/_slsqp.cp311-win_amd64.pyd +0 -0
- scipy/spatial/qhull_src/COPYING.txt +0 -38
- scipy/special/libsf_error_state.dll +0 -0
- scipy/special/libsf_error_state.dll.a +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.cp311-win_amd64.dll.a +0 -0
- scipy/stats/_mvn.cp311-win_amd64.pyd +0 -0
- scipy-1.15.3.dist-info/DELVEWHEEL +0 -2
- /scipy-1.15.3-cp311-cp311-win_amd64.whl → /scipy-1.16.0rc2-cp311-cp311-win_amd64.whl +0 -0
- {scipy-1.15.3.dist-info → scipy-1.16.0rc2.dist-info}/WHEEL +0 -0
scipy/special/_add_newdocs.py
CHANGED
@@ -82,111 +82,6 @@ add_newdoc("_ellip_norm",
|
|
82
82
|
Internal function, use `ellip_norm` instead.
|
83
83
|
""")
|
84
84
|
|
85
|
-
add_newdoc("voigt_profile",
|
86
|
-
r"""
|
87
|
-
voigt_profile(x, sigma, gamma, out=None)
|
88
|
-
|
89
|
-
Voigt profile.
|
90
|
-
|
91
|
-
The Voigt profile is a convolution of a 1-D Normal distribution with
|
92
|
-
standard deviation ``sigma`` and a 1-D Cauchy distribution with half-width at
|
93
|
-
half-maximum ``gamma``.
|
94
|
-
|
95
|
-
If ``sigma = 0``, PDF of Cauchy distribution is returned.
|
96
|
-
Conversely, if ``gamma = 0``, PDF of Normal distribution is returned.
|
97
|
-
If ``sigma = gamma = 0``, the return value is ``Inf`` for ``x = 0``,
|
98
|
-
and ``0`` for all other ``x``.
|
99
|
-
|
100
|
-
Parameters
|
101
|
-
----------
|
102
|
-
x : array_like
|
103
|
-
Real argument
|
104
|
-
sigma : array_like
|
105
|
-
The standard deviation of the Normal distribution part
|
106
|
-
gamma : array_like
|
107
|
-
The half-width at half-maximum of the Cauchy distribution part
|
108
|
-
out : ndarray, optional
|
109
|
-
Optional output array for the function values
|
110
|
-
|
111
|
-
Returns
|
112
|
-
-------
|
113
|
-
scalar or ndarray
|
114
|
-
The Voigt profile at the given arguments
|
115
|
-
|
116
|
-
See Also
|
117
|
-
--------
|
118
|
-
wofz : Faddeeva function
|
119
|
-
|
120
|
-
Notes
|
121
|
-
-----
|
122
|
-
It can be expressed in terms of Faddeeva function
|
123
|
-
|
124
|
-
.. math:: V(x; \sigma, \gamma) = \frac{Re[w(z)]}{\sigma\sqrt{2\pi}},
|
125
|
-
.. math:: z = \frac{x + i\gamma}{\sqrt{2}\sigma}
|
126
|
-
|
127
|
-
where :math:`w(z)` is the Faddeeva function.
|
128
|
-
|
129
|
-
References
|
130
|
-
----------
|
131
|
-
.. [1] https://en.wikipedia.org/wiki/Voigt_profile
|
132
|
-
|
133
|
-
Examples
|
134
|
-
--------
|
135
|
-
Calculate the function at point 2 for ``sigma=1`` and ``gamma=1``.
|
136
|
-
|
137
|
-
>>> from scipy.special import voigt_profile
|
138
|
-
>>> import numpy as np
|
139
|
-
>>> import matplotlib.pyplot as plt
|
140
|
-
>>> voigt_profile(2, 1., 1.)
|
141
|
-
0.09071519942627544
|
142
|
-
|
143
|
-
Calculate the function at several points by providing a NumPy array
|
144
|
-
for `x`.
|
145
|
-
|
146
|
-
>>> values = np.array([-2., 0., 5])
|
147
|
-
>>> voigt_profile(values, 1., 1.)
|
148
|
-
array([0.0907152 , 0.20870928, 0.01388492])
|
149
|
-
|
150
|
-
Plot the function for different parameter sets.
|
151
|
-
|
152
|
-
>>> fig, ax = plt.subplots(figsize=(8, 8))
|
153
|
-
>>> x = np.linspace(-10, 10, 500)
|
154
|
-
>>> parameters_list = [(1.5, 0., "solid"), (1.3, 0.5, "dashed"),
|
155
|
-
... (0., 1.8, "dotted"), (1., 1., "dashdot")]
|
156
|
-
>>> for params in parameters_list:
|
157
|
-
... sigma, gamma, linestyle = params
|
158
|
-
... voigt = voigt_profile(x, sigma, gamma)
|
159
|
-
... ax.plot(x, voigt, label=rf"$\sigma={sigma},\, \gamma={gamma}$",
|
160
|
-
... ls=linestyle)
|
161
|
-
>>> ax.legend()
|
162
|
-
>>> plt.show()
|
163
|
-
|
164
|
-
Verify visually that the Voigt profile indeed arises as the convolution
|
165
|
-
of a normal and a Cauchy distribution.
|
166
|
-
|
167
|
-
>>> from scipy.signal import convolve
|
168
|
-
>>> x, dx = np.linspace(-10, 10, 500, retstep=True)
|
169
|
-
>>> def gaussian(x, sigma):
|
170
|
-
... return np.exp(-0.5 * x**2/sigma**2)/(sigma * np.sqrt(2*np.pi))
|
171
|
-
>>> def cauchy(x, gamma):
|
172
|
-
... return gamma/(np.pi * (np.square(x)+gamma**2))
|
173
|
-
>>> sigma = 2
|
174
|
-
>>> gamma = 1
|
175
|
-
>>> gauss_profile = gaussian(x, sigma)
|
176
|
-
>>> cauchy_profile = cauchy(x, gamma)
|
177
|
-
>>> convolved = dx * convolve(cauchy_profile, gauss_profile, mode="same")
|
178
|
-
>>> voigt = voigt_profile(x, sigma, gamma)
|
179
|
-
>>> fig, ax = plt.subplots(figsize=(8, 8))
|
180
|
-
>>> ax.plot(x, gauss_profile, label="Gauss: $G$", c='b')
|
181
|
-
>>> ax.plot(x, cauchy_profile, label="Cauchy: $C$", c='y', ls="dashed")
|
182
|
-
>>> xx = 0.5*(x[1:] + x[:-1]) # midpoints
|
183
|
-
>>> ax.plot(xx, convolved[1:], label="Convolution: $G * C$", ls='dashdot',
|
184
|
-
... c='k')
|
185
|
-
>>> ax.plot(x, voigt, label="Voigt", ls='dotted', c='r')
|
186
|
-
>>> ax.legend()
|
187
|
-
>>> plt.show()
|
188
|
-
""")
|
189
|
-
|
190
85
|
add_newdoc("wrightomega",
|
191
86
|
r"""
|
192
87
|
wrightomega(z, out=None)
|
@@ -897,6 +792,21 @@ add_newdoc(
|
|
897
792
|
function by multiplying the result of ``betainc(a, b, x)`` by
|
898
793
|
``beta(a, b)``.
|
899
794
|
|
795
|
+
``betainc(a, b, x)`` is treated as a two parameter family of functions
|
796
|
+
of a single variable `x`, rather than as a function of three variables.
|
797
|
+
This impacts only the limiting cases ``a = 0``, ``b = 0``, ``a = inf``,
|
798
|
+
``b = inf``.
|
799
|
+
|
800
|
+
In general
|
801
|
+
|
802
|
+
.. math::
|
803
|
+
|
804
|
+
\lim_{(a, b) \rightarrow (a_0, b_0)} \mathrm{betainc}(a, b, x)
|
805
|
+
|
806
|
+
is treated as a pointwise limit in ``x``. Thus for example,
|
807
|
+
``betainc(0, b, 0)`` equals ``0`` for ``b > 0``, although it would be
|
808
|
+
indeterminate when considering the simultaneous limit ``(a, x) -> (0+, 0+)``.
|
809
|
+
|
900
810
|
This function wraps the ``ibeta`` routine from the
|
901
811
|
Boost Math C++ library [2]_.
|
902
812
|
|
@@ -988,6 +898,11 @@ add_newdoc(
|
|
988
898
|
-----
|
989
899
|
.. versionadded:: 1.11.0
|
990
900
|
|
901
|
+
Like `betainc`, ``betaincc(a, b, x)`` is treated as a two parameter
|
902
|
+
family of functions of a single variable `x`, rather than as a function of
|
903
|
+
three variables. See the `betainc` docstring for more info on how this
|
904
|
+
impacts limiting cases.
|
905
|
+
|
991
906
|
This function wraps the ``ibetac`` routine from the
|
992
907
|
Boost Math C++ library [2]_.
|
993
908
|
|
@@ -1654,50 +1569,6 @@ add_newdoc("chndtrinc",
|
|
1654
1569
|
|
1655
1570
|
""")
|
1656
1571
|
|
1657
|
-
add_newdoc("dawsn",
|
1658
|
-
"""
|
1659
|
-
dawsn(x, out=None)
|
1660
|
-
|
1661
|
-
Dawson's integral.
|
1662
|
-
|
1663
|
-
Computes::
|
1664
|
-
|
1665
|
-
exp(-x**2) * integral(exp(t**2), t=0..x).
|
1666
|
-
|
1667
|
-
Parameters
|
1668
|
-
----------
|
1669
|
-
x : array_like
|
1670
|
-
Function parameter.
|
1671
|
-
out : ndarray, optional
|
1672
|
-
Optional output array for the function values
|
1673
|
-
|
1674
|
-
Returns
|
1675
|
-
-------
|
1676
|
-
y : scalar or ndarray
|
1677
|
-
Value of the integral.
|
1678
|
-
|
1679
|
-
See Also
|
1680
|
-
--------
|
1681
|
-
wofz, erf, erfc, erfcx, erfi
|
1682
|
-
|
1683
|
-
References
|
1684
|
-
----------
|
1685
|
-
.. [1] Steven G. Johnson, Faddeeva W function implementation.
|
1686
|
-
http://ab-initio.mit.edu/Faddeeva
|
1687
|
-
|
1688
|
-
Examples
|
1689
|
-
--------
|
1690
|
-
>>> import numpy as np
|
1691
|
-
>>> from scipy import special
|
1692
|
-
>>> import matplotlib.pyplot as plt
|
1693
|
-
>>> x = np.linspace(-15, 15, num=1000)
|
1694
|
-
>>> plt.plot(x, special.dawsn(x))
|
1695
|
-
>>> plt.xlabel('$x$')
|
1696
|
-
>>> plt.ylabel('$dawsn(x)$')
|
1697
|
-
>>> plt.show()
|
1698
|
-
|
1699
|
-
""")
|
1700
|
-
|
1701
1572
|
add_newdoc(
|
1702
1573
|
"elliprc",
|
1703
1574
|
r"""
|
@@ -2293,189 +2164,6 @@ add_newdoc("entr",
|
|
2293
2164
|
|
2294
2165
|
""")
|
2295
2166
|
|
2296
|
-
add_newdoc("erf",
|
2297
|
-
"""
|
2298
|
-
erf(z, out=None)
|
2299
|
-
|
2300
|
-
Returns the error function of complex argument.
|
2301
|
-
|
2302
|
-
It is defined as ``2/sqrt(pi)*integral(exp(-t**2), t=0..z)``.
|
2303
|
-
|
2304
|
-
Parameters
|
2305
|
-
----------
|
2306
|
-
x : ndarray
|
2307
|
-
Input array.
|
2308
|
-
out : ndarray, optional
|
2309
|
-
Optional output array for the function values
|
2310
|
-
|
2311
|
-
Returns
|
2312
|
-
-------
|
2313
|
-
res : scalar or ndarray
|
2314
|
-
The values of the error function at the given points `x`.
|
2315
|
-
|
2316
|
-
See Also
|
2317
|
-
--------
|
2318
|
-
erfc, erfinv, erfcinv, wofz, erfcx, erfi
|
2319
|
-
|
2320
|
-
Notes
|
2321
|
-
-----
|
2322
|
-
The cumulative of the unit normal distribution is given by
|
2323
|
-
``Phi(z) = 1/2[1 + erf(z/sqrt(2))]``.
|
2324
|
-
|
2325
|
-
References
|
2326
|
-
----------
|
2327
|
-
.. [1] https://en.wikipedia.org/wiki/Error_function
|
2328
|
-
.. [2] Milton Abramowitz and Irene A. Stegun, eds.
|
2329
|
-
Handbook of Mathematical Functions with Formulas,
|
2330
|
-
Graphs, and Mathematical Tables. New York: Dover,
|
2331
|
-
1972. http://www.math.sfu.ca/~cbm/aands/page_297.htm
|
2332
|
-
.. [3] Steven G. Johnson, Faddeeva W function implementation.
|
2333
|
-
http://ab-initio.mit.edu/Faddeeva
|
2334
|
-
|
2335
|
-
Examples
|
2336
|
-
--------
|
2337
|
-
>>> import numpy as np
|
2338
|
-
>>> from scipy import special
|
2339
|
-
>>> import matplotlib.pyplot as plt
|
2340
|
-
>>> x = np.linspace(-3, 3)
|
2341
|
-
>>> plt.plot(x, special.erf(x))
|
2342
|
-
>>> plt.xlabel('$x$')
|
2343
|
-
>>> plt.ylabel('$erf(x)$')
|
2344
|
-
>>> plt.show()
|
2345
|
-
|
2346
|
-
""")
|
2347
|
-
|
2348
|
-
add_newdoc("erfc",
|
2349
|
-
"""
|
2350
|
-
erfc(x, out=None)
|
2351
|
-
|
2352
|
-
Complementary error function, ``1 - erf(x)``.
|
2353
|
-
|
2354
|
-
Parameters
|
2355
|
-
----------
|
2356
|
-
x : array_like
|
2357
|
-
Real or complex valued argument
|
2358
|
-
out : ndarray, optional
|
2359
|
-
Optional output array for the function results
|
2360
|
-
|
2361
|
-
Returns
|
2362
|
-
-------
|
2363
|
-
scalar or ndarray
|
2364
|
-
Values of the complementary error function
|
2365
|
-
|
2366
|
-
See Also
|
2367
|
-
--------
|
2368
|
-
erf, erfi, erfcx, dawsn, wofz
|
2369
|
-
|
2370
|
-
References
|
2371
|
-
----------
|
2372
|
-
.. [1] Steven G. Johnson, Faddeeva W function implementation.
|
2373
|
-
http://ab-initio.mit.edu/Faddeeva
|
2374
|
-
|
2375
|
-
Examples
|
2376
|
-
--------
|
2377
|
-
>>> import numpy as np
|
2378
|
-
>>> from scipy import special
|
2379
|
-
>>> import matplotlib.pyplot as plt
|
2380
|
-
>>> x = np.linspace(-3, 3)
|
2381
|
-
>>> plt.plot(x, special.erfc(x))
|
2382
|
-
>>> plt.xlabel('$x$')
|
2383
|
-
>>> plt.ylabel('$erfc(x)$')
|
2384
|
-
>>> plt.show()
|
2385
|
-
|
2386
|
-
""")
|
2387
|
-
|
2388
|
-
add_newdoc("erfi",
|
2389
|
-
"""
|
2390
|
-
erfi(z, out=None)
|
2391
|
-
|
2392
|
-
Imaginary error function, ``-i erf(i z)``.
|
2393
|
-
|
2394
|
-
Parameters
|
2395
|
-
----------
|
2396
|
-
z : array_like
|
2397
|
-
Real or complex valued argument
|
2398
|
-
out : ndarray, optional
|
2399
|
-
Optional output array for the function results
|
2400
|
-
|
2401
|
-
Returns
|
2402
|
-
-------
|
2403
|
-
scalar or ndarray
|
2404
|
-
Values of the imaginary error function
|
2405
|
-
|
2406
|
-
See Also
|
2407
|
-
--------
|
2408
|
-
erf, erfc, erfcx, dawsn, wofz
|
2409
|
-
|
2410
|
-
Notes
|
2411
|
-
-----
|
2412
|
-
|
2413
|
-
.. versionadded:: 0.12.0
|
2414
|
-
|
2415
|
-
References
|
2416
|
-
----------
|
2417
|
-
.. [1] Steven G. Johnson, Faddeeva W function implementation.
|
2418
|
-
http://ab-initio.mit.edu/Faddeeva
|
2419
|
-
|
2420
|
-
Examples
|
2421
|
-
--------
|
2422
|
-
>>> import numpy as np
|
2423
|
-
>>> from scipy import special
|
2424
|
-
>>> import matplotlib.pyplot as plt
|
2425
|
-
>>> x = np.linspace(-3, 3)
|
2426
|
-
>>> plt.plot(x, special.erfi(x))
|
2427
|
-
>>> plt.xlabel('$x$')
|
2428
|
-
>>> plt.ylabel('$erfi(x)$')
|
2429
|
-
>>> plt.show()
|
2430
|
-
|
2431
|
-
""")
|
2432
|
-
|
2433
|
-
add_newdoc("erfcx",
|
2434
|
-
"""
|
2435
|
-
erfcx(x, out=None)
|
2436
|
-
|
2437
|
-
Scaled complementary error function, ``exp(x**2) * erfc(x)``.
|
2438
|
-
|
2439
|
-
Parameters
|
2440
|
-
----------
|
2441
|
-
x : array_like
|
2442
|
-
Real or complex valued argument
|
2443
|
-
out : ndarray, optional
|
2444
|
-
Optional output array for the function results
|
2445
|
-
|
2446
|
-
Returns
|
2447
|
-
-------
|
2448
|
-
scalar or ndarray
|
2449
|
-
Values of the scaled complementary error function
|
2450
|
-
|
2451
|
-
|
2452
|
-
See Also
|
2453
|
-
--------
|
2454
|
-
erf, erfc, erfi, dawsn, wofz
|
2455
|
-
|
2456
|
-
Notes
|
2457
|
-
-----
|
2458
|
-
|
2459
|
-
.. versionadded:: 0.12.0
|
2460
|
-
|
2461
|
-
References
|
2462
|
-
----------
|
2463
|
-
.. [1] Steven G. Johnson, Faddeeva W function implementation.
|
2464
|
-
http://ab-initio.mit.edu/Faddeeva
|
2465
|
-
|
2466
|
-
Examples
|
2467
|
-
--------
|
2468
|
-
>>> import numpy as np
|
2469
|
-
>>> from scipy import special
|
2470
|
-
>>> import matplotlib.pyplot as plt
|
2471
|
-
>>> x = np.linspace(-3, 3)
|
2472
|
-
>>> plt.plot(x, special.erfcx(x))
|
2473
|
-
>>> plt.xlabel('$x$')
|
2474
|
-
>>> plt.ylabel('$erfcx(x)$')
|
2475
|
-
>>> plt.show()
|
2476
|
-
|
2477
|
-
""")
|
2478
|
-
|
2479
2167
|
add_newdoc(
|
2480
2168
|
"erfinv",
|
2481
2169
|
"""
|
@@ -3399,120 +3087,6 @@ add_newdoc("eval_hermitenorm",
|
|
3399
3087
|
|
3400
3088
|
""")
|
3401
3089
|
|
3402
|
-
|
3403
|
-
add_newdoc("exp10",
|
3404
|
-
"""
|
3405
|
-
exp10(x, out=None)
|
3406
|
-
|
3407
|
-
Compute ``10**x`` element-wise.
|
3408
|
-
|
3409
|
-
Parameters
|
3410
|
-
----------
|
3411
|
-
x : array_like
|
3412
|
-
`x` must contain real numbers.
|
3413
|
-
out : ndarray, optional
|
3414
|
-
Optional output array for the function values
|
3415
|
-
|
3416
|
-
Returns
|
3417
|
-
-------
|
3418
|
-
scalar or ndarray
|
3419
|
-
``10**x``, computed element-wise.
|
3420
|
-
|
3421
|
-
Examples
|
3422
|
-
--------
|
3423
|
-
>>> import numpy as np
|
3424
|
-
>>> from scipy.special import exp10
|
3425
|
-
|
3426
|
-
>>> exp10(3)
|
3427
|
-
1000.0
|
3428
|
-
>>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])
|
3429
|
-
>>> exp10(x)
|
3430
|
-
array([[ 0.1 , 0.31622777, 1. ],
|
3431
|
-
[ 3.16227766, 10. , 31.6227766 ]])
|
3432
|
-
|
3433
|
-
""")
|
3434
|
-
|
3435
|
-
add_newdoc("exp2",
|
3436
|
-
"""
|
3437
|
-
exp2(x, out=None)
|
3438
|
-
|
3439
|
-
Compute ``2**x`` element-wise.
|
3440
|
-
|
3441
|
-
Parameters
|
3442
|
-
----------
|
3443
|
-
x : array_like
|
3444
|
-
`x` must contain real numbers.
|
3445
|
-
out : ndarray, optional
|
3446
|
-
Optional output array for the function values
|
3447
|
-
|
3448
|
-
Returns
|
3449
|
-
-------
|
3450
|
-
scalar or ndarray
|
3451
|
-
``2**x``, computed element-wise.
|
3452
|
-
|
3453
|
-
Examples
|
3454
|
-
--------
|
3455
|
-
>>> import numpy as np
|
3456
|
-
>>> from scipy.special import exp2
|
3457
|
-
|
3458
|
-
>>> exp2(3)
|
3459
|
-
8.0
|
3460
|
-
>>> x = np.array([[-1, -0.5, 0], [0.5, 1, 1.5]])
|
3461
|
-
>>> exp2(x)
|
3462
|
-
array([[ 0.5 , 0.70710678, 1. ],
|
3463
|
-
[ 1.41421356, 2. , 2.82842712]])
|
3464
|
-
""")
|
3465
|
-
|
3466
|
-
add_newdoc("expm1",
|
3467
|
-
"""
|
3468
|
-
expm1(x, out=None)
|
3469
|
-
|
3470
|
-
Compute ``exp(x) - 1``.
|
3471
|
-
|
3472
|
-
When `x` is near zero, ``exp(x)`` is near 1, so the numerical calculation
|
3473
|
-
of ``exp(x) - 1`` can suffer from catastrophic loss of precision.
|
3474
|
-
``expm1(x)`` is implemented to avoid the loss of precision that occurs when
|
3475
|
-
`x` is near zero.
|
3476
|
-
|
3477
|
-
Parameters
|
3478
|
-
----------
|
3479
|
-
x : array_like
|
3480
|
-
`x` must contain real numbers.
|
3481
|
-
out : ndarray, optional
|
3482
|
-
Optional output array for the function values
|
3483
|
-
|
3484
|
-
Returns
|
3485
|
-
-------
|
3486
|
-
scalar or ndarray
|
3487
|
-
``exp(x) - 1`` computed element-wise.
|
3488
|
-
|
3489
|
-
Examples
|
3490
|
-
--------
|
3491
|
-
>>> import numpy as np
|
3492
|
-
>>> from scipy.special import expm1
|
3493
|
-
|
3494
|
-
>>> expm1(1.0)
|
3495
|
-
1.7182818284590451
|
3496
|
-
>>> expm1([-0.2, -0.1, 0, 0.1, 0.2])
|
3497
|
-
array([-0.18126925, -0.09516258, 0. , 0.10517092, 0.22140276])
|
3498
|
-
|
3499
|
-
The exact value of ``exp(7.5e-13) - 1`` is::
|
3500
|
-
|
3501
|
-
7.5000000000028125000000007031250000001318...*10**-13.
|
3502
|
-
|
3503
|
-
Here is what ``expm1(7.5e-13)`` gives:
|
3504
|
-
|
3505
|
-
>>> expm1(7.5e-13)
|
3506
|
-
7.5000000000028135e-13
|
3507
|
-
|
3508
|
-
Compare that to ``exp(7.5e-13) - 1``, where the subtraction results in
|
3509
|
-
a "catastrophic" loss of precision:
|
3510
|
-
|
3511
|
-
>>> np.exp(7.5e-13) - 1
|
3512
|
-
7.5006667543675576e-13
|
3513
|
-
|
3514
|
-
""")
|
3515
|
-
|
3516
3090
|
add_newdoc("expn",
|
3517
3091
|
r"""
|
3518
3092
|
expn(n, x, out=None)
|
@@ -6094,49 +5668,6 @@ add_newdoc("_lgam1p",
|
|
6094
5668
|
Internal function, do not use.
|
6095
5669
|
""")
|
6096
5670
|
|
6097
|
-
add_newdoc("log1p",
|
6098
|
-
"""
|
6099
|
-
log1p(x, out=None)
|
6100
|
-
|
6101
|
-
Calculates log(1 + x) for use when `x` is near zero.
|
6102
|
-
|
6103
|
-
Parameters
|
6104
|
-
----------
|
6105
|
-
x : array_like
|
6106
|
-
Real or complex valued input.
|
6107
|
-
out : ndarray, optional
|
6108
|
-
Optional output array for the function results.
|
6109
|
-
|
6110
|
-
Returns
|
6111
|
-
-------
|
6112
|
-
scalar or ndarray
|
6113
|
-
Values of ``log(1 + x)``.
|
6114
|
-
|
6115
|
-
See Also
|
6116
|
-
--------
|
6117
|
-
expm1, cosm1
|
6118
|
-
|
6119
|
-
Examples
|
6120
|
-
--------
|
6121
|
-
>>> import numpy as np
|
6122
|
-
>>> import scipy.special as sc
|
6123
|
-
|
6124
|
-
It is more accurate than using ``log(1 + x)`` directly for ``x``
|
6125
|
-
near 0. Note that in the below example ``1 + 1e-17 == 1`` to
|
6126
|
-
double precision.
|
6127
|
-
|
6128
|
-
>>> sc.log1p(1e-17)
|
6129
|
-
1e-17
|
6130
|
-
>>> np.log(1 + 1e-17)
|
6131
|
-
0.0
|
6132
|
-
|
6133
|
-
""")
|
6134
|
-
|
6135
|
-
add_newdoc("_log1pmx",
|
6136
|
-
"""
|
6137
|
-
Internal function, do not use.
|
6138
|
-
""")
|
6139
|
-
|
6140
5671
|
add_newdoc("lpmv",
|
6141
5672
|
r"""
|
6142
5673
|
lpmv(m, v, x, out=None)
|
@@ -7240,7 +6771,7 @@ add_newdoc("nctdtrit",
|
|
7240
6771
|
df : array_like
|
7241
6772
|
Degrees of freedom of the distribution. Should be in range (0, inf).
|
7242
6773
|
nc : array_like
|
7243
|
-
Noncentrality parameter.
|
6774
|
+
Noncentrality parameter.
|
7244
6775
|
p : array_like
|
7245
6776
|
CDF values, in range (0, 1].
|
7246
6777
|
out : ndarray, optional
|
@@ -7257,6 +6788,19 @@ add_newdoc("nctdtrit",
|
|
7257
6788
|
nctdtridf : Calculate degrees of freedom, given CDF and iCDF values.
|
7258
6789
|
nctdtrinc : Calculate non-centrality parameter, given CDF iCDF values.
|
7259
6790
|
|
6791
|
+
Notes
|
6792
|
+
-----
|
6793
|
+
This function calculates the quantile of the non-central t distribution using
|
6794
|
+
the Boost Math C++ library [1]_.
|
6795
|
+
|
6796
|
+
Note that the argument order of `nctdtrit` is different from that of the
|
6797
|
+
similar ``ppf`` method of `scipy.stats.nct`: `t` is the last
|
6798
|
+
parameter of `nctdtrit` but the first parameter of ``scipy.stats.nct.ppf``.
|
6799
|
+
|
6800
|
+
References
|
6801
|
+
----------
|
6802
|
+
.. [1] The Boost Developers. "Boost C++ Libraries". https://www.boost.org/.
|
6803
|
+
|
7260
6804
|
Examples
|
7261
6805
|
--------
|
7262
6806
|
>>> from scipy.special import nctdtr, nctdtrit
|
@@ -7275,65 +6819,6 @@ add_newdoc("nctdtrit",
|
|
7275
6819
|
|
7276
6820
|
""")
|
7277
6821
|
|
7278
|
-
add_newdoc("ndtr",
|
7279
|
-
r"""
|
7280
|
-
ndtr(x, out=None)
|
7281
|
-
|
7282
|
-
Cumulative distribution of the standard normal distribution.
|
7283
|
-
|
7284
|
-
Returns the area under the standard Gaussian probability
|
7285
|
-
density function, integrated from minus infinity to `x`
|
7286
|
-
|
7287
|
-
.. math::
|
7288
|
-
|
7289
|
-
\frac{1}{\sqrt{2\pi}} \int_{-\infty}^x \exp(-t^2/2) dt
|
7290
|
-
|
7291
|
-
Parameters
|
7292
|
-
----------
|
7293
|
-
x : array_like, real or complex
|
7294
|
-
Argument
|
7295
|
-
out : ndarray, optional
|
7296
|
-
Optional output array for the function results
|
7297
|
-
|
7298
|
-
Returns
|
7299
|
-
-------
|
7300
|
-
scalar or ndarray
|
7301
|
-
The value of the normal CDF evaluated at `x`
|
7302
|
-
|
7303
|
-
See Also
|
7304
|
-
--------
|
7305
|
-
log_ndtr : Logarithm of ndtr
|
7306
|
-
ndtri : Inverse of ndtr, standard normal percentile function
|
7307
|
-
erf : Error function
|
7308
|
-
erfc : 1 - erf
|
7309
|
-
scipy.stats.norm : Normal distribution
|
7310
|
-
|
7311
|
-
Examples
|
7312
|
-
--------
|
7313
|
-
Evaluate `ndtr` at one point.
|
7314
|
-
|
7315
|
-
>>> import numpy as np
|
7316
|
-
>>> from scipy.special import ndtr
|
7317
|
-
>>> ndtr(0.5)
|
7318
|
-
0.6914624612740131
|
7319
|
-
|
7320
|
-
Evaluate the function at several points by providing a NumPy array
|
7321
|
-
or list for `x`.
|
7322
|
-
|
7323
|
-
>>> ndtr([0, 0.5, 2])
|
7324
|
-
array([0.5 , 0.69146246, 0.97724987])
|
7325
|
-
|
7326
|
-
Plot the function.
|
7327
|
-
|
7328
|
-
>>> import matplotlib.pyplot as plt
|
7329
|
-
>>> x = np.linspace(-5, 5, 100)
|
7330
|
-
>>> fig, ax = plt.subplots()
|
7331
|
-
>>> ax.plot(x, ndtr(x))
|
7332
|
-
>>> ax.set_title(r"Standard normal cumulative distribution function $\Phi$")
|
7333
|
-
>>> plt.show()
|
7334
|
-
""")
|
7335
|
-
|
7336
|
-
|
7337
6822
|
add_newdoc("nrdtrimn",
|
7338
6823
|
"""
|
7339
6824
|
nrdtrimn(p, std, x, out=None)
|
@@ -7441,59 +6926,6 @@ add_newdoc("nrdtrisd",
|
|
7441
6926
|
|
7442
6927
|
""")
|
7443
6928
|
|
7444
|
-
add_newdoc("log_ndtr",
|
7445
|
-
"""
|
7446
|
-
log_ndtr(x, out=None)
|
7447
|
-
|
7448
|
-
Logarithm of Gaussian cumulative distribution function.
|
7449
|
-
|
7450
|
-
Returns the log of the area under the standard Gaussian probability
|
7451
|
-
density function, integrated from minus infinity to `x`::
|
7452
|
-
|
7453
|
-
log(1/sqrt(2*pi) * integral(exp(-t**2 / 2), t=-inf..x))
|
7454
|
-
|
7455
|
-
Parameters
|
7456
|
-
----------
|
7457
|
-
x : array_like, real or complex
|
7458
|
-
Argument
|
7459
|
-
out : ndarray, optional
|
7460
|
-
Optional output array for the function results
|
7461
|
-
|
7462
|
-
Returns
|
7463
|
-
-------
|
7464
|
-
scalar or ndarray
|
7465
|
-
The value of the log of the normal CDF evaluated at `x`
|
7466
|
-
|
7467
|
-
See Also
|
7468
|
-
--------
|
7469
|
-
erf
|
7470
|
-
erfc
|
7471
|
-
scipy.stats.norm
|
7472
|
-
ndtr
|
7473
|
-
|
7474
|
-
Examples
|
7475
|
-
--------
|
7476
|
-
>>> import numpy as np
|
7477
|
-
>>> from scipy.special import log_ndtr, ndtr
|
7478
|
-
|
7479
|
-
The benefit of ``log_ndtr(x)`` over the naive implementation
|
7480
|
-
``np.log(ndtr(x))`` is most evident with moderate to large positive
|
7481
|
-
values of ``x``:
|
7482
|
-
|
7483
|
-
>>> x = np.array([6, 7, 9, 12, 15, 25])
|
7484
|
-
>>> log_ndtr(x)
|
7485
|
-
array([-9.86587646e-010, -1.27981254e-012, -1.12858841e-019,
|
7486
|
-
-1.77648211e-033, -3.67096620e-051, -3.05669671e-138])
|
7487
|
-
|
7488
|
-
The results of the naive calculation for the moderate ``x`` values
|
7489
|
-
have only 5 or 6 correct significant digits. For values of ``x``
|
7490
|
-
greater than approximately 8.3, the naive expression returns 0:
|
7491
|
-
|
7492
|
-
>>> np.log(ndtr(x))
|
7493
|
-
array([-9.86587701e-10, -1.27986510e-12, 0.00000000e+00,
|
7494
|
-
0.00000000e+00, 0.00000000e+00, 0.00000000e+00])
|
7495
|
-
""")
|
7496
|
-
|
7497
6929
|
add_newdoc("ndtri",
|
7498
6930
|
"""
|
7499
6931
|
ndtri(y, out=None)
|
@@ -8972,176 +8404,6 @@ add_newdoc(
|
|
8972
8404
|
significantly faster than ``tukeylambda.cdf``.
|
8973
8405
|
""")
|
8974
8406
|
|
8975
|
-
add_newdoc("wofz",
|
8976
|
-
"""
|
8977
|
-
wofz(z, out=None)
|
8978
|
-
|
8979
|
-
Faddeeva function
|
8980
|
-
|
8981
|
-
Returns the value of the Faddeeva function for complex argument::
|
8982
|
-
|
8983
|
-
exp(-z**2) * erfc(-i*z)
|
8984
|
-
|
8985
|
-
Parameters
|
8986
|
-
----------
|
8987
|
-
z : array_like
|
8988
|
-
complex argument
|
8989
|
-
out : ndarray, optional
|
8990
|
-
Optional output array for the function results
|
8991
|
-
|
8992
|
-
Returns
|
8993
|
-
-------
|
8994
|
-
scalar or ndarray
|
8995
|
-
Value of the Faddeeva function
|
8996
|
-
|
8997
|
-
See Also
|
8998
|
-
--------
|
8999
|
-
dawsn, erf, erfc, erfcx, erfi
|
9000
|
-
|
9001
|
-
References
|
9002
|
-
----------
|
9003
|
-
.. [1] Steven G. Johnson, Faddeeva W function implementation.
|
9004
|
-
http://ab-initio.mit.edu/Faddeeva
|
9005
|
-
|
9006
|
-
Examples
|
9007
|
-
--------
|
9008
|
-
>>> import numpy as np
|
9009
|
-
>>> from scipy import special
|
9010
|
-
>>> import matplotlib.pyplot as plt
|
9011
|
-
|
9012
|
-
>>> x = np.linspace(-3, 3)
|
9013
|
-
>>> z = special.wofz(x)
|
9014
|
-
|
9015
|
-
>>> plt.plot(x, z.real, label='wofz(x).real')
|
9016
|
-
>>> plt.plot(x, z.imag, label='wofz(x).imag')
|
9017
|
-
>>> plt.xlabel('$x$')
|
9018
|
-
>>> plt.legend(framealpha=1, shadow=True)
|
9019
|
-
>>> plt.grid(alpha=0.25)
|
9020
|
-
>>> plt.show()
|
9021
|
-
|
9022
|
-
""")
|
9023
|
-
|
9024
|
-
add_newdoc("xlogy",
|
9025
|
-
"""
|
9026
|
-
xlogy(x, y, out=None)
|
9027
|
-
|
9028
|
-
Compute ``x*log(y)`` so that the result is 0 if ``x = 0``.
|
9029
|
-
|
9030
|
-
Parameters
|
9031
|
-
----------
|
9032
|
-
x : array_like
|
9033
|
-
Multiplier
|
9034
|
-
y : array_like
|
9035
|
-
Argument
|
9036
|
-
out : ndarray, optional
|
9037
|
-
Optional output array for the function results
|
9038
|
-
|
9039
|
-
Returns
|
9040
|
-
-------
|
9041
|
-
z : scalar or ndarray
|
9042
|
-
Computed x*log(y)
|
9043
|
-
|
9044
|
-
Notes
|
9045
|
-
-----
|
9046
|
-
The log function used in the computation is the natural log.
|
9047
|
-
|
9048
|
-
.. versionadded:: 0.13.0
|
9049
|
-
|
9050
|
-
Examples
|
9051
|
-
--------
|
9052
|
-
We can use this function to calculate the binary logistic loss also
|
9053
|
-
known as the binary cross entropy. This loss function is used for
|
9054
|
-
binary classification problems and is defined as:
|
9055
|
-
|
9056
|
-
.. math::
|
9057
|
-
L = 1/n * \\sum_{i=0}^n -(y_i*log(y\\_pred_i) + (1-y_i)*log(1-y\\_pred_i))
|
9058
|
-
|
9059
|
-
We can define the parameters `x` and `y` as y and y_pred respectively.
|
9060
|
-
y is the array of the actual labels which over here can be either 0 or 1.
|
9061
|
-
y_pred is the array of the predicted probabilities with respect to
|
9062
|
-
the positive class (1).
|
9063
|
-
|
9064
|
-
>>> import numpy as np
|
9065
|
-
>>> from scipy.special import xlogy
|
9066
|
-
>>> y = np.array([0, 1, 0, 1, 1, 0])
|
9067
|
-
>>> y_pred = np.array([0.3, 0.8, 0.4, 0.7, 0.9, 0.2])
|
9068
|
-
>>> n = len(y)
|
9069
|
-
>>> loss = -(xlogy(y, y_pred) + xlogy(1 - y, 1 - y_pred)).sum()
|
9070
|
-
>>> loss /= n
|
9071
|
-
>>> loss
|
9072
|
-
0.29597052165495025
|
9073
|
-
|
9074
|
-
A lower loss is usually better as it indicates that the predictions are
|
9075
|
-
similar to the actual labels. In this example since our predicted
|
9076
|
-
probabilities are close to the actual labels, we get an overall loss
|
9077
|
-
that is reasonably low and appropriate.
|
9078
|
-
|
9079
|
-
""")
|
9080
|
-
|
9081
|
-
add_newdoc("xlog1py",
|
9082
|
-
"""
|
9083
|
-
xlog1py(x, y, out=None)
|
9084
|
-
|
9085
|
-
Compute ``x*log1p(y)`` so that the result is 0 if ``x = 0``.
|
9086
|
-
|
9087
|
-
Parameters
|
9088
|
-
----------
|
9089
|
-
x : array_like
|
9090
|
-
Multiplier
|
9091
|
-
y : array_like
|
9092
|
-
Argument
|
9093
|
-
out : ndarray, optional
|
9094
|
-
Optional output array for the function results
|
9095
|
-
|
9096
|
-
Returns
|
9097
|
-
-------
|
9098
|
-
z : scalar or ndarray
|
9099
|
-
Computed x*log1p(y)
|
9100
|
-
|
9101
|
-
Notes
|
9102
|
-
-----
|
9103
|
-
|
9104
|
-
.. versionadded:: 0.13.0
|
9105
|
-
|
9106
|
-
Examples
|
9107
|
-
--------
|
9108
|
-
This example shows how the function can be used to calculate the log of
|
9109
|
-
the probability mass function for a geometric discrete random variable.
|
9110
|
-
The probability mass function of the geometric distribution is defined
|
9111
|
-
as follows:
|
9112
|
-
|
9113
|
-
.. math:: f(k) = (1-p)^{k-1} p
|
9114
|
-
|
9115
|
-
where :math:`p` is the probability of a single success
|
9116
|
-
and :math:`1-p` is the probability of a single failure
|
9117
|
-
and :math:`k` is the number of trials to get the first success.
|
9118
|
-
|
9119
|
-
>>> import numpy as np
|
9120
|
-
>>> from scipy.special import xlog1py
|
9121
|
-
>>> p = 0.5
|
9122
|
-
>>> k = 100
|
9123
|
-
>>> _pmf = np.power(1 - p, k - 1) * p
|
9124
|
-
>>> _pmf
|
9125
|
-
7.888609052210118e-31
|
9126
|
-
|
9127
|
-
If we take k as a relatively large number the value of the probability
|
9128
|
-
mass function can become very low. In such cases taking the log of the
|
9129
|
-
pmf would be more suitable as the log function can change the values
|
9130
|
-
to a scale that is more appropriate to work with.
|
9131
|
-
|
9132
|
-
>>> _log_pmf = xlog1py(k - 1, -p) + np.log(p)
|
9133
|
-
>>> _log_pmf
|
9134
|
-
-69.31471805599453
|
9135
|
-
|
9136
|
-
We can confirm that we get a value close to the original pmf value by
|
9137
|
-
taking the exponential of the log pmf.
|
9138
|
-
|
9139
|
-
>>> _orig_pmf = np.exp(_log_pmf)
|
9140
|
-
>>> np.isclose(_pmf, _orig_pmf)
|
9141
|
-
True
|
9142
|
-
|
9143
|
-
""")
|
9144
|
-
|
9145
8407
|
add_newdoc("yn",
|
9146
8408
|
r"""
|
9147
8409
|
yn(n, x, out=None)
|