SciPy 1.15.0 Release Notes#
SciPy 1.15.0 is the culmination of 6 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been a number of deprecations and API changes
in this release, which are documented below. All users are encouraged to
upgrade to this release, as there are a large number of bug-fixes and
optimizations. Before upgrading, we recommend that users check that
their own code does not use deprecated SciPy functionality (to do so,
run your code with python -Wd and check for DeprecationWarning s).
Our development attention will now shift to bug-fix releases on the
1.15.x branch, and on adding new features on the main branch.
This release requires Python 3.10-3.13 and NumPy 1.23.5 or greater.
Highlights of this release#
- Sparse arrays are now fully functional for 1-D and 2-D arrays. We recommend that all new code use sparse arrays instead of sparse matrices and that developers start to migrate their existing code from sparse matrix to sparse array: Migration from spmatrix to sparray. Both - sparse.linalgand- sparse.csgraphwork with either sparse matrix or sparse array and work internally with sparse array.
- Sparse arrays now provide basic support for n-D arrays in the COO format including - add,- subtract,- reshape,- transpose,- matmul,- dot,- tensordotand others. More functionality is coming in future releases.
- Preliminary support for free-threaded Python 3.13. 
- New probability distribution features in - scipy.statscan be used to improve the speed and accuracy of existing continuous distributions and perform new probability calculations.
- Several new features support vectorized calculations with Python Array API Standard compatible input (see “Array API Standard Support” below): - scipy.differentiateis a new top-level submodule for accurate estimation of derivatives of black box functions.
- scipy.optimize.elementwisecontains new functions for root-finding and minimization of univariate functions.
- scipy.integrateoffers new functions- cubature,- tanhsinh, and- nsumfor multivariate integration, univariate integration, and univariate series summation, respectively.
 
- scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.
- scipy.specialadds new functions offering improved Legendre function implementations with a more consistent interface.
New features#
scipy.differentiate introduction#
The new scipy.differentiate sub-package contains functions for accurate
estimation of derivatives of black box functions.
- Use - scipy.differentiate.derivativefor first-order derivatives of scalar-in, scalar-out functions.
- Use - scipy.differentiate.jacobianfor first-order partial derivatives of vector-in, vector-out functions.
- Use - scipy.differentiate.hessianfor second-order partial derivatives of vector-in, scalar-out functions.
All functions use high-order finite difference rules with adaptive (real) step size. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see “Array API Standard Support” below).
scipy.integrate improvements#
- The new - scipy.integrate.cubaturefunction supports multidimensional integration, and has support for approximating integrals with one or more sets of infinite limits.
- scipy.integrate.tanhsinhis now exposed for public use, allowing evaluation of a convergent integral using tanh-sinh quadrature.
- scipy.integrate.nsumevaluates finite and infinite series and their logarithms.
- scipy.integrate.lebedev_rulecomputes abscissae and weights for integration over the surface of a sphere.
- The - QUADPACKFortran77 package has been ported to C.
scipy.interpolate improvements#
- scipy.interpolate.AAAadds the AAA algorithm for barycentric rational approximation of real or complex functions.
- scipy.interpolate.FloaterHormannInterpolatoradds barycentric rational interpolation.
- New functions - scipy.interpolate.make_splrepand- scipy.interpolate.make_splprepimplement construction of smoothing splines. The algorithmic content is equivalent to FITPACK (- splrepand- splprepfunctions, and- *UnivariateSplineclasses) and the user API is consistent with- make_interp_spline: these functions receive data arrays and return a- scipy.interpolate.BSplineinstance.
- New generator function - scipy.interpolate.generate_knotsimplements the FITPACK strategy for selecting knots of a smoothing spline given the smoothness parameter,- s. The function exposes the internal logic of knot selection that- splrepand- *UnivariateSplinewas using.
scipy.linalg improvements#
- scipy.linalg.interpolativeFortran77 code has been ported to Cython.
- scipy.linalg.solvesupports several new values for the- assume_aargument, enabling faster computation for diagonal, tri-diagonal, banded, and triangular matrices. Also, when- assume_ais left unspecified, the function now automatically detects and exploits diagonal, tri-diagonal, and triangular structures.
- scipy.linalgmatrix creation functions (- scipy.linalg.circulant,- scipy.linalg.companion,- scipy.linalg.convolution_matrix,- scipy.linalg.fiedler,- scipy.linalg.fiedler_companion, and- scipy.linalg.leslie) now support batch matrix creation.
- scipy.linalg.funmis faster.
- scipy.linalg.orthogonal_procrustesnow supports complex input.
- Wrappers for the following LAPACK routines have been added in - scipy.linalg.lapack:- ?lantr,- ?sytrs,- ?hetrs,- ?trcon, and- ?gtcon.
- scipy.linalg.expmwas rewritten in C.
- scipy.linalg.null_spacenow accepts the new arguments- overwrite_a,- check_finite, and- lapack_driver.
- id_distFortran code was rewritten in Cython.
scipy.ndimage improvements#
- Several additional filtering functions now support an - axesargument that specifies which axes of the input filtering is to be performed on. These include- correlate,- convolve,- generic_laplace,- laplace,- gaussian_laplace,- derivative2,- generic_gradient_magnitude,- gaussian_gradient_magnitudeand- generic_filter.
- The binary and grayscale morphology functions now support an - axesargument that specifies which axes of the input filtering is to be performed on.
- scipy.ndimage.rank_filtertime complexity has improved from- nto- log(n).
scipy.optimize improvements#
- The vendored HiGHS library has been upgraded from - 1.4.0to- 1.8.0, bringing accuracy and performance improvements to solvers.
- The - MINPACKFortran77 package has been ported to C.
- The - L-BFGS-BFortran77 package has been ported to C.
- The new - scipy.optimize.elementwisenamespace includes functions- bracket_root,- find_root,- bracket_minimum, and- find_minimumfor root-finding and minimization of univariate functions. To facilitate batch computation, these functions are vectorized and support several Array API compatible array libraries in addition to NumPy (see “Array API Standard Support” below). Compared to existing functions (e.g.- scipy.optimize.root_scalarand- scipy.optimize.minimize_scalar), these functions can offer speedups of over 100x when used with NumPy arrays, and even greater gains are possible with other Array API Standard compatible array libraries (e.g. CuPy).
- scipy.optimize.differential_evolutionnow supports more general use of- workers, such as passing a map-like callable.
- scipy.optimize.nnlswas rewritten in Cython.
- HessianUpdateStrategynow supports- __matmul__.
scipy.signal improvements#
- Add functionality of complex-valued waveforms to - signal.chirp().
- scipy.signal.lombscarglehas two new arguments,- weightsand- floating_mean, enabling sample weighting and removal of an unknown y-offset independently for each frequency. Additionally, the- normalizeargument includes a new option to return the complex representation of the amplitude and phase.
- New function - scipy.signal.envelopefor computation of the envelope of a real or complex valued signal.
scipy.sparse improvements#
- A migration guide is now available for moving from sparse.matrix to sparse.array in your code/library. 
- Sparse arrays now support indexing for 1-D and 2-D arrays. So, sparse arrays are now fully functional for 1-D and 2D. 
- n-D sparse arrays in COO format can now be constructed, reshaped and used for basic arithmetic. 
- New functions - sparse.linalg.is_sptriangularand- sparse.linalg.spbandwidthmimic the existing dense tools- linalg.is_triangularand- linalg.bandwidth.
- sparse.linalgand- sparse.csgraphnow work with sparse arrays. Be careful that your index arrays are 32-bit. We are working on 64bit support.
- The vendored - ARPACKlibrary has been upgraded to version- 3.9.1.
- COO, CSR, CSC and LIL formats now support the - axisargument for- count_nonzero.
- Sparse arrays and matrices may now raise errors when initialized with incompatible data types, such as - float16.
- min,- max,- argmin, and- argmaxnow support computation over nonzero elements only via the new- explicitargument.
- New functions - get_index_dtypeand- safely_cast_index_arraysare available to facilitate index array casting in- sparse.
scipy.spatial improvements#
- Rotation.concatenatenow accepts a bare- Rotationobject, and will return a copy of it.
scipy.special improvements#
- New functions offering improved Legendre function implementations with a more consistent interface. See respective docstrings for more information. 
- The factorial functions - special.{factorial,factorial2,factorialk}now offer an extension to the complex domain by passing the kwarg- extend='complex'. This is opt-in because it changes the values for negative inputs (which by default return 0), as well as for some integers (in the case of- factorial2and- factorialk; for more details, check the respective docstrings).
- scipy.special.zetanow defines the Riemann zeta function on the complex plane.
- scipy.special.softpluscomputes the softplus function
- The spherical Bessel functions ( - scipy.special.spherical_jn,- scipy.special.spherical_yn,- scipy.special.spherical_in, and- scipy.special.spherical_kn) now support negative arguments with real dtype.
- scipy.special.logsumexpnow preserves precision when one element of the sum has magnitude much bigger than the rest.
- The accuracy of several functions has been improved: - scipy.special.ncfdtr,- scipy.special.nctdtr, and- scipy.special.gdtribhave been improved throughout the domain.
- scipy.special.hyperuis improved for the case of- b=1, small- x, and small- a.
- scipy.special.logitis improved near the argument- p=0.5.
- scipy.special.rel_entris improved when- x/yoverflows, underflows, or is close to- 1.
 
- scipy.special.ndtris now more efficient for- sqrt(2)/2 < |x| < 1.
scipy.stats improvements#
- A new probability distribution infrastructure has been added for the implementation of univariate, continuous distributions. It has several speed, accuracy, memory, and interface advantages compared to the previous infrastructure. See Random Variable Transition Guide for a tutorial. - Use - scipy.stats.make_distributionto treat an existing continuous distribution (e.g.- scipy.stats.norm) with the new infrastructure. This can improve the speed and accuracy of existing distributions, especially those with methods not overridden with distribution-specific formulas.
- scipy.stats.Normaland- scipy.stats.Uniformare pre-defined classes to represent the normal and uniform distributions, respectively. Their interfaces may be faster and more convenient than those produced by- make_distribution.
- scipy.stats.Mixturecan be used to represent mixture distributions.
 
- Instances of - scipy.stats.Normal,- scipy.stats.Uniform, and the classes returned by- scipy.stats.make_distributionare supported by several new mathematical transformations.- scipy.stats.truncatefor truncation of the support.
- scipy.stats.order_statisticfor the order statistics of a given number of IID random variables.
- scipy.stats.abs,- scipy.stats.exp, and- scipy.stats.log. For example,- scipy.stats.abs(Normal())is distributed according to the folded normal and- scipy.stats.exp(Normal())is lognormally distributed.
 
- The new - scipy.stats.lmomentcalculates sample l-moments and l-moment ratios. Notably, these sample estimators are unbiased.
- scipy.stats.chatterjeexicomputes the Xi correlation coefficient, which can detect nonlinear dependence. The function also performs a hypothesis test of independence between samples.
- scipy.stats.wilcoxonhas improved method resolution logic for the default- method='auto'. Other values of- methodprovided by the user are now respected in all cases, and the method argument- approxhas been renamed to- asymptoticfor consistency with similar functions. (Use of- approxis still allowed for backward compatibility.)
- There are several new probability distributions: - scipy.stats.dpareto_lognormrepresents the double Pareto lognormal distribution.
- scipy.stats.landaurepresents the Landau distribution.
- scipy.stats.normal_inverse_gammarepresents the normal-inverse-gamma distribution.
- scipy.stats.poisson_binomrepresents the Poisson binomial distribution.
 
- Batch calculation with - scipy.stats.alexandergovernand- scipy.stats.combine_pvaluesis faster.
- scipy.stats.chisquareadded an argument- sum_check. By default, the function raises an error when the sum of expected and obseved frequencies are not equal; setting- sum_check=Falsedisables this check to facilitate hypothesis tests other than Pearson’s chi-squared test.
- The accuracy of several distribution methods has been improved, including: - scipy.stats.nctmethod- pdf
- scipy.stats.crystalballmethod- sf
- scipy.stats.geommethod- rvs
- scipy.stats.cauchymethods- logpdf,- pdf,- ppfand- isf
- The - logcdfand/or- logsfmethods of distributions that do not override the generic implementation of these methods, including- scipy.stats.beta,- scipy.stats.betaprime,- scipy.stats.cauchy,- scipy.stats.chi,- scipy.stats.chi2,- scipy.stats.exponweib,- scipy.stats.gamma,- scipy.stats.gompertz,- scipy.stats.halflogistic,- scipy.stats.hypsecant,- scipy.stats.invgamma,- scipy.stats.laplace,- scipy.stats.levy,- scipy.stats.loggamma,- scipy.stats.maxwell,- scipy.stats.nakagami, and- scipy.stats.t.
 
- scipy.stats.qmc.PoissonDisknow accepts lower and upper bounds parameters- l_boundsand- u_bounds.
- scipy.stats.fisher_exactnow supports two-dimensional tables with shapes other than- (2, 2).
Preliminary Support for Free-Threaded CPython 3.13#
SciPy 1.15 has preliminary support for the free-threaded build of CPython
3.13. This allows SciPy functionality to execute in parallel with Python
threads
(see the threading stdlib module). This support was enabled by fixing a
significant number of thread-safety issues in both pure Python and
C/C++/Cython/Fortran extension modules. Wheels are provided on PyPI for this
release; NumPy >=2.1.3 is required at runtime. Note that building for a
free-threaded interpreter requires a recent pre-release or nightly for Cython
3.1.0.
Support for free-threaded Python does not mean that SciPy is fully thread-safe. Please see Thread Safety in SciPy for more details.
If you are interested in free-threaded Python, for example because you have a
multiprocessing-based workflow that you are interested in running with Python
threads, we encourage testing and experimentation. If you run into problems
that you suspect are because of SciPy, please open an issue, checking first if
the bug also occurs in the “regular” non-free-threaded CPython 3.13 build.
Many threading bugs can also occur in code that releases the GIL; disabling
the GIL only makes it easier to hit threading bugs.
Array API Standard Support#
Experimental support for array libraries other than NumPy has been added to
existing sub-packages in recent versions of SciPy. Please consider testing
these features by setting an environment variable SCIPY_ARRAY_API=1 and
providing PyTorch, JAX, ndonnx, or CuPy arrays as array arguments. Features
with support added for SciPy 1.15.0 include:
- All functions in - scipy.differentiate(new sub-package)
- All functions in - scipy.optimize.elementwise(new namespace)
- scipy.optimize.rosen,- scipy.optimize.rosen_der, and- scipy.optimize.rosen_hess
- scipy.integrate.tanhsinh(newly public function)
- scipy.integrate.cubature(new function)
- scipy.integrate.nsum(new function)
- scipy.special.chdtr,- scipy.special.betainc, and- scipy.special.betaincc
- scipy.stats.zmap,- scipy.stats.zscore, and- scipy.stats.gzscore
- scipy.stats.tmean,- scipy.stats.tvar,- scipy.stats.tstd,- scipy.stats.tsem,- scipy.stats.tmin, and- scipy.stats.tmax
- scipy.ndimagefunctions will now delegate to- cupyx.scipy.ndimage, and for other backends will transit via NumPy arrays on the host.
Deprecated features and future changes#
- Functions - scipy.linalg.interpolative.randand- scipy.linalg.interpolative.seedhave been deprecated and will be removed in SciPy- 1.17.0.
- Complex inputs to - scipy.spatial.distance.cosineand- scipy.spatial.distance.correlationhave been deprecated and will raise an error in SciPy- 1.17.0.
- scipy.spatial.distance.kulczynski1and- scipy.spatial.distance.sokalmichenerwere deprecated and will be removed in SciPy- 1.17.0.
- scipy.stats.find_repeatsis deprecated and will be removed in SciPy- 1.17.0. Please use- numpy.unique/- numpy.unique_countsinstead.
- scipy.linalg.kronis deprecated in favour of- numpy.kron.
- Using object arrays and longdouble arrays in - scipy.signalconvolution/correlation functions (- scipy.signal.correlate,- scipy.signal.convolveand- scipy.signal.choose_conv_method) and filtering functions (- scipy.signal.lfilter,- scipy.signal.sosfilt) has been deprecated and will be removed in SciPy- 1.17.0.
- scipy.stats.linregresshas deprecated one-argument use; the two variables must be specified as separate arguments.
- scipy.stats.trapzis deprecated in favor of- scipy.stats.trapezoid.
- scipy.special.lpnis deprecated in favor of- scipy.special.legendre_p_all.
- scipy.special.lpmnand- scipy.special.clpmnare deprecated in favor of- scipy.special.assoc_legendre_p_all.
- scipy.special.sph_harmhas been deprecated in favor of- scipy.special.sph_harm_y.
- Multi-dimensional - rand- carrays passed to- scipy.linalg.toeplitz,- scipy.linalg.matmul_toeplitz, or- scipy.linalg.solve_toeplitzwill be treated as batches of 1-D coefficients beginning in SciPy- 1.17.0.
- The - random_stateand- permutationsarguments of- scipy.stats.ttest_indare deprecated. Use- methodto perform a permutation test, instead.
Expired Deprecations#
- The wavelet functions in - scipy.signalhave been removed. This includes- daub,- qmf,- cascade,- morlet,- morlet2,- ricker, and- cwt. Users should use- pywaveletsinstead.
- scipy.signal.cmplx_sorthas been removed.
- scipy.integrate.quadratureand- scipy.integrate.romberghave been removed in favour of- scipy.integrate.quad.
- scipy.stats.rvs_ratio_uniformshas been removed in favor of- scipy.stats.sampling.RatioUniforms.
- scipy.special.factorialnow raises an error for non-integer scalars when- exact=True.
- scipy.integrate.cumulative_trapezoidnow raises an error for values of- initialother than- 0and- None.
- Complex dtypes now raise an error in - scipy.interpolate.Akima1DInterpolatorand- scipy.interpolate.PchipInterpolator
- special.btdtrand- special.btdtrihave been removed.
- The default of the - exact=kwarg in- special.factorialkhas changed from- Trueto- False.
- All functions in the - scipy.miscsubmodule have been removed.
Backwards incompatible changes#
- interpolate.BSpline.integrateoutput is now always a numpy array. Previously, for 1D splines the output was a python float or a 0D array depending on the value of the- extrapolateargument.
- scipy.stats.wilcoxonnow respects the- methodargument provided by the user. Previously, even if- method='exact'was specified, the function would resort to- method='approx'in some cases.
- scipy.integrate.AccuracyWarninghas been removed as the functions the warning was emitted from (- scipy.integrate.quadratureand- scipy.integrate.romberg) have been removed.
Other changes#
- A separate accompanying type stubs package, - scipy-stubs, will be made available with the- 1.15.0release. Installation instructions are available.
- scipy.stats.bootstrapnow emits a- FutureWarningif the shapes of the input arrays do not agree. Broadcast the arrays to the same batch shape (i.e. for all dimensions except those specified by the- axisargument) to avoid the warning. Broadcasting will be performed automatically in the future.
- SciPy endorsed SPEC-7, which proposes a - rngargument to control pseudorandom number generation (PRNG) in a standard way, replacing legacy arguments like- seedand- random_sate. In many cases, use of- rngwill change the behavior of the function unless the argument is already an instance of- numpy.random.Generator.- Effective in SciPy - 1.15.0:- The - rngargument has been added to the following functions:- scipy.cluster.vq.kmeans,- scipy.cluster.vq.kmeans2,- scipy.interpolate.BarycentricInterpolator,- scipy.interpolate.barycentric_interpolate,- scipy.linalg.clarkson_woodruff_transform,- scipy.optimize.basinhopping,- scipy.optimize.differential_evolution,- scipy.optimize.dual_annealing,- scipy.optimize.check_grad,- scipy.optimize.quadratic_assignment,- scipy.sparse.random,- scipy.sparse.random_array,- scipy.sparse.rand,- scipy.sparse.linalg.svds,- scipy.spatial.transform.Rotation.random,- scipy.spatial.distance.directed_hausdorff,- scipy.stats.goodness_of_fit,- scipy.stats.BootstrapMethod,- scipy.stats.PermutationMethod,- scipy.stats.bootstrap,- scipy.stats.permutation_test,- scipy.stats.dunnett, all- scipy.stats.qmcclasses that consume random numbers, and- scipy.stats.sobol_indices.
- When passed by keyword, the - rngargument will follow the SPEC 7 standard behavior: the argument will be normalized with- np.random.default_rngbefore being used.
- When passed by position or legacy keyword, the behavior of the argument will remain unchanged (for now). 
 
- It is planned that in - 1.17.0the legacy argument will start emitting warnings, and that in- 1.19.0the default behavior will change.
- In all cases, users can avoid future disruption by proactively passing an instance of - np.random.Generatorby keyword- rng. For details, see SPEC-7.
 
- The SciPy build no longer adds - -std=legacyfor Fortran code, except when using Gfortran. This avoids problems with the new Flang and AMD Fortran compilers. It may make new build warnings appear for other compilers - if so, please file an issue.
- scipy.signal.sosfreqzhas been renamed to- scipy.signal.freqz_sos. New code should use the new name. The old name is maintained as an alias for backwards compatibility.
- Testing thread-safety improvements related to Python - 3.13thave been made in:- scipy.special,- scipy.spatial,- scipy.sparse,- scipy.interpolate.
Issues closed for 1.15.0#
- #2011: DEP: spatial: ‘sokalmichener’ and ‘rogerstanimoto’ distances… 
- #2035: ENH: Add methods to compute derivatives (Trac #1510) 
- #2116: Cholesky decomposition - are elements in the ‘other’ triangle… 
- #2162: MAINT: signal: - lombscargleis unclear about normalisation…
- #2509: distributions cdf, sf evaluation in the wrong tail 
- #4096: DOC: special: Clarify Mathieu function documentation 
- #4275: BUG: linalg.interpolative: svd integer overflow 
- #4517: MAINT: special.hankel2: - (0, 0)delivers (nan+nan*j) instead…
- #4538: alternative parametrizations of univariate distributions 
- #4708: ENH: linalg.funm: a possible speed-up 
- #4952: DOC: stats: improvement suggestions for tutorial 
- #5818: Clarify definition of preconditioner for sparse linear system… 
- #6528: ENH: stats: Add Normal-inverse-gamma distribution 
- #7099: ENH: - stats.fisher_exact: support tables larger than 2x2
- #7242: ENH: implement at least one good robust scalar root-finding algorithm… 
- #8053: Random variate distribution random_state set after init does… 
- #8307: scipy.sparse.linalg.eigs gives incorrect largest magnitude eigenvalue 
- #8344: BUG: special.nctdtr: incorrect results 
- #8362: a function to convert a matrix into diagonal ordered form (ab)… 
- #8787: BUG: signal.lombscargle: raises - ZeroDivisionError
- #8888: MAINT: special.gegenbauer: case of - alpha = 0not handled
- #9249: BUG: linalg: - test_interpolative::TestInterpolativeDecomposition::test_id…
- #9321: Easy access to scipy.stat.<distributionName> frozen distribution… 
- #9509: BUG: special: - test_kolmogorovfails on 32-bit platforms
- #10106: Slow random variate generation in scipy.stats 
- #10328: DOC: stats: documentation is not distribution-specific 
- #10364: Add Double Pareto-Lognormal Distribution 
- #10374: ENH: make ARPACK-NG deterministic 
- #11341: MAINT: constants: disparate electric permittivity constants 
- #11465: Numerical stability of distributions: Add log_p as argument to… 
- #11649: trust-constr error when attempting to keep bound constrained… 
- #12019: scipy.linalg.orthogonal_procrustes 
- #12282: API: stats.chisquare: must observed and expected frequencies… 
- #12367: Allow whitespace alignment of tables of numbers? 
- #12593: BUG: linalg: - estimate_rankis quite unreliable
- #12651: BUG: cluster: - fclusterassigning all points to a single cluster…
- #12662: Complex numpy exponentiation, nan, and/or inf causes segfault… 
- #12895: BUG: - special.riccati_yn: Definition missing minus sign
- #13019: TST, MAINT: test_maxiter_worsening on Python 3.9 + Linux ARM64 
- #13137: BUG: linalg.schur: bug sorting complex eigenvalues in real form 
- #13504: TST: stats: test distribution - supportmethod behavior for…
- #13643: BUG: signal.sepfir2d: fails with complex input on Windows 
- #13986: Distributions cannot be freed by garbage collector due to self-references 
- #14304: Jaccard distance greater than 1 if elements are strings 
- #14467: DOC: constants: explain - 0.0uncertainty
- #14582: BUG: - special.spherical_jn: Negative arguments lead to nans
- #14788: DOC: - linalg.hankel: clarify that first entry of- ris…
- #14895: ENH: All statistical distributions in scipy.stats should have… 
- #14945: BUG: Overflows/NaNs cause segfault in integrate.quad on certain… 
- #15012: ENH: - linalg.cholesky: document that user is responsible…
- #15016: BUG: linalg.schur: sorting by imaginary part does not work for… 
- #15021: scipy.linalg.qr with pivoting=True should return P as (N,N) permutation… 
- #15533: BUG: test failure in - test_x0_equals_Mbwith- bicgstab
- #15582: BUG: - special.ncfdtr(dfn, dfd, nc, f)and- stats.ncf.cdf(x,…
- #15620: BUG: signal.resample_poly returns an array consisting only of… 
- #15888: BUG: linprog, with highs is killed by the OOM killer when called… 
- #15896: Compiled code coverage with - --gcovdoesn’t work with Meson
- #15915: ENH: optimize: object-oriented interface to HiGHS 
- #16494: MAINT: Speed up some slow tests 
- #16531: DOC: Warnings/error in docstring examples. 
- #16700: BUG: segfault on i386 in special - test_kolmogorov.pyTestSmirnovp
- #17059: ENH: Robust and fast numerical derivative for error propagation 
- #17075: Test failures with Intel compilers 
- #17136: BUG: logm sometimes raises ZeroDivisionError for matrices with… 
- #17307: BUG: stats: frozen distribution domain error produced too late 
- #17344: ENH: - scipy.linalg.circulantshould allow batching
- #17385: BUG: - TestOnenormest.test_onenormest_table_6_t_1is failing…
- #17404: DOC: comparison of optimizers in optimization guide 
- #17494: MAINT: HiGHS build flag cleanup 
- #17571: ENH: Add units to scipy.constants description 
- #17905: ENH: Add softplus implementation 
- #18014: Potential use-after-free bug in - fcn_callback(Static Analyzer…
- #18250: BUG: - complex256type created by entering- complex128into…
- #18295: BUG: special: Loss of precision in - logsumexp
- #18367: RFC: Get rid of linalg.interpolative Fortran code 
- #18409: ENH: extensions of - factorial{,2,k}for complex domains, recurrences,…
- #18445: ENH: add a callback feature to minimize_scalar and root_scalar 
- #18879: BUG: - integrate.quad_vec: Fatal error when using- workers…
- #18880: TST: - test_expm_multiply_dtypefailure on aarch64 (flaky test)
- #18882: BUG: minimize does not satisfy nonlinear constraint even if keep_feasible=True 
- #18907: BUG: - presolveoption in- milpcausing feasible problem…
- #18909: BUG: Cython3 linalg import order bug 
- #18945: BUG: circe-ci SVD-LOBPCG benchmarks do not check accuracy so… 
- #19042: DOC: sparse: BSR does not support slicing, - __getitem__not…
- #19071: BUG: scipy.special.gammasgn implementation & docs inconsistent… 
- #19207: BUG: sparse.linalg: - LinearOperatordtype determination broken
- #19223: BUG: io: scipy.io.loadmat error message recommend use of function… 
- #19355: MAINT: lobpcg: add unit tests for accuracy matching benchmark… 
- #19405: ENH: sparse.csr_array: keep axis functionality in - getnnz()
- #19446: BUG: In test_b_orthonormalize, cannot parameterize Vdtype, Bdtype,… 
- #19524: BUG: deepcopy on stats.rvs breaks seed / random generation. 
- #19634: ENH: Dedicated Function for Envelope Extraction 
- #19759: BUG: Bad result for stats.randint.pmf (edge case) 
- #19791: DOC: linalg.schur: unclear signature for - sortcallable when…
- #19907: DEP: extend deprecation of private namespaces also to fortran-generated… 
- #20026: ENH: ndimage: 1D rank filter speed up 
- #20048: BUG: - stats.rv_discrete.ppf: infinite loop in default implementation
- #20077: DEP: linalg: deprecate - kron
- #20155: DOC: - optimize.curve_fit: Inconsistent naming convention…
- #20196: MAINT: Audit usage of cython memoryviews, add - constto allow…
- #20207: ENH: sparse: Validate dtype on sparse array/matrix creation 
- #20239: DOC: Sparse arrays: todense() does not return numpy.matrix 
- #20240: ENH: multiple small improvements to scipy.stats.circmean 
- #20288: ENH: Poisson disk sampling for arbitrary bounds 
- #20370: DOC: ndimage.convolve: clarify origin parameter description 
- #20389: BUG: - sparse.hstackdoes not respect- dtypeof- {indptr,indices}…
- #20452: BUG:linalg:interpolative: Crashing if k is requested too high… 
- #20552: DOC/DEV/MAINT: review distributing section of core-dev guide 
- #20574: MAINT, BENCH: would be good to be able to run benchmarks with… 
- #20602: MAINT/STY: fix UP031, UP032 linter errors 
- #20609: BUG:linalg:interpolative: Inputs are not mapped to compatible… 
- #20635: DOC: Titles of long function names in API Reference truncated… 
- #20638: DOC: Specify cut-off frequency in firwin as half-ampltude vs… 
- #20693: BUG: stats.noncentral_t: incorrect pdf values 
- #20710: ENH: - special.rel_entr: avoid premature overflow
- #20728: BUG: sparse.linalg: Segfault in - arpackwith- ifx
- #20733: DOC: stats.mannwhitneyu: reversed options for - alternative…
- #20739: DOC/DEV: update commit message guidance 
- #20740: BLD/DEV: special: build warnings 
- #20761: ENH: stats.cauchy: improve cdf and quantile accuracy in tail 
- #20763: BUG: sparse.csgraph, array types: some functions should expect… 
- #20813: BUG: - optimize.nnlssometimes fails when input- Ais a…
- #20821: BUG: - stats.levy_stable.rvs: “S0”-parameterization ignored
- #20844: DOC: update testing docs for alternative backends 
- #20879: MAINT: clean up - sparse._sputils.getdtype
- #20893: DOC/DEV: Developer docs should mention Accelerate support 
- #20904: BUG: sparse.csgraph.dijkstra errors on inputs with int64 or no… 
- #20910: BUG: positional argument - DeprecationWarningmessage is overly…
- #20931: MAINT: Premature setting of attributes in - HBInfoin- scipy.io._harwell_boei…
- #20957: TST, MAINT: array API GPU test failures 
- #20963: TST: - special.tests.test_support_alternative_backends: failure…
- #20984: BUG: scipy.optimize.nnls 1.11.4 version has better performance… 
- #20991: BUG: - special.pro_rad1returns ‘nan’ for any combination of…
- #20994: BUG: - spatial.distance.cosinewith- complexarguments raises…
- #21009: BUG: Floating point exception when passing the invalid argument… 
- #21010: BUG: Segmentation fault when passing invalid arguments to some… 
- #21011: BUG: Double free or corruption when passing invalid arguments… 
- #21016: BUG: Indexing broken for sparse arrays 
- #21030: DOC, DEV: release notes - gh_liststouchups
- #21044: RFC: quo vadis, - xp_assert_*infrastructure?
- #21045: BUG: - scipy/optimize/tests/test_hessian_update_strategy.py::TestHessianUpdateSt…
- #21057: BUG: loong64 architecture fails TestQuad.test_complex 
- #21059: TST, MAINT: - TestHyp2f1.test_region5tol issue with gcc 14.1.0
- #21078: BUG: linalg.expm: slower by a factor of ~4 in - scipy>1.13
- #21088: DOC: - optimize.InverseJacobian: document or deprecate?
- #21099: DOC: incorrect section ordering for classes 
- #21106: BUG: - stats.combine_pvaluesgives result with wrong dimensionality…
- #21140: BUG: optimize.nnls: re-implementation not robust 
- #21144: BUG: sparse: Two new XSLOW test failures 
- #21145: BUG: dev.py build –debug doesn’t produce a debug build 
- #21148: BUG: scipy.optimize.root_scalar pass in an array instead of float 
- #21152: BUG: - stats.bartlett: returned statistic can be negative…
- #21158: RFC: spatial: review calculation formula for Jaccard distance… 
- #21166: ENH: - linalg.null_space: expose- lapack_driverand- check_finite
- #21174: BUG: special tests failing on main when CuPy is installed with… 
- #21178: DOC: - optimize.root_scalar: arguments incorrectly marked…
- #21181: MAINT: spatial: weighted - chebyshevdistance revisited
- #21187: BUG: spatial.distance: - kulczynski1returns similarity rather…
- #21192: BUG: - stats.differential_entropy: incorrect results with…
- #21193: BUG: optimize: Hessian update strategy fails on nested minimize… 
- #21208: RFC: Should mutable default arguments be forbidden by the linter? 
- #21212: DOC: doc build failing in CI 
- #21217: BUG: SciPy won’t pick the correct BLAS when running the test… 
- #21227: BUG: stats/fft/differentiate/optimize: test suite failures with… 
- #21239: ENH: Add a Python level lapack wrapper for DSYTRS 
- #21241: DOC: add sphinx-copybutton to the documentation 
- #21248: BUG: ValueError: - x0violates bound constraints in minimize
- #21256: BUG: io.loadmat: failure with large file due to address position… 
- #21266: DOC: CosineMixture function in go_benchmark_functions is wrong 
- #21275: CI: wheel builds for Python 3.13 are failing 
- #21286: BUG: Delaunay/qhull segfault on self-pass 
- #21292: TST: ndimage: GPU test failures 
- #21296: DOC: optimize.root: fix docs for - inner_\*parameters
- #21300: BUG: integrate.simpson: - xparam is keyword only
- #21311: BUG: special.chdtr: torch failures 
- #21351: ENH: spatial: Rotation: add - splitto break apart object with…
- #21357: DOC: signal.hilbert: Terminology issue 
- #21366: DOC: - stats.f_oneway: use attributes instead of tuple unpacking…
- #21369: BUG: stats.tukeylambda: - support(lam)is incorrect when- lam…
- #21379: BUG: spatial: Voronoi diagram missing ridges 
- #21383: BUG: - stats.sobol_indices: in-place modification of- func…
- #21394: DEV: jupytext notebooks break caching of doc builds 
- #21405: MAINT: a few potential minor cleanups 
- #21421: DOC/DEV: direct to building guide from quickstart guide 
- #21439: DOC/DEV: replace mambaforge with miniforge 
- #21447: DEV/MAINT: Allow unicode characters - ±and- ∞in source…
- #21452: DOC: signal.firls: reference unavailable 
- #21453: ENH: Add support for Xi Correlation in scipy 
- #21460: MAINT, DOC: make dist pipefail issue 
- #21461: BUG: - special.pro_rad2: incorrect results since translation…
- #21486: MAINT: ndimage test failures with CuPy 
- #21504: DOC: add note about - args/- kwargsto description of callable…
- #21507: BUG: fft.fft: real-valued array-api-strict inputs fail 
- #21510: DOC: signal.freqz: problem with - fs
- #21513: TST, MAINT: test_differentiate torch GPU failures 
- #21519: BUG: optimize.minimize: - method='Powell'gives array not scalar
- #21534: TST, MAINT: - test_matrix_inputfailing
- #21556: DOC: Lack of table of contents in cluster 
- #21566: DOC: stats.pearsonr: error in notes of API reference 
- #21571: DOC: interpolate.interp1d: clarify status and alternatives 
- #21576: DOC: building: specify - .ps1for windows example
- #21582: BUG: Squeezed output from batched - scipy.linalg.det
- #21583: BUG: optimize: test failures in scikit-learn following LBFGS… 
- #21584: BUG: linalg.expm: nightly inaccurate for - complex64
- #21596: MAINT: Update constants to CODATA 2022 recommendation 
- #21610: BUG: special.logsumexp: imaginary component exceeds - (-pi, pi]
- #21615: BUG: Invalid treatment of ellipsis in indexing of sparse matrices 
- #21627: DOC: optimize.root: outdated naming of fprime in - method=’hybr’
- #21630: BUG: optimize.nnls: precision problems 
- #21641: BUG: io.mmwrite: auto-appending of - .mtxextension
- #21660: BLD, MAINT: linker warnings with newer AppleClang/ld 
- #21661: BUG: fft.fht: should set - u.imag[-1] = 0only when- nis…
- #21670: BUG: ndimage: - _normalize_sequencefails on 0d array
- #21671: BUG: signal.ShortTimeFFT: inverse tranform error with multichannel… 
- #21675: BUG: Errors at compiling through pip for python 3.13 with option… 
- #21677: BLD: build warnings from quadpack 
- #21696: MAINT: lombscargle numerical backward-compat 
- #21704: DOC: stats.bootstrap: clarify meaning of - pairedargument
- #21709: BUG: logsumexp returning incorrect results in Scipy 1.15.0.dev0 
- #21724: MAINT: signal deprecation cleanups 
- #21733: BUG: cluster: incorrect type of default value of - distin…
- #21738: BUG: “ERROR: Dependency “OpenBLAS” not found” in macOS tests… 
- #21745: TST, MAINT: array API GPU test fails in - test_cubature.py
- #21747: BUG: boolean indexing of sparse arrays broken on - main
- #21758: BENCH/DEV: Add - conda-buildto- environment.yml
- #21759: DEP: remove - special.btdtrand- special.btdtri
- #21760: BUG: failure in - scipy/optimize/tests/test_minimize_constrained.py::test_gh1164…
- #21769: BENCH: Warnings from - linprog
- #21772: BUG: - optimize.curve_fitwith- nan_policy="omit"fails…
- #21775: BUG: sparse matrix-vector multiplication fails with flattened… 
- #21788: BUG: stats: - qmc.Sobolraises- ValueErrorin multi-threading
- #21791: BUG: sparse: - setdiagbroken when not entire diagonal belongs…
- #21807: BUG: signal: Confusing error when giving an invalid mode to - correlation_lags
- #21810: RFC: special: Behavior of - gammafunction and related functions…
- #21814: TST: interpolate: tests on - griddataare not parametrized
- #21817: QUERY: - optimize.isotonic_regression: cannot replicate results…
- #21820: BUG: stats: New XSLOW failures in - test_fit.py::TestFit
- #21829: BLD: accelerate detection with GNU toolchain on ARM mac 
- #21830: BLD: threads.h with MacOS 14.x ARM + gcc 14.2.0 
- #21833: SPEC 7 Transition Tracker 
- #21837: BUG: linalg.svd: Segmentation Fault, Integer overflow in LAPACK… 
- #21838: ENH: sparse: revisit default index dtype selection in sparray… 
- #21855: TST, MAINT: torch + GPU failures for test_create_diagonal 
- #21862: BUG: large number of fails with macOS 15.1 using Accelerate 
- #21885: BUG: - interpolate/tests/test_interpnd.py::TestLinearNDInterpolation::test_threa…
- #21900: BUG: stats: New XSLOW test failure in test_sampling.py 
- #21908: BUG: integrate.trapezoid: broadcasting failure after #21524 
- #21927: TST: failures in - test_riemann_zeta_complexon windows in…
- #21934: BUG: Intel oneAPI tests / py3.12, dev.py: - meson.build:1:0:…
- #21940: DOC, REL: 1.15.0 author mappings 
- #21946: BUG: several failing tests in - interpolateon macOS15
- #21949: BUG: stats: XSLOW test failure in - scipy.stats.tests.test_fit::TestFit
- #21952: DOC: - stats.goodness_of_fit: improve examples
- #21957: CI: failure for “Oldest GCC …” Linux CI job (related to pre-release… 
- #21963: DOC: Deprecation warning in - sphinxwhen used with Python…
- #21988: refguide_check currently failing 
- #22005: TST: - TestJacobian::test_attrstol bump?
- #22022: TST: tolerance violation in - test_x0_working[tfqmr]on windows
- #22029: - Test_SVDS_LOBPCG.test_svd_rng_3test failure in wheel build…
- #22031: BUG: mypy failure in main 
- #22077: DOC, REL: a few release notes/process issues 
- #22094: API: unannounced breaking change: - scipy.integrate.AccuracyWarning…
- #22095: DOC: sparse: - sparse.eye_arraydoes not accept- tuple[int,…
- #22097: DEP: - interpolate.interpnd.GradientEstimationWarningstill…
- #22112: BUG/DOC: sparse: ND COO unexpected behaviour 1.15.0rc1 
- #22123: DOC: stats: random variable transition guide launches wrong notebook 
- #22128: BUG/DOC: it’s not clear how to use - differentiate.jacobian…
- #22137: BUG: - stats._distribution_infrastructure._Domain.symbolsclass…
- #22143: BUG: Fail to call - BSplineafter unpickling with- mmap_mode="r"
- #22146: BUG: - stats.ContinuousDistribution.llf: should not be public
- #22204: BUG: signal.ShortTimeFFT: - istftwith- mfft > len(win)…
Pull requests for 1.15.0#
- #11345: MAINT: constants: revise way ‘exact’ values are recomputed 
- #12071: ENH: linalg: update - _procrustes.pyto handle complex matrices…
- #12824: ENH: - linalg.solve: detect and exploit matrix structure
- #15993: TST: sparse.linalg: Add iterative step test of solvers with LU… 
- #16088: DOC: signal: Make - _filter_design.pyplot labels consistent
- #16090: ENH: vectorize companion matrix function 
- #16467: ENH: sparse: add nonzero functionality to - min, max, argmin,…
- #16877: MAINT: remove un-necessary all-true array. 
- #17318: ENH: signal: Add functionality of Complex Chirp waveform 
- #18605: ENH: special: add - softplus
- #18979: DOC: Add units to scipy.constants description 
- #19058: DOC:special/signal: Add examples for - berp_zerosand- band_stop_obj
- #19145: ENH: stats: add Landau distribution 
- #19209: BUG: sparse.linalg: fix - LinearOperatordtype determination
- #19255: ENH: Use - highspyin- linprog
- #19361: BENCH: sparse.linalg: check accuracy in SVD-LOBPCG benchmarks 
- #19475: ENH: stats.lmoment: add function to calculate sample L-moments 
- #19764: MAINT: stats: fix - axis_nan_policydecorator non-broadcastable…
- #19970: ENH: interpolate: replicate - splrepand- splprepin Python
- #19988: MAINT: unify factorial implementations 
- #19989: MAINT: special: factorial clean-ups 
- #20040: DOC: optimize: add comparison of optimizers to guide 
- #20058: DOC:signal: Suggest remedies for slow speed in - resamplewhen…
- #20097: ENH: signal: Compute envelope of a real- or complex-valued signal 
- #20194: BUG: linalg.cossin: fix for nonsymmetric cases 
- #20242: DOC: sparse: Correct - todensedocumentation
- #20303: DOC: stats: Convert sampling tutorial to MyST-md 
- #20408: DOC: ndimage.convolve: modify - originparam description
- #20496: DOC: stats: added - Raisessection to a few functions
- #20514: TST/BUG: linalg.expm: empty array support 
- #20517: DOC: sparse.linalg: updated preconditioner doc for iterative… 
- #20519: MAINT: signal: further refactor spline filters 
- #20520: BUG: linalg.polar: empty array support 
- #20539: ENH: special: Overhaul of Legendre functions 
- #20543: ENH: ndimage: log(n) implementation for 1D rank filter 
- #20558: ENH: linalg: Cythonize - id_distFORTRAN code
- #20589: TST: optimize.linprog/milp: add tests for various bug reports 
- #20671: ENH: interpolate: fix concurrency issues throughout 
- #20695: MAINT: special.ndtr: adjust implementation to more closely match… 
- #20701: TST/MAINT: special: test with CuPy, make some CUDA fixes 
- #20708: ENH: - differentiate.hessian: use- jacobianto compute…
- #20713: ENH: optimize.HessianUpdateStrategy: add - __matmul__
- #20719: MAINT: sparse: fix - __init__func sig to allow- maxprint…
- #20743: ENH: - stats._xp_mean, an array API compatible- meanwith…
- #20754: ENH: sparse: add dtype validation in - __init__and- astype
- #20759: MAINT: sparse.linalg: adjust - norm,- eigs, and- lsqr…
- #20766: MAINT: stats: minor numerical improvements to circular statistics 
- #20767: ENH: stats.qmc: add bounds parameters to PoissonDisk 
- #20771: ENH: - stats.ttest_ind: add array API support
- #20773: BUG: sparse.csgraph, array types: support non-zero - fill_value...
- #20785: ENH: - stats.nct.pdf: increase range in left tail using boost
- #20793: ENH: stats: end-to-end array-API support for NHSTs with beta… 
- #20794: ENH: stats: add array API support for - directional_stats
- #20800: ENH: optimize.elementwise: vectorized scalar optimization and… 
- #20809: ENH: ndimage: extend ndimage filter axes support to correlate… 
- #20811: ENH: ndimage: extend filter axes support to remaining filters… 
- #20816: ENH: - special.rel_entr: Avoid overflow before computing…
- #20822: CI: Add Linux workflow to test on free-threaded Python builds 
- #20827: REL: set version to 1.15.0.dev0 
- #20829: MAINT: special: fix typo in - four_gammasused by- hyp2f1
- #20830: DOC: - optimize.differential_evolution: change convergence…
- #20833: BUG: interpolate: make BSpline.integrate always return an array 
- #20834: ENH: integrate.nsum: elementwise evaluation of finite or infinite… 
- #20837: MAINT: linalg: add - constto Cython function signatures
- #20843: DOC/DEV: add docs for enabling interactive examples 
- #20846: DOC: Wrap long titles in docs pages 
- #20849: DOC/DEV: mention - -boption in contributor guide on testing
- #20855: TST: add additional margin to - fail_slows
- #20856: TYP: - _lib.doccer: add type annotations
- #20857: ENH: sparse: add axis parameter to - count_nonzeromethod
- #20859: DEP: signal: remove - cmplx_sort
- #20862: MAINT: special: Add kokkos - mdspan
- #20864: DEP: integrate: remove quadrature and romberg 
- #20865: DEP: signal: remove wavelet functions 
- #20866: DEP: stats: remove - rvs_ratio_uniforms
- #20867: DEP: - integrate.cumulative_trapezoid: raise- ValueError…
- #20868: DEP: interpolate: deprecate complex dtypes in - {Akima1D, Pchip}Interpolator
- #20869: DEP: special.factorial: raise error for non-integer scalars and… 
- #20872: MAINT: interpolate: add - constto Cython function signatures
- #20873: MAINT: sparse: add - constto Cython function signatures
- #20874: MAINT: spatial: add - constto Cython function signatures
- #20875: BLD/DEV: special: Fix warning due to mixed initializers 
- #20876: DOC: use - intersphinx_registryfor easier intersphinx mapping…
- #20882: CI: Add workflow to build and upload free-threaded wheels 
- #20883: ENH: stats: rewrite - ttest_relin terms of- ttest_1samp
- #20884: ENH: stats: end-to-end array-API support for NHSTs with Student’s… 
- #20885: BUG: fix incorrect intersphinx-registry entry in environment.yml 
- #20886: CI/DEV: fix Node.js 16 warnings by bumping actions 
- #20887: MAINT: signal: add - constto Cython function signatures
- #20889: MAINT: sparse: Align matmul tests in - test_base.pyfor spmatrix…
- #20891: MAINT: stats: add - constto Cython function signatures
- #20895: TST: sparse: Finish allowing - test_base.pyto easily switch…
- #20897: DOC: Fix bug with parallel doc build 
- #20898: MAINT: sparse: clean up - _sputils.getdtypedocstring
- #20900: ENH: stats: add array API support to combine_pvalues 
- #20906: DOC: linalg.schur: update doc for the argument - sort
- #20907: CI: Make sure nightly free-threaded wheels are tested with GIL… 
- #20908: DOC: signal.dbode: improve docstring 
- #20912: DOC: Add more information about how to use Accelerate 
- #20913: BUG: sparse.csgraph.dijkstra: fix dtype and shape bugs 
- #20915: DOC: - integrate.quad_vec: Add example when using- workers
- #20916: DOC: Mention that - sparse.bsr_arraydoes not support slicing.
- #20922: BUG: stats.mstats: fix - mstats.{ttest_rel, ttest_1samp}when…
- #20924: BUG: - _lib: ensure reasonable length- _deprecate_positional_args…
- #20926: DOC: sparse: Add migration guide for converting code from spmatrix… 
- #20928: ENH: - optimize._differentiate: add array API support
- #20932: MAINT: io: fix premature setting of attributes in - HBInfo
- #20934: TST: - stats.combine_pvalues: parameterise tests and update…
- #20941: DOC/MAINT: single to double backticks to remove improper linking 
- #20942: CI: Use Cython nightly wheel on free-threaded CI 
- #20944: DOC: update distributing section 
- #20946: ENH: stats.gmean: add array API support 
- #20951: CI: Add MacOS to free-threaded wheel release CI 
- #20954: MAINT: stats.hmean/pmean: simplify prior to array API conversion 
- #20955: DOC: Single to double backticks for non-targets 
- #20962: DOC/MAINT: stats.gmean/gstd/hmean/pmean: document/treat invalid… 
- #20965: ENH: - stats.tmean: add array API support
- #20968: MAINT: fix some misspellings 
- #20969: DOC: linalg: add # may vary to a linalg.schur example 
- #20971: TST: special: use - standard_normalto generate arguments in…
- #20974: ENH: - stats.combine_pvalues: add native axis support
- #20975: DOC: single to double backticks 
- #20976: BUG: Update scipy-optimise directive in view of new default role 
- #20977: DOC: More single to double backtick 
- #20980: CI, MAINT: - test_plot_ivNumPy 2 shim
- #20985: BLD: Add build only CI workflow for Windows using MSVC + ifx… 
- #20986: DEV: - gh_lists: single -> double backticks
- #20987: DOC/DEV: update commit message guidance 
- #20989: ENH: - stats.chi2_contingency: add- methodparameter
- #20995: CI: test cp313-dev 
- #20998: MAINT: signal: fix code comment typo 
- #21003: MAINT: odr: fix a refcounting issue in - __odrpack.c
- #21004: DOC: stats: Convert - chisquareexample to notebook
- #21005: CI: one invocation for all tests in array API job 
- #21017: MAINT: smoke-docs: add - special/_precomputeto –ignore list,…
- #21018: MAINT: sparse: better error message on - matmulmismatch
- #21021: ENH:MAINT:optimize: Re-rewrite nnls in Cython 
- #21022: BUG: sparse: Fix advanced indexing using both slice and array 
- #21023: DEV: lint: enforce newlines at end of files 
- #21025: API: signal: rename - sosfreqzto- freqz_sos
- #21028: ENH: stats.tmin/tmax: add array API support 
- #21029: MAINT/STY: Fix UP031 AND UP032 linter errors 
- #21032: DOC/DEV: update vendored-code page 
- #21033: DOC: interpolate: discuss linear interpolation with extrapolation 
- #21034: ENH: - stats.xp_var: array-API compatible variance with- scipy.stats…
- #21035: ENH: stats.hmean/pmean: add array API support 
- #21036: ENH: stats.tvar/tstd/tsem: add array API support 
- #21037: MAINT: forward port 1.14.0 relnotes 
- #21041: ENH: - differentiate: add sub-package for array-API compatible…
- #21042: DOC: stats: Move biomedical examples to notebooks 
- #21047: TST: optimize: fix exception test on PyPy3.10 
- #21050: ENH: - stats.Normal: add new continuous distribution infrastructure…
- #21051: BUG: interpolate.LinearNDInterpolator: fix for precomputed triangulation 
- #21063: MAINT: gcc-14 - test_region5tol bump
- #21068: ENH: - stats.zmap/- zscore/- gzscore: add array API…
- #21076: ENH: - stats.differential_entropy: add array API support
- #21081: DOC: Add default options for COBYQA 
- #21083: MAINT: simplify - _integrate_pdf
- #21085: DEP: spatial: deprecate complex input to - cosineand- correlation
- #21086: DOC: spatial: Fix typo in - seuclideandocstring
- #21087: DOC: optimize: remove inadvertent block quote indentation 
- #21089: ENH: - stats.alexandergovern: vectorize calculation for n-D…
- #21094: DOC: sparse.linalg.gcrotmk: fix backticks and add - maxiter…
- #21096: DOC: sparse.linalg.gcrotmk: add missing backticks 
- #21097: ENH: - stats.boxcox_llf: add array API support
- #21098: DEV: don’t add - sparselabel for submodules
- #21101: DOC: special.ellipj: fix order of parameters in docstring 
- #21103: MAINT: itemsize pybind cleanup 
- #21109: MAINT: - stats.combine_pvalues: fix native- axissupport…
- #21110: ENH:sparse.linalg: Update vendored ARPACK version to 3.9.1 
- #21111: BUG: - ndimage.binary_erosion: avoid divide by zero by capping…
- #21112: DOC: - optimize.differential_evolution: fix interval for…
- #21113: MAINT, DOC: simplify docs warn filter 
- #21115: BENCH: Corrections to benchmarks README and - sparse.Arithmetic…
- #21116: BUG: - optimize.root_scalar: let bracket be passed as a NumPy…
- #21117: TST: interpolate: use - xp_assertinfrastructure
- #21118: DOC: optimize: Add docstring to - InverseJacobian
- #21119: MAINT: remove another mpl test shim 
- #21120: BUG: cluster: Avoid OOB write when distances are NaN in - centroid
- #21121: BUG: cluster: Fix - fcluster- "maxclust"binary search logic
- #21123: DEV/CI: add - gmpy2back to test dependencies
- #21124: MAINT: use - xp_vector_norminstead of- xp.linalg.vector_norm
- #21125: MAINT: remove unused minpack2 fortran code 
- #21127: TST: fix - boxcox_llftest skips
- #21128: TST: special.logsumexp: modernise tests 
- #21129: TST: sparse.linalg: test all dtypes for - lobpcgB-orthonormalization
- #21131: ENH:optimize: Rewrite MINPACK in C 
- #21132: TST: sparse.linalg: simplify dtypes def in - test_expm_multiply.py
- #21133: TST: sparse.csgraph: simplify dtypes def in - test_graph_laplacian.py
- #21141: DOC: Remove outdated comment about macos/musl in Cirrus CI config 
- #21143: MAINT: signal: Don’t redefine - PyArray_MINmacro
- #21146: MAINT: sparse.linalg: - spsolvesimplification
- #21149: ENH: special.logsumexp: add array API standard support 
- #21150: ENH: ndimage: add array API standard support 
- #21151: DOC: interpolate: fix - py:obj reference target not foundwarning
- #21154: DOC: fix documentation about verbose in minimize_trustregion_constr.py 
- #21157: DEP: - stats.find_repeats: deprecate function
- #21162: MAINT: - optimize.root_scalar: ensure user function gets…
- #21163: MAINT: special: Make fixes needed for ellipkinc and ellipeinc… 
- #21167: ENH: interpolate: add AAA algorithm for rational approximation 
- #21168: BLD: remove optional test dependencies from cibuildwheel config 
- #21171: DEV: fix - --debugand add- --releaseto- dev.py build
- #21173: BUG/CI: Compile and run tests with - ifx+- MKLon Linux
- #21176: MAINT: spatial.distance.jaccard: correct numerator calculation 
- #21179: BUG: special: - cupyimport guard
- #21182: MAINT: spatial: improve weighted Chebyshev distance doc and zero… 
- #21185: DOC: optimize: Mark - x1as optional for secant root finding
- #21186: DOC: - array->``array_like`` in a few functions
- #21194: MAINT: - stats.differential_entropy: fix results with integer…
- #21196: DEV: add label glob for - scipy.differentiate
- #21197: ENH: sparse: extend COO arrays to n-dimensions 
- #21199: MAINT: bump pybind11, mark C/C++/Cython extension modules as… 
- #21201: ENH:integrate: Rewrite QUADPACK in C 
- #21203: BUG: optimize: Avoid sharing BFGS HessianUpdateStrategy between… 
- #21204: MAINT: ensure Python.h is included first in __minpack.c 
- #21210: MAINT: special: Make sine and cosine integrals work in CUDA 
- #21211: DEP: signal.{correlate,convolve,lfilter}: deprecate object arrays… 
- #21213: MAINT, DOC: bump jupyterlite-sphinx lower bound 
- #21215: MAINT: - _lib: update- _docscrapefrom upstream
- #21216: ENH: - integrate._tanhsinh: add array API support
- #21220: TST: sparse.linalg.lobpcg: add unit tests for accuracy 
- #21221: BENCH: sparse.linalg: check accuracy properly in LOBPCG benchmarks 
- #21222: BUG: special: - cython_specialmissing dep
- #21223: MAINT: interpolate: remove several fused type uses from - _bspl.pyx
- #21225: MAINT: io: move - _test_fortranunder- tests
- #21230: ENH: - differentiate: support array- initial_step
- #21231: ENH: - optimize.elementwise.find_minimum: add array API support
- #21235: MAINT: interpolate: remove - README
- #21240: ENH: sparse: refactor 2-D COO sparse-dense matrix-matrix multiplication 
- #21242: BUG: sparse: fix two slow tests that fail in numpy 2 inside A.nnz 
- #21243: BENCH: fix - --comparein- python dev.py bench
- #21245: DOC: add sphinx-copybutton 
- #21247: ENH: linalg.nullspace: expose SVD options 
- #21252: DOC: - integrate.solve_bvp: make notation consistent
- #21254: CI: Test icx + icpx + ifx + MKL build of SciPy 
- #21257: MAINT: BUG: fixed issue where optimization method trust-constr… 
- #21259: BUG: interpolate: avoid OOB in the periodic spline constructor 
- #21260: BUG: io.loadmat: fix read of large Matlab 4 arrays 
- #21264: MAINT: utilise - array_api_compatv1.8
- #21265: BUG: fix cstddef include 
- #21267: DOC: add Stack Overflow link to readme file 
- #21268: MAINT/BENCH: optimize: fix - CosineMixturereference
- #21276: MAINT: Fix incorrectly named 1234 Hz fs .wav test file 
- #21277: ENH: signal.lombscargle: update to the generalized Lomb-Scargle… 
- #21278: BLD: bump cibuildwheel closes #21275 
- #21281: MAINT: - test_maxiter_worseningcleanup
- #21282: TST: ndimage: unskip - test_boundary_spline_accuracyfor- torch
- #21284: MAINT: Remove mutable defaults in function definitions, forbid… 
- #21290: MAINT: linalg: run - dos2unixon- cython_lapack_signatures.txt
- #21294: TST: fix GPU failures 
- #21295: DOC: - find_simplexno self
- #21297: MAINT: special: rename C++ library to - xsf
- #21299: DEV: - gh_lists: improve sanitization of backticks
- #21301: ENH: stats: Implement - _logcdfand- _logsffor- rv_continuous
- #21304: TST: Fix bugs in various tests found via linter 
- #21309: MAINT:integrate: Fix an off-by-one error in QUADPACK 
- #21310: MAINT/DOC: clean up - _lib._array_api, update docs
- #21312: MAINT: special: fix Pylance typing nit 
- #21313: BUG: find_simplex shape () segfault 
- #21314: ENH: optimize: Rewrite LBFGSB in C 
- #21316: MAINT: special.chdtr: fix generic chdtr 
- #21318: BUG: special: Fix bug in beta ppf by setting correct Boost policy 
- #21321: BUG: linalg: fix - solve_bandedraising- IndexErrorwhen…
- #21322: BUG: stats: Allow - betaprime._ppfto accept scalars.
- #21326: MAINT: stats: Improve precision of argus.sf. 
- #21328: ENH: linalg: add Python wrapper of - ?gtcon
- #21329: MAINT: interpolate.AAA: improve input validation of - max_terms
- #21330: ENH: integrate: multidimensional integration of array-valued… 
- #21331: ENH: linalg: add Python wrapper of ?trcon 
- #21332: BUG: - stats.levy_stable: fix ignored parameterization
- #21333: DOC:integrate.simpson: Remove reference to removed - evenparam
- #21334: TST: add - xfail_xp_backends
- #21335: BUG/ENH: stats: updates for cauchy. 
- #21336: ENH: linalg: Add - sy/hetrsLAPACK wrappers
- #21339: ENH: - stats.poisson_binom: add Poisson Binomial distribution
- #21342: MAINT: stats: fix test that discrete distribution methods accept… 
- #21344: BLD: require Meson 1.5.0, fix a missing build dependency for… 
- #21346: TST: special: Fix two XSLOW tests. 
- #21347: BUG/ENH: stats: Cauchy distribution fixes 
- #21349: TST: linalg: skip - svd_gesddtest for large matrices for/in…
- #21352: ENH: - linalg.lapack.?lantr: add Python wrapper
- #21353: MAINT: - stats.randint.pmf: fix zero PMF values within the…
- #21354: MAINT: - stats.rv_discrete.ppf: fix infinite loop bug
- #21355: MAINT: - stats.geom.rvs: ensure that output is not negative…
- #21360: BLD: use OpenBLAS v0.3.28 with fewer kernels, fix OpenBLAS licences 
- #21361: BLD: switch to more robust git hash determination 
- #21363: ENH: linalg.solve: use structure to speed up finite check, apply… 
- #21365: BUG: interpolate: FITPACK: remove - fpchec.fin-line- if-then-endif…
- #21367: MAINT: - stats.mannwhitneyu: simplify alternative hypotheses
- #21368: DOC: fixes ISSUE#21366 
- #21371: BUG: stats.tukeylambda: Fix the support() method. 
- #21373: ENH: interpolate.AAA: add cleanup function for removing spurious… 
- #21375: MAINT: Add local resources for smoke-tutorials 
- #21377: BENCH: Update BlockDiagSparseConstruction to use a - coo_matrix…
- #21378: DOC: signal.hilbert: update to reflect implementation 
- #21387: DOC: signal: fix typos in - _short_time_fft.pyand- signal.rst
- #21388: ENH: special: Improve precision of special.logit. 
- #21389: ENH: - scipy.stats: add normal-inverse-gamma distribution
- #21395: DOC: stats.ecdf: fix example plot 
- #21397: DOC/DEV: add - poochto virtualenv dev quickstart guide
- #21399: MAINT: optimize: remove unnecessary - isnancheck
- #21407: BUG: optimize.minimize: set - trust-constr- success=False…
- #21412: ENH: sparse: add CSR/CSC - _broadcast_tomethod
- #21413: MAINT: cleaner 0-D/scalar checks for - xpassertions, round…
- #21419: ENH: - linalg.circulant: allow batching
- #21423: MAINT: - linalg.logm: avoid- ZeroDivisionError, emit…
- #21425: DOC: linalg.qr: add example about explicit permutation matrix 
- #21427: DOC: linalg.cholesky: document when/whether only selected half… 
- #21428: DOC: linalg.hankel: emphasize that first element of - ris…
- #21429: MAINT: - linalg.schur: fix- sort='iuc'/'ouc', correct…
- #21430: MAINT: forward port 1.14.1 relnotes 
- #21433: DOC: Cache jupyter notebooks build 
- #21435: ENH: sparse: Add nD COO support for matmul, dot and tensordot 
- #21437: TST/DOC: smoke docs: strict checks 
- #21440: ENH: linalg.funm: Pythranize double for loop 
- #21441: DOC: special: prolate spheroidal docs wrong 
- #21443: DOC/DEV/CI: mambaforge -> miniforge 
- #21444: DOC: optimize: make - lsq_linearexample smaller
- #21446: ENH: linalg: enable N-D batch support in special matrix functions 
- #21449: DEV/MAINT: Add - ±and- ∞to the extra set of allowed Unicode…
- #21450: Use miniforge for uploading wheel builds 
- #21451: DOC: interpolate: add missing call to example code 
- #21454: ENH: special: Add root finding tools to xsf and implement gdtrib… 
- #21455: TYP: ignore missing sphinx import in mypy.ini 
- #21457: MAINT: few scipy cleanups 
- #21458: DOC: signal.firls: fix broken link 
- #21464: CI: remove - fetch-depth: 0from wheel build jobs
- #21467: STY: fix new lint rules that are popping up in CI 
- #21468: MAINT: special: remove more functions from - functions.json
- #21469: DOC/MAINT: add references to Boost 
- #21471: BUG: sparse: undesired behaviour of 1D/2D matmul 
- #21472: MAINT: special: refactor - ufunc.hand move to- xsf
- #21473: ENH: integrate.cubature: array API standard support 
- #21474: DOC: use - httpsURLs in pull request template
- #21477: DOC: update Contributor Quickstart guide to refer to the Building… 
- #21478: DOC: Fix version matching by extending the length of - GITVER
- #21481: MAINT/DEV: pin sphinx in - environment.yml, bump- jupyterlite-sphinx
- #21483: ENH: special: computing derivatives by simple autodifferentiation 
- #21485: MAINT: interpolate: abstract out barycentric representation of… 
- #21492: MAINT: Specify SHELL=/bin/bash in doc/Makefile 
- #21493: MAINT: Check for all submodule paths in - check_installation
- #21496: TST: Use pytest-run-parallel against free-threaded CI 
- #21497: ENH: interpolate: add - FloaterHormannInterpolator
- #21499: MAINT, TST: CuPy skip ndimage test 
- #21502: MAINT: Update COBYQA to the latest release 
- #21505: BUG: special: Use Boost for ncfdtr, fixing accuracy issues 
- #21508: BUG: fft: fix real input to standard funcs 
- #21512: TST: signal: convert to - xp_assert_\*infrastructure (pt….
- #21514: DOC: signal.freqz: fix example 
- #21515: MAINT: differentiate: manually promote dtype before element assignment 
- #21516: TST: remove redundant torch skips 
- #21517: DEV: - pytorch->- torch
- #21518: ENH: - stats.boxcox_llf: add GPU support
- #21520: TST: - special._smirnovp: remove test xfail after translation…
- #21524: ENH: integrate.trapezoid: add array API standard support 
- #21525: MAINT: stats: Fix typos principle -> principal 
- #21526: BUG: optimize.minimize.powell: stop squeezing everything 
- #21528: BUG: special.logsumexp: fix type promotion 
- #21530: TST: signal: convert to - xp_assert_\*infrastructure, pt 2
- #21536: TST: interpolate: fix a spurious failure with -b all 
- #21539: MAINT: interpolate: move an internal utility from cython to python 
- #21542: DOC: integrate.cubature: fix doc formatting and references issues 
- #21544: DOC: optimize: document recipe for - \*argsand- \*\*kwargs
- #21545: STY: ignore rule UP038 
- #21549: ENH: ndimage: add axes support to most morphology functions 
- #21551: MAINT: interpolate: trim down - _bsplextension
- #21553: ENH:linalg: Rewrite expm in C 
- #21564: TST, MAINT: skip some torch GPU tests 
- #21565: ENH: HiGHs re-integration 
- #21567: MAINT: stats.wilcoxon: small improvements/fixes 
- #21568: MAINT: special: performance optimization for simple autodifferentiation 
- #21570: MAINT, BLD: 3.13 to classifiers 
- #21572: DEP: spatial.distance: deprecate - kulczynski1and- sokalmichener…
- #21573: DOC/MAINT: stats: fix some typos 
- #21575: DOC/MAINT: doc: fix some typos 
- #21577: MAINT: special.hankel2: fix edge case 
- #21578: DOC: - special.mathieu_c/sem: add information to docstring
- #21579: TST/DEV: allow stacking of - skip_xp_backends
- #21585: DOC/MAINT: special: fix some typos 
- #21586: DOC/MAINT: spatial: fix some typos 
- #21587: BUG:linalg: Fix single precision expm UV computation 
- #21588: BUG: linalg.det: Fix edge case handling of stacked 1x1 arrays 
- #21590: DOC: signal.firwin: emphasise cutoff freq is half-amplitude 
- #21593: DOC: - special.roots_legendre: fix typo in example
- #21595: DOC: building: specify .ps1 for windows example 
- #21597: ENH: - special.logsumexp: improve precision when one element…
- #21598: DOC: - spatial.voronoi_plot_2d: notes on degeneracy
- #21599: CI: use gha-update [wheel build] 
- #21600: MAINT: - _lib: vendor and use array-api-extra
- #21602: BUG:optimize: Correct guarding, previosuly Fortran indexed, mod… 
- #21603: DOC: - special.riccati_yn: highlight sign convention
- #21604: MAINT: - special.gegenbauer: fix behavior for- n=0;…
- #21605: MAINT: constants: update codata values to 2022 
- #21607: DOC/MAINT: sparse: fix some typos 
- #21608: TST: ndimage: skip fourier tests for JAX 
- #21609: ENH: - integrate.lebedev_rule: points and weights of Lebedev…
- #21612: MAINT: special: fix delegation to generic implementations 
- #21616: BUG: sparse: fix indexing after ellipsis and 2D array indexing 
- #21617: DOC/MAINT: signal: fix some typos 
- #21621: DOC/MAINT: ndimage: fix some typos 
- #21622: MAINT: special.logsumexp: enforce branch cut convention 
- #21624: DOC/MAINT: linalg: fix some typos 
- #21625: ENH: - optimize.differential_evolution: respect workers when…
- #21626: BUG: sparse.linalg: Set - t=2in- test_onenormest_table_6_t_1…
- #21629: MAINT: special: use reflection formulas for spherical Bessel… 
- #21633: DEP: linalg: deprecate kron 
- #21635: TST: special: fix XSLOW failure in - test_mpmath.TestSystematic.test_spherical_j…
- #21636: MAINT: - differentiate.differentiate: rename function to…
- #21637: MAINT: interpolate: deduplicate input validation for NdBSpline 
- #21638: ENH: - differentiate.jacobian: support array- step_direction
- #21642: BUG: io.mmwrite: fix auto-appending of - .mtxextension
- #21646: DOC: sparse: Migration Guide rewording and tweaks 
- #21647: DOC: optimize.root: replace ‘fprime’ with ‘jac’ in - method=’hybr’
- #21648: DOC/TST: - integrate.cubature: Clean up docstring and add…
- #21656: API: - integrate.cubature: change some arguments to keyword-only
- #21657: ENH: - integrate.cubature: support for infinite limits
- #21658: ENH: stats.chatterjeexi: add xi correlation function 
- #21663: CI: fix failing conda setup 
- #21668: BUG: fft.fht: set - u.imag[-1] = 0only when- nis even
- #21672: BUG: ndimage: fix 0d arrays in - _normalize_sequence
- #21673: BUG: signal.ShortTimeFFT: fix multichannel roundtrip with - mfft…
- #21678: BUG: fix - nanoutput of- special.betaincinv
- #21680: MAINT:integrate: Silence a few QUADPACK compiler warnings 
- #21682: DOC: Reduce duplication in user guide 
- #21686: BUG: signal: int handling for - resample_poly
- #21689: BUG: optimize: fix bugs found in L-BFGS-B implementation 
- #21695: ENH: - stats.chisquare: add- sum_checkto disable check…
- #21697: MAINT: signal.lombscargle: fix numerical backward-compat 
- #21699: BUG: sparse.linalg: remove faulty test of eigval order from ARPACK 
- #21700: ENH: - stats.Mixture: add mixture distributions for new infrastructure
- #21701: MAINT: interpolate: remove undocumented nu arg of BSpline.design_matrix 
- #21702: MAINT: special: clean up factorial corner cases, including complex… 
- #21703: DOC: sparse: update spdiags handling in - doc_stringand migration…
- #21705: MAINT: Allow greek Unicode symbols in linter. 
- #21706: DEP: signal: deprecate object arrays in sosfilt 
- #21707: ENH: - stats.make_distribution: generate a- ContinuousDistribution…
- #21710: ENH: sparse.linalg: convert sparse.linalg to use sparray internally 
- #21711: BUG: special: Fix formula for division of dual numbers in xsf 
- #21712: MAINT: special.logsumexp: preserve tiny imaginary components 
- #21714: TST: stats.sampling: add fail slow exception 
- #21718: DOC: - stats.bootstrap: improve description of- paired…
- #21719: BLD: macos-12 image deprecated [wheel build] 
- #21721: MAINT: signal: lombscargle docstring tweaks and fix handling… 
- #21723: DOC: Fixed a typo in the description of - scipy.sparse.csgraph.maximum_bipartite…
- #21726: ENH: linalg.solve: add - assume_a='banded'
- #21728: ENH: special: use boost in - nctdtr
- #21729: MAINT: signal.lombscargle: vectorization changes and handling… 
- #21730: MAINT: sparse.linalg: use @ for matmul in docs/tests for Linear… 
- #21731: ENH: - stats.dpareto_lognorm: add double Pareto lognormal…
- #21734: BUG: cluster: correct type of default value of - distin- ClusterNode
- #21737: TST: differentiate: small tolerance bump on failing test 
- #21739: BLD: fix issue with capitalisation when meson detects Accelerate 
- #21744: ENH: special: Extend Riemann Zeta function to complex inputs 
- #21746: ENH: stats: exponential, logarithm, and reciprocal of a random… 
- #21748: MAINT: Updated pybind11 min version to 2.13.2 
- #21749: MAINT/DEV: fix - python dev.py ipythonunder Debian 12 / Python…
- #21751: BUG: array API conformance in cubature 
- #21752: ENH: stats.truncate: truncated random variables 
- #21753: DOC: sparse: migration to sparray guide updates 
- #21754: MAINT: interpolate: rename - interpnd->- _interpnd
- #21756: DOC: interpolate: detail - interp1drecommended replacements
- #21763: BUG: handle pearsonr constant case with n=2 vectors 
- #21765: MAINT: remove equality constraint that was impossible to satisfy… 
- #21767: MAINT: - stats.ContinuousDistribution: protect attributes,…
- #21768: BUG: sparse: fix ellipsis and bool array indexing combination 
- #21770: DOC: stats: correct conclusion associated with high p-value 
- #21773: DEP: special: Remove - special.btdtrand- special.btdtri
- #21774: API: - optimize.differential_evolution: transition to Generator…
- #21776: BUG/ENH/DOC: spatial: Better handle & document - Rotationsplitting
- #21777: ENH: stats: absolute value of a random variable 
- #21778: ENH: optimize: add array api support to - rosenand friends
- #21779: ENH: sparse.csgraph: migrate to use sparray (code changes only) 
- #21780: BUG: signal: Fix - ShortTimeFFT.extent()for- fft_mode ==…
- #21784: BUG: sparse: fix Asp @ vsp for 1D sparse vector and add tests 
- #21785: MAINT: optimize: migration to sparray pass 1 changes 
- #21789: ENH: integrate.nsum: support unimodal functions and infinite… 
- #21790: ENH: stats: distributions of order statistics 
- #21792: BUG: sparse: fix setdiag for matrices with missing diagonal entries 
- #21793: CI: Move free-threaded-wheels.yml into wheels.yml 
- #21794: BUG: stats.qmc: fix - get_poly_vinitfor multi-threading
- #21796: MAINT: Update - array_api_compatsubmodule for the 2023.12…
- #21797: BUG: special: fix array index out of bound for - pro_rad2
- #21799: ENH: sparse.linalg: add - is_sptriangularand- spbandwidth…
- #21800: DOC: signal.find_peaks: Document that widths are returned 
- #21801: ENH: extend factorial{,2,k} to allow complex inputs 
- #21802: MAINT: special: remove dependence of - xsf::numpyon- sf_error
- #21808: BUG: - signal.correlation_lags: fail with meaningful error…
- #21811: ENH: differentiate: add array API support to - jacobianand…
- #21812: API: interpolate.BarycentricInterpolator: transition to Generator… 
- #21815: TST: interpolate: parametrize tests on - griddata
- #21818: CI: Replace deadsnakes 3.13t by Quansight-Labs/setup-python action 
- #21819: ENH: - stats.ContinuousDistribution: improve method resolution…
- #21821: TST: optimize: mark MIP6 tests xslow 
- #21822: TST: - stats.fit: adjust tests for- seed->``rng`` transition
- #21823: API: - optimize.dual_annealing: adopt SPEC007
- #21824: BUG: sparse: fix - idx_dtypewhen building index arrays in…
- #21825: DOC: make - _transition_to_rngreplace documentation of- rng
- #21827: BUG: special: Fix behavior of - gammaand- gammasgnat poles…
- #21831: DOC: fixup - _transition_to_rngOldest GCC- "'rng' is not…
- #21832: CI: constrain array-api-strict version to allow conversion to… 
- #21834: DOC: fft.fht: fix typo in example 
- #21839: MAINT:sparse.linalg: Detach ARPACK and PROPACK code sharing 
- #21840: DOC: interpolate: add a tutorial page for smoothing splines 
- #21841: DOC: tone down the text of the “legacy” admonition 
- #21843: MAINT: stats.lmoment: fixup keepdims behavior 
- #21845: API: - optimize.check_grad: transition to Generator (SPEC…
- #21847: API: optimize.basinhopping: transition to Generator (SPEC 7) 
- #21848: API: - optimize.quadratic_assignment: transition to rng (SPEC…
- #21849: DOC: interpolate: declare 1D FITPACK wrappers legacy 
- #21850: BUG: linalg.svd: avoid segmentation fault 
- #21851: STY: add comment about allowed whitespace in table 
- #21853: DOC: replace only first paragraph of rng documentation 
- #21854: API: - stats._resampling: transition to rng (SPEC 7)
- #21856: MAINT, TST: - test_create_diagonalGPU support
- #21857: BLD: warn on accelerate + non-native 
- #21858: ENH: sparse: Add safe casting function for sparse index to sputils 
- #21859: DOC: - signal.unit_impulse: add explanation about delta
- #21860: MAINT: improve handling of thread-local storage 
- #21861: MAINT: special: Use consistent std::isnan and std::isinf in a… 
- #21864: DEP: remove scipy.misc 
- #21865: MAINT: - fft: Remove outdated documentation workaround
- #21867: MAINT: stats.wilcoxon: improve documentation and tests 
- #21868: BUG: io.matlab: expose - varmats_from_mat
- #21869: MAINT: stats.ContinuousDistribution: clarify conditions that… 
- #21870: MAINT: spatial/special: follow-up on - std::isnan,- std::isinf
- #21871: ENH: stats.ContinuousDistribution.sample: generate QMC samples 
- #21873: DOC: sparse.csgraph: update csgraph docs to use sparray 
- #21875: MAINT: - interpolate.barycentric_interpolate: add rng argument
- #21878: API: cluster: transition to rng (SPEC 7) 
- #21880: API: - linalg.clarkson_woodruff_transform: transition to…
- #21881: API: - stats: transition- goodness_of_fit,- sobol_indices...
- #21883: DOC/MAINT: Fix some typos regarding GitHub 
- #21886: API: - stats.{PermutationMethod,BootstrapMethod}: transition…
- #21888: API: - sparse: transition- random-like functions to…
- #21891: BUG: spatial: guard - distance_wrapdirectives
- #21892: MAINT: - _lib: use- is_numpyetc helpers from the compat…
- #21893: MAINT: linalg.interpolative: normalize rng argument (SPEC7) 
- #21895: MAINT: bump array-api-extra 
- #21897: MAINT: Hausdorff Generator handling 
- #21901: MAINT: stats.dpareto_lognorm._cdf: treat special case at x=0 
- #21903: MAINT: Silence warnings during linprog benchmarks 
- #21904: BUG: fix nogil LinearNDInterpolator 
- #21905: MAINT: io: migration to use sparray in IO 
- #21906: CI: gha update 
- #21909: DOC: io.loadmat: document - uint16_codecparameter
- #21912: BUG: integrate.trapezoid: fix broadcasting issue 
- #21913: API: - spatial.directed_hausdorff: transition to ‘rng’ keyword…
- #21914: MAINT: - spatial.transform.Rotation.random: transition to…
- #21916: MAINT, TST: differentiate: - test_examplestolerance bump
- #21917: BLD: fortran: only use - -std=legacyfor gfortran
- #21918: BUG: - optimize.curve_fit: fix sigma dimension issue with…
- #21919: Call - lcovto generate coverage reports for C, C++ and Fortran…
- #21921: DEP: - stats.ttest_ind: deprecate- random_stateand- permutation…
- #21926: REV: Revert “MAINT: io: move - _test_fortranunder- tests...
- #21928: DEV: - gh_lists: fix warnings
- #21929: MAINT: bump array-api-extra to 0.2.0 
- #21930: TST: sparse.linalg: tweak rtol for flaky - expm_multiplytest
- #21931: MAINT: stats.qmc: transition to rng (SPEC 7) 
- #21932: ENH: integrate.nsum: add array API standard support 
- #21937: TST: linalg.blas: fix test concurrency, mark - \*geras unsafe
- #21938: TST: linalg: do not call - np.asarray_chkfinite(np.empty((3,…
- #21941: DOC: add docs on parallel execution and thread safety 
- #21943: MAINT: mark f2py-generated extension modules as safe to run without… 
- #21944: MAINT: sparse: add - broadcast_shapesfunction to- _sputils.py
- #21947: TST: stats.chatterjeexi: fix error message 
- #21948: TST: add more thorough SPEC 7 tests 
- #21950: CI: fix - Intel oneAPI testsjob
- #21953: TST: stats.rdist: skip failing xslow test 
- #21954: ENH: sparse: ensure thread-safety 
- #21955: ENH: spatial: ensure thread-safety 
- #21961: MAINT: free-threading: declare HiGHS, - ndimage._rank_filter_1d…
- #21964: TST: optimize: slight tolerance bump for a dual-annealing test 
- #21965: ENH: special: ensure tests are thread-safe 
- #21967: DOC: stats.goodness_of_fit: clarify distinction between known/fit… 
- #21973: DEV: lint: disable UP031 
- #21974: DEV: add - conda-buildto- environment.yml
- #21975: CI: use stable NumPy for “old build” 
- #21976: TST: - optimize.elementwise.bracket_root: fix torch test…
- #21977: ENH: integrate.tanhsinh: make - _tanhsinhpublic
- #21979: API: integrate.simpson: allow - xto be passed positionally
- #21981: MAINT: purge - from __future__ import annotations
- #21982: DOC: SciPy 1.15.0 relnotes 
- #21983: BUG: linalg: fix cython import order 
- #21984: BUG: signal: actually reject objects in correlate/convolve 
- #21985: DOC: optimize.root: fix docs for - inner_\*parameters
- #21989: DOC: integrate.tanhsinh: fix reference format; Examples heading 
- #21990: CI: remove setting macOS 10.9 for SDK and deployment target 
- #21991: BUG: - stats.sobol_indices: fix mutation of input parameters
- #21992: DOC: Unhide - toctreein- scipy.clusterwith- maxdepth…
- #21994: BLD: Remove - ld_classicusage on macOS
- #21996: ENH: - stats.fisher_exact: extend to- R x Ctables
- #21998: MAINT, DOC: Use Jupytext’s API, and fix cross-platform usage… 
- #22002: TST: Run complex zeta avoid underflow tests only on platforms… 
- #22003: DEV: unified git submodule exclusion for tools 
- #22009: TST: differentiate.jacobian: tolerance bump for float32 
- #22024: MAINT: version pins/prep for 1.15.0rc1 
- #22025: DOC: stats: probability tutorial/transition guide 
- #22026: MAINT: stats.Mixture: fix default - weights
- #22027: MAINT: stats.ContinuousDistribution: improve doc generation;… 
- #22030: MAINT: - stats.FoldedDistribution: accommodate for private…
- #22032: MAINT: fix mypy complaints 
- #22033: TST: fix sparse.linalg failures for tfmqr and svds 
- #22036: DOC: adapt to NumPy 2.2 changes for abbreviation of large arrays 
- #22037: MAINT: stats: Add custom reprs for transformed distributions 
- #22040: MAINT: - stats.make_distribution: support more existing distributions
- #22043: ENH: sparse: make two sputils public for easier index array casting 
- #22048: TST: integrate.tanhsinh: fix abscissae/weight “compression” bug 
- #22050: MAINT: - stats.order_statistic: override- support
- #22058: DOC: - stats.order_statistic: add ‘Returns’ section
- #22059: TST: temp skip of extending tests 
- #22067: MAINT: 1.15.0rc1 backports 
- #22078: REL: set 1.15.0rc2 unreleased 
- #22081: MAINT: Add - __str__overrides for distributions in new infra…
- #22082: BUG, DOC: fixup md5 hash reporting 
- #22085: DOC: sparse: explicit dtypes for nonzero() 
- #22091: DOC: Update special release notes 
- #22098: DOC: mention the removal of AccuracyWarning 
- #22099: DEP: update version in deprecation warning of interpnd 
- #22104: DOC: 1.15.0 release note updates 
- #22106: DOC: sparse: correct - eye_arraydocs for first shape input…
- #22107: MAINT/DOC: Doctests fix scpdt 1.6 
- #22113: ENH: sparse: enhance dtype checking in constructors 
- #22124: DOC: Fix incorrect reference to “Random Variable Transition Guide”… 
- #22129: ENH: sparse: nD cleanup and docs 
- #22135: MAINT: _lib: add missing f string to _deprecate_positional_args 
- #22139: MAINT: stats._SimpleDomain: ensure that instances do not share… 
- #22149: MAINT: stats.ContinuousDistribution.llf: remove method 
- #22150: MAINT: SciPy 1.15.0rc2 backports 
- #22156: DEP: deprecation warnings for - special.lpnand- [c]lpmn
- #22158: MAINT: accept ndarray subclasses in interpolate._dierckx 
- #22162: TYP: temporarily ignore the - numpy==2.2.1mypy errors
- #22167: DEP: special: deprecation warning for - sph_harm+ comments
- #22168: BUG: fix incorrect values in factorial for 0 with uint dtypes 
- #22175: MAINT: stats: fix thread-safety issues under free-threaded CPython 
- #22177: MAINT: fix extension module not declaring free-threading support,… 
- #22181: REL: set 1.15.0rc3 unreleased 
- #22193: DEP: linalg.solve_toeplitz/matmul_toeplitz: warn on n-D - c...
- #22225: DOC: differentiate.jacobian: correct/improve documentation about…