SciPy 1.18.0 Release Notes#

Note

SciPy 1.18.0 is not released yet!

SciPy 1.18.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.18.x branch, and on adding new features on the main branch.

This release requires Python 3.12-3.14 and NumPy 2.0.0 or greater.

Highlights of this release#

  • SciPy now supports three different build modes for BLAS and LAPACK LP64/ILP64 support, and machinery is provided for downstream cython_lapack consumers to gracefully handle LP64/ILP64 backend builds. ILP64 support has been substantially improved across the SciPy library.

  • Remaining Fortran to C translations have been completed—an experimental Fortran-free build option is now available to developers for testing purposes. Developer feedback is welcome on Fortran-free builds.

  • scipy.signal.whittaker_henderson now provides access to Whittaker-Henderson smoothing of a discrete signal.

  • A large number of scipy.stats functions now support lazy arrays and JAX JIT. Array API support has been improved substantially in SciPy, with at least 21 functions gaining new support in this release. 16 scipy.stats functions have also gained support for MArray input.

New features#

scipy.fft improvements#

  • SciPy’s internal FFT backend has switched from pocketfft to its successor package ducc0.fft, which features several incremental improvements. The most significant of those from SciPy’s perspective is probably that storage requirements for internally cached plans have been significantly reduced for most long 1D transforms. Plans that require more storage than 1MB will no longer be cached; this mainly affects huge 1D transforms of prime and near-prime sizes.

scipy.interpolate improvements#

  • Users may now increase the QHull simplex assignment tolerance via the new simplex_tolerance argument to the _call__ methods of LinearNDInterpolator and CloughTocher2dInterpolator. This can help users avoid holes in certain interpolation problems.

  • The FITPACK Fortran code has been ported to C.

scipy.differentiate improvements#

scipy.linalg improvements#

  • We now support three different build modes for BLAS and LAPACK: LP64-only, ILP64-only, and ILP64 for everyting except cython_blas/cython_lapack/ linalg.blas/linalg.lapack (support for Accelerate and MKL).

  • Machinery is now provided for downstream cython_lapack users to gracefully handle LP64/ILP64 backend builds. Worked examples, including build system details, have been included in this release.

  • An overwrite_b keyword argument was added to eigvals, for consistency with other similar linalg functions.

  • linalg.cholesky now leverages symmetry properties for performance improvements, especially for real matrices. The batching loop of cholesky has now also been moved to a C implementation.

  • scipy.linalg.lu and scipy.linalg.det have been rewritten in C++ with batching support in the compiled code.

  • Added ILP64 support to scipy.linalg.expm and scipy.linalg.sqrtm.

  • The batching loops of scipy.linalg.qr, scipy.linalg.eig, scipy.linalg.lstsq, and scipy.linalg.svd have been moved to C, providing a substantial speedup for batched input.

  • The performance of scipy.linalg.expm has been improved.

  • The performance for scipy.linalg.solve has improved for batched inputs.

scipy.optimize improvements#

  • The trust_constr method for minimize was adjusted so that if the x array would result in infeasible constraints, and those constraints were marked as keep_feasible, then the objective function is not called with that x array.

  • The COBYQA method for minimize now supports being called concurrently by multiple threads. Previously, multiple threads calling this function would only run one at a time.

  • scipy.optimize.nnls, and minimize methods SLSQP and L-BFGS-B now have support for ILP64 LAPACK, when available.

  • Functions in scipy.optimize.elementwise now support passing kwargs to the callable function.

scipy.signal improvements#

  • The new whittaker_henderson implements Whittaker-Henderson smoothing of a discrete signal. It offers different penalties to control the smoothness as well as automatic selection of the penalty strength via optimization of the restricted maximum likelihood (REML) criterion. It is a valuable alternative for the Savitzky-Golay filter savgol_filter. In econometrics, Whittaker-Henderson graduation of penalty order 2 is also known as Hodrick-Prescott filter.

  • lfilter_zi was refactored for improved numerical stability and efficiency. It now raises a ValueError if parameter a has leading zeros, i.e., a[0] == 0, since lfilter and filtfilt do not support that as well. Furthermore, a ValueError instead of a LinAlgError is raised if the filter is unstable due to having a pole at z = 1.

scipy.sparse improvements#

  • In scipy.sparse.csgraph the computation of strongly connected components for directed graphs is now 2x faster with better cache locality, using algorithmic improvements described in the recent survey by Tarjan and Zwick.

  • Added ILP64 BLAS/LAPACK support to SuperLU and PROPACK extensions.

  • All sparse array/matrix formats now support matrix_transpose/.mT.

  • Support for n-dimensional linear operators has been added to scipy.sparse.linalg.LinearOperator.

  • scipy.sparse.linalg.minres now supports complex hermitian matrices.

scipy.integrate improvements#

scipy.spatial improvements#

scipy.special improvements#

scipy.stats improvements#

Python Array API Standard Support#

Deprecated features and future changes#

  • passing lwork parameter to scipy.linalg.qr has been deprecated. The functionality was rarely used; the function computes the optimal size of the work arrays automatically, therefore users should simply remove their uses of the lwork parameter.

  • The sparse construction functions kron, kronsum and build_diag choose return type sparray or spmatrix depending on the type of the sparse input arrays. When no inputs are sparse, the output is chosen to be spmatrix. That has been deprecated. The return type when no inputs are sparse will be changing to sparray. You can control the output type by ensuring that at least one input array is sparse. If any are sparray, the output will be sparray. If all sparse inputs are spmatrix, the output will be spmatrix.

  • A FutureWarning is now issued for calling {r}matvec on column vectors with LinearOperator. Identical behavior can be achieved (and extended to batch dimensions) via {r}matmat.

  • scipy.linalg functions are now stricter–using non-LAPACK dtypes is deprecated. When the deprecations expire, this will effectively limit the dtypes allowed in linear algebra functions to: integers (upcast to float), and single/double precision float/complex dtypes.

  • scipy.spatial.minkowsi_distance, scipy.spatial.minkowsi_distance_p, and scipy.spatial.distance_matrix have been deprecated in favor of other superior functions.

  • scipy.spatial.tsearch has been deprecated because it duplicates functionality more conveniently provided within the Delaunay class proper.

  • The following functions have been deprecated because they were deemed not practically useful: scipy.interpolate.pade, scipy.interpolate.lagrange, and scipy.interpolate.approximate_taylor_polynomial.

  • Setting spmatrix=True for the scipy.io readers mmio, FFM, hb, and matlab/_mio is now deprecated, including when set as the default value.

  • The unintentionally public scipy.cluster.vq.py_vq has been deprecated.

Backwards incompatible changes#

  • The output of scipy.stats.rankdata is now always of a floating point dtype – the result dtype of the input and a Python float.

  • The behavior of the residuals returned by scipy.linalg.lstsq has been changed. For lapack_driver == "gelsy" or the system being either underdetermined or square, empty residuals are still returned. For lapack_driver == "gesld"/"gelss" in combination with an overdetermined system a non-empty residual is always returned. However, in the case where a slice is not full column rank, the corresponding residual is set to NaN.

  • The 2nd output object of scipy.stats.contingency.crosstab when kwarg sparse=True is now a sparse array holding the counts instead of a sparse matrix. This allows it to be nD, so can accept more than 2 sequences as inputs, but it is a different class. Most operations work the same for sparse arrays and matrixes with notable differences for matrix: * means matmul and always-2D. For more info see Migration from spmatrix to sparray.

  • scipy.stats.obrientransform now returns a tuple of arrays instead of a single ndarray.

  • scipy.stats.multinomial now returns NaNs when the category probability (p) rows/arrays do not sum to unity. This is an expiration of the deprecated behavior of adjusting the final element in the p array to compensate. Note that multinomial.rvs will now raise an error in such cases, since it has an integral return type.

  • The iprint and disp parameters of scipy.optimize.fmin_l_bfgs_b have been removed, following the expiry of their deprecation.

  • For scipy.linalg.{sqrtm, logm, signm}, disp (and sqrtm blocksize) parameters were removed (expired deprecations).

  • The deprecated atol argument of scipy.optimize.nnls has been removed.

Other changes#

  • The vendored Boost.Math was updated from 1.89.0 to 1.91.0.

  • SciPy now has a Pixi package definition, allowing developers to easily build SciPy from source inside Pixi workspaces.

  • Developers may be interested in the private build option _without-fortran, which allows building SciPy from source in the absence of a Fortran compiler. This is an early prototype of the planned capability of a Fortran-free SciPy.

  • The private scipy.interpolate._regrid function may be of experimental interest. It provides an interface for 2-D smoothing B-spline fitting via separable 1-D FITPACK kernels. It is under consideraton for public exposure in some form in the future.

Authors#

  • Name (commits)

  • Joseph Adams (1) +

  • Adrián Raso González (1) +

  • Virgile Andreani (1)

  • AshwathElang0 (1) +

  • Mart-Mihkel Aun (1) +

  • BarnikRB (2) +

  • Richie Bendall (1) +

  • J Berg (7) +

  • Florian Bourgey (50)

  • Jake Bowhay (98)

  • Jonathan Brodrick (1) +

  • Dietrich Brunn (36)

  • Evgeni Burovski (200)

  • Matthias Bussonnier (6)

  • CJ Carey (9)

  • Christine P. Chai (2)

  • Lucas Colley (89)

  • Dan (3) +

  • devdanzin (2) +

  • Martin Diehl (4)

  • Sam Dolat (2) +

  • dphipps-qnx (1) +

  • DWesl (2)

  • efrat99 (3) +

  • fbrandt (1) +

  • August Femtehjell (2) +

  • Matthew H Flamm (1)

  • Juan Flores (1) +

  • foreverallama (1) +

  • fumoboy007 (4) +

  • John Patrick Gallagher (1) +

  • Wei Bo Gao (1) +

  • Christoph Gohlke (1)

  • Nathan Goldbaum (20)

  • Ludmila Golomozin (11) +

  • Ralf Gommers (172)

  • Mathieu Guay-Paquet (1) +

  • Matt Haberland (147)

  • Joren Hammudoglu (24)

  • Jacob Hass (4)

  • Maya Horii (1) +

  • Guido Imperiale (1)

  • Jan Möseritz-Schmidt (2)

  • Leo Ji (4) +

  • JOD (2) +

  • Aditya Kamath (2) +

  • Mukunda Rao Katta (1) +

  • Robert Kern (1)

  • Ria Khatoniar (1) +

  • Matthias Koeppe (1)

  • krishneetRAJ (1) +

  • Iason Krommydas (1) +

  • Eric Larson (1)

  • Basil Liekens (31) +

  • lnzwz (2) +

  • Christian Lorentzen (15)

  • Alex Lubbock (1) +

  • Echedey Luis (2) +

  • Lunyxis (1) +

  • Zhang Maiyun (1) +

  • Diego Medina Medina (1) +

  • Elle Musoke (11) +

  • Andrew Nelson (102)

  • Nick ODell (28)

  • Dimitri Papadopoulos Orfanos (1)

  • partev (1)

  • Matti Picus (7)

  • Ilhan Polat (190)

  • Adrian Raso (3)

  • Aditya Rawat (1) +

  • Tyler Reddy (94)

  • Martin Reinecke (1)

  • Lucas Roberts (6)

  • Pamphile Roy (1)

  • Daniel Schmitz (26)

  • Martin Schuck (4)

  • Dan Schult (47)

  • Scott Shambaugh (16)

  • Sabaa Siddique (1) +

  • Nicholas Smith (1) +

  • Johannes F. Sommerfeldt (1) +

  • SpookyYomo (2) +

  • Albert Steppi (80)

  • Charalampos Stratakis (16) +

  • Taylor (1) +

  • thecaptain789 (1) +

  • Adam Turner (1)

  • Christian Veenhuis (2)

  • Sebastiano Vigna (1)

  • Rivka Walles (14) +

  • Warren Weckesser (10)

  • Soeren Wolfers (1) +

  • wongaokay (1) +

  • Xuefeng Xu (1)

  • Aniket Singh Yadav (2) +

  • yaochengchen (2) +

  • Fadi Younes (2) +

  • Isaiah Zimmerman (1) +

  • Simon Zwieback (1) +

  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (19)

    A total of 100 people contributed to this release. People with a “+” by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete.

Issues closed for 1.18.0#

  • #8444: ENH: sparse.linalg.LinearOperator: allow correct matmat when…

  • #8669: BUG/ENH: stats nan-policy with elementswise function

  • #11298: Default acceptance Parameter probably wrong in dual annealing

  • #11713: eval_gegenbauer inconsistently supporting limit evaluation

  • #13125: signal.step function behaves differently when system parameters…

  • #16200: BLD/DOC: Verify MKL works with Meson build, and document BLAS/LAPACK…

  • #17154: BUG: binned_statistic_2d fails when non-finite values present…

  • #17498: BLD: Remove use of libnpymath and libnpyrandom

  • #18203: BUG: flang support ? or meson flang support? installing scipy…

  • #18566: META: FORTRAN Code inventory

  • #18869: REL: deploying to PyPI without download to local machine

  • #18982: BUG: signal: lsim returns incorrect results when the state…

  • #19085: BUG: problem building bits/timesize.h not found on Ubuntu 22.04

  • #19629: BUG: linear system simulation yielding wrong results due to integer…

  • #19889: BUG: stats.rankdata: dtype instability

  • #20244: BUG: Incorrect variable assignment in optimize._trust_region_exact

  • #20636: BUG: stats.levy_stable: incorrect logpdf values for beta == +-1

  • #20720: BUG: ZeroDivision Error in peak_finding_utils.pyx

  • #20902: BUG: special.lpmv(0,v,-1) returns incorrect value for non-integer…

  • #21279: BUG: qhull incorrect tests if the point is inside convex hull

  • #21285: BUG: integrate.complex_ode: does not accept function parameter

  • #21456: DOC: linalg.cho_{factor, solve}: explain overwrite_*

  • #21889: RFC: 64-bit LAPACK and cython_lapack

  • #21910: BUG: interpolate.griddata: NaNs inside convex hull (despite no…

  • #22188: BUG: optimize.milp: segfault from HiGHS

  • #22705: BUG: special.j0: incorrect for large x

  • #22752: BUG: signal.minimum_phase: homomorphic mask error

  • #22816: BUG: stats.spearmanr: incorrectly identifies arrays as constant

  • #22831: BUG: Sparse Interpolator (LinearNDInterpolator and CloughTocher2DInterpolator) r…

  • #22966: MAINT, CI: zizmor analysis of CI security

  • #23142: BUG: sparse.csgraph.connected_components: unexpected results…

  • #23318: ENH: Switching from pocketfft to ducc0.fft

  • #23351: ENH: linalg: Follow-up tasks for ILP64 support

  • #23407: BUG: stats.pmean: bad numerical behavior for small but finite…

  • #23577: BUG: sparse.csgraph.reconstruct_path: segfault for nan predecessors

  • #23582: xp_capabilities needs a proper documentation

  • #23748: BUG: scipy.sparse.linalg.lsmr() uninitialised variable if maxiter=0…

  • #23761: BUG: interpolate.RBFInterpolator: numerically unstable when two…

  • #23768: BUG: sparse: cs{cr}_{array,matrix}’s sum(axis=0|1) doesn’t…

  • #23814: ENH: sparse.linalg.minres: support complex hermitian matrices

  • #23839: Wheels for next release

  • #23868: BUG: stats: docstrings of several discrete distr. methods show…

  • #23894: DOC: interpolate.make_interp_spline: tutorial for replicating…

  • #23908: BLD: dropping manylinux2014 wheels

  • #23931: BUG: stats.relfreq: relative frequencies do not sum to 1 when…

  • #24002: BUG/TST: cluster: Occasional failure of a couple tests in cluster

  • #24021: BUG: Legendre functions of the second kind in scipy.special are…

  • #24026: BUG/DOC: Docstring rewriting in xp_capabilities can break…

  • #24027: ENH: optimize: Allow concurrent use of COBYQA minimizer

  • #24051: RFC: Should we have a ‘needs-release-note-decision’ tag?

  • #24069: BUG: scipy.cluster.vq.kmeans returns a distortion value from…

  • #24082: BUG: io.hb_write: crashes on sparse matrices with zero stored…

  • #24084: BUG: interpolate: RectBivariateSpline.partial_derivative

  • #24093: DOC: Mistake in scipy.special.airy documentation

  • #24099: BUG: specal: assoc_legendre_p incorrectly normalized at endpoints

  • #24154: MAINT: lint: fix failures following bump to Python 3.12

  • #24164: BLD: uarray: uninitialized warning

  • #24165: DOC: Mention that the Generalized Normal Distribution is also…

  • #24171: BUG: sparse.linalg.spilu does not drop entries less than tolerance

  • #24192: BUG: Segmentation fault for BSpline basis_element constructed…

  • #24196: RFC: How should xp_capabilities work and be used for classes?

  • #24203: BUG: optimize.shgo: identical branches in sampling_custom

  • #24205: RFC: Should Dask support remain a priority?

  • #24233: DOC: find_peaks_cwt docs reference cwt, which no longer…

  • #24278: BUG: io.readsav: typo “IDENTIFICATON”

  • #24280: DOC: The return value in the function bc(ya, yb) in integrate.solve_bvp

  • #24281: BUG: numerical instability in interp1d linear interpolation

  • #24289: DOC: signal: _calc_oa_lens describes in2_step as size of step…

  • #24308: DOC: optimize: parameters not being added correctly for some…

  • #24311: DOC: optimize.milp missing mip_rel_gap value

  • #24320: DOC: optimize.elementwise: missing from “API definition” toc

  • #24321: DOC: stats.distributions: missing hyperlink in “API definition”…

  • #24395: BUG: scipy.signal.zpk2tf yield incorrect results with complex-valued…

  • #24410: DEV: how to run XPBenchmarks?

  • #24424: BUG: optimize.minimize: trust-constr minimization not enforcing…

  • #24425: BUG: optimize.ridder: Wrong implementation Ridders algorithm

  • #24445: BUG: sparse.linalg.spsolve: Segmentation Fault in matrix computation

  • #24446: BUG: optimize: residuals may be uninitalized in trlib_eigen_inverse()

  • #24477: DOC: stats: erratum in the formula of Negative Hypergeometric…

  • #24505: RFC: make dtype handling uniform across scipy.linalg

  • #24517: DOC: Rotation.apply(vectors) is not equivalent to Rotation.as_matrix()…

  • #24538: BUG: linalg.svd: break regarding C/F-contiguity

  • #24543: TestDifferentialEvolutionSolver failures in CI

  • #24550: BUG: ndimage.map_coordinates: accuracy drops significantly for…

  • #24551: BUG: Instability in exponnorm for very small K

  • #24562: ENH: sparse.linalg.LinearOperator: empty batch support

  • #24626: DOC: interpolate: PchipInterpolator doesn’t document what extrapolate=None m…

  • #24662: BUG: stats.epps_singleton_2samp: test_axis_nan_policy_full

  • #24663: CI/DEV: Automatic PR labeller for labelling on close is not working

  • #24670: TST: failures with latest CuPy release

  • #24671: Extraneous warning message from solve_ivp

  • #24673: DOC: outdated links in io.netcdf_file API ref. page

  • #24675: BUG: LinearOperator: multiplication with a sparse matrix returns…

  • #24729: TST: sparse.linalg.aslinearoperator: add xp_capabilities

  • #24781: DOC: Inconsistent use of conda and mamba in Developer Documentation

  • #24803: BENCH: switch timing from spmatrix to sparray

  • #24828: BLD: meson warning for duplicate include_directories

  • #24831: BUG: linalg TestDTypes.test_det[g] failing on 32-bit armhf

  • #24838: BLD: mixed path separators in scipy/__config__.py on Windows

  • #24847: BUG: scipy.stats.describe().variance is failing on boolean arrays

  • #24861: BUG: optimize.nnls: double free crash on empty input

  • #24933: BUG: scipy.integrate.ode with integrator=’vode’ uses transposed…

  • #24937: BUG: ABI-breaking changes for cython_special.bdtrik & co…

  • #24943: CI: linalg: dev deps failing due to NumPy deprecation of generic…

  • #25056: DOC: scipy.interpolate.interpn with method=’linear’ accepts…

  • #25066: DOC: replace broken UiO spline notes references in scipy.interpolate

  • #25076: BUG: cython_lapack signatures: bint variables become…

  • #25086: BUG: optimize.direct: interpreter crash on empty Bounds

  • #25106: BUG: nct.cdf return nan

  • #25133: BUG: signal savgol_filter fails for large >20000 window_length…

  • #25162: MAINT, TST: a few test failures against NumPy 2.4.5

Pull requests for 1.18.0#

  • #20272: BUG: optimize: fix incorrect variable assignment in _trustregion_exact.py

  • #21548: ENH: integrate.simpson: add array API standard support

  • #22580: ENH: signal: add Whittaker-Henderson smoothing

  • #23070: MAINT: Convert _fpumode to multi-phase init (PEP 489)

  • #23436: ENH: fft: switch from pocketfft to ducc0.fft

  • #23446: DOC: special.entr: added example

  • #23481: ENH:io.matlab: Processing of mxOPAQUE_CLASS type during loadmat…

  • #23554: BUG: signal: Control output dtypes in abcd_normalize by adding…

  • #23631: DOC: ndimage: fix example of ‘wrap’ mode for interpolation functions

  • #23737: ENH: Allow users to increase the QHull simplex assignment tolerance

  • #23751: MAINT: stats.binned_statistic: consistently raise for NaNs in…

  • #23766: ENH: stats.ContinuousDistribution.lmoment: add population L-moments

  • #23793: ENH: stats.ks_2samp: vectorize statistic implementation

  • #23798: ENH: stats.linregress: vectorize implementation and add array…

  • #23830: ENH: stats.theilslopes: vectorize implementation

  • #23836: ENH/DEP: sparse.linalg.LinearOperator: n-D batch support

  • #23900: ENH: sparse.linalg.minres: support for complex hermitian matrices

  • #23919: ENH: linalg/SVD: move the batching loop to C

  • #23935: DOC: special.sh_legendre: add Examples section

  • #23949: ENH: stats.estimated_cdf: array API function for plotting_positions...

  • #23951: DOC: interpolate: add tutorial on how to fill an image from its…

  • #23959: ENH: stats.bws_test: vectorize and add array API support

  • #23962: ENH: interpolate: Python bivariate spline fitter _regrid

  • #23968: ENH: stats.pointbiserialr: add array API support

  • #23969: TST: sparse.linalg.LinearOperator: add interface dot-tests

  • #24018: ENH: stats.binomtest: vectorize implementation

  • #24020: ENH: stats.shapiro: implement in Python array API

  • #24022: ENH:interpolate: Rewrite FITPACK in C

  • #24060: DEP/MAINT: cluster: deprecate vq.py_vq and tidy public API

  • #24079: ENH: migrate special.bdtrin to boost

  • #24081: DEV: auto apply needs-release-note-decision label to ENH/DEP…

  • #24086: DOC: Improve the formatting of references in scipy.stats

  • #24091: MAINT: remove old numpy warning filters from pytest.ini

  • #24108: Fix endpoints normalization for assoc_legendre_p

  • #24110: DOC: special: Fix Airy Documentation

  • #24112: ENH: migrate special.bdtrik to boost

  • #24114: REL: set version to 1.18.0.dev0

  • #24119: MAINT: bump min numpy>=2.0.0 python>=3.12 for scipy 1.18

  • #24120: Fix bug in scipy.sparse.linalg.lsmr() if maxiter=0 and show=True

  • #24121: BUG: sparse: fix sparse.linalg.norm dtype handling

  • #24123: ENH: linalg.solve: implement banded solver in cpp

  • #24127: DOC: special.lqn: Improve documentation

  • #24128: DOC/TST: signal.findfreqs: add tests and mark array api support

  • #24130: DOC/TST: (nearly) finalize current use of xp_capabilities

  • #24134: MAINT: _lib._array_api_no_0d: remove spurious *args

  • #24135: CI: split up array API job

  • #24136: DOC: special.lpmv: improve/fix documentation

  • #24144: MAINT/BLD: Don’t undef _BEGIN_EXTERN_C and _END_EXTERN_C

  • #24146: DOC: sparse: clarify DIA data format and alignment

  • #24147: TST: linalg: test shapes for solve-like functions

  • #24149: TYP: special: update outdated _test_internal stubs

  • #24153: DEV: add scipy-stubs to test env

  • #24156: MAINT: fix lint

  • #24157: ENH: sparse: implement matrix_transpose and .mT

  • #24162: BUG: stats.spearmanr: warn for constant input robustly

  • #24168: BUG/MAINT: special: Bump xsf to version 0.1.5

  • #24169: DOC: stats.gennorm: mention AKAs in documentation

  • #24170: TYP: fix some typing issues in _lib._array_api.xp_vector_norm

  • #24173: MAINT: NumPy 2.x cleanups

  • #24175: MAINT:optimize: Restructure the C code in optimize

  • #24179: ENH: spatial: Automatically promote a Rotation when composing…

  • #24180: MAINT: remove unneeded thread_unsafe markers for ode integrator…

  • #24181: ENH: stats.expectile: vectorize implementation and add array…

  • #24182: MAINT:interpolate: Correct the lwrk formula LSQSphereBivariateSpline

  • #24183: MAINT: more cleanup related to old NumPy versions and some unused…

  • #24184: DEV: use separate build-dir for system-libs env

  • #24185: ENH:MAINT:linalg: Move matfuncs to /src, Remove Python loops…

  • #24189: ENH: special.eval_jacobi() for n integer and alpha=-1 and beta=1

  • #24194: MAINT: interpolate.NearestNDInterpolator: use KDTree instead…

  • #24198: ENH: signal.lfilter_zi: refactor for efficiency and stability

  • #24201: ENH: signal.square: add array api support

  • #24202: BUG: ndimage: fix potential double-free in NI_InitFilterOffsets

  • #24204: BUG: signal/_firfilter.cc: fix out-of-bounds read in pylab_convolve_2d

  • #24206: BUG: optimize/__lbfgsb.c: fix pointer arithmetic bug in cauchy…

  • #24209: BUG: optimize/tnc/tnc.c: fix uninitialized xoffset when scale…

  • #24210: MAINT: improve sophistication of approx_derivative output…

  • #24211: BUG: Remove redundant conditional in _shgo.sampling_custom

  • #24219: BUG: sparse.linalg: Fix copy-paste error in get_OPinv_matvec

  • #24220: BUG: optimize.direct: fix two memory leaks

  • #24221: BUG: io.hb_write: fill in default length when indptr is empty

  • #24226: DOC: fix typo and rendering issue in special.zetac

  • #24229: Modified bspline basis_element to raise error for invalid number…

  • #24230: BUG: cluster.vq: ensure _kmeans returns distortion corresponding…

  • #24232: MAINT: signal: make abcd_normalize respect input dtype and remove…

  • #24235: DOC: signal.find_peaks_cwt: remove reference to removed cwt

  • #24238: ENH: integrate.fixed_quad: add array API support

  • #24242: BLD: address deprecation warnings from Meson 1.10

  • #24243: MAINT: stats.gmean/hmean/pmean: improve dtype handling for non-numpy…

  • #24248: DOC: stats.rv_discrete: remove unsupported parameter ‘scale’…

  • #24249: TST: stats.gstd: remove JAX xfail of test_ddof_equal_to_number_of_observations

  • #24257: DOC: stats: fix indentation of lists

  • #24258: MAINT: stats.mannwhitneyu: minor refactorings suggested in gh-23870

  • #24259: DOC: improve code comments in scipy/meson.build for linking…

  • #24262: TST: stats: skip tests involving complex input to special functions…

  • #24263: ENH: linalg.eig: move the batching loop to C

  • #24264: ENH: signal.sawtooth: add array api support

  • #24265: MAINT: PY_VERSION_HEX cleanups

  • #24266: DOC: signal.place_poles: fix xp_capabilites

  • #24267: DOC/TST: add new workflow for xp_capabilities application…

  • #24268: ENH: linalg.qr: move the batching loop to C

  • #24270: MAINT:interpolate: Silence compiler; Initialize ‘acc’ in dfitpack.c/fpsurf

  • #24271: MAINT/BLD: external source code in subprojects, install…

  • #24274: MAINT:linalg: Remove dummy ?larf/?larfg parameters from wrappers

  • #24279: BUG: io.readsav: fix for rectype 13: IDENTIFICATION

  • #24282: BUG: Fix interp1d numerical stability

  • #24283: ENH: stats.siegelslopes: vectorize implementation

  • #24286: DOC: clarify order of residuals returned by bc in solve_bvp

  • #24287: BUG: stats.pmean: stabilize for small but finite p

  • #24288: DOC: integrate: fix indentation of lists

  • #24292: DOC: signal: fix _calc_oa_lens in2_step description

  • #24294: DOC: signal.place_poles: fix docs for returned gain_matrix

  • #24295: DOC: remove block quotes from array api support note

  • #24299: MAINT: _lib._tmpdirs: replace with stdlib functions

  • #24300: MAINT: vendor packaging.version with a script, remove _lib._pep440

  • #24303: DEV: add smoke-docs Pixi task

  • #24309: DOC: fix incorrect block quotes

  • #24310: BLD: linalg/special: install only pxd files, not other generated…

  • #24312: DOC: optimize.milp: add missing mip_rel_gap default

  • #24314: BUG: stats.levy_stable: fix PDF in Tails for beta=+-1

  • #24315: ENH: stats.sigmaclip: add nan_policy

  • #24316: MAINT: sparse: remove check for python version bellow min supported

  • #24317: DOC/DEV: add a tool to run numpydoc lint/validation for public…

  • #24324: DOC: optimize.elementwise: add to API definition TOC

  • #24325: DOC: stats.distributions: remove text from API definition TOC

  • #24327: DOC: stats: adjust rendering of sub-namespace TOCs

  • #24328: DEV/CI: add spin check command, and add check for xp

  • #24329: MAINT: stats: add nan_policy to normalizing transforms

  • #24331: DOC: special: minor gdtr[c] and nbdtr[c] equation…

  • #24333: DEP: optimize.nnls: remove atol

  • #24337: MAINT, DOC: forward port 1.17.0 release notes

  • #24342: MAINT: update scipy-openblas to 0.3.31.22.0

  • #24344: DOC: fix ordering of documentation sections

  • #24347: DOC: integrate.nsum: correct documentation of tolerances

  • #24349: DOC: enable GL05 / convert tabs to spaces

  • #24351: DOC: enable PR10

  • #24353: DOC: ensure all public function docstrings have Returns section;…

  • #24356: DOC: Remove non-existent ‘periodic’ parameter documentation from…

  • #24357: DOC: integrate.qmc_quad: clarify parameter types for a

  • #24360: DOC: ensure return sections have description; enable RT03

  • #24361: DOC: ensure summaries begin with capital letters; enforce SS02

  • #24362: DOC: Add section to array api support dev docs on check --xp-markers

  • #24363: DOC: Add note to array API dev docs about Dask deprioritization

  • #24365: DOC: sparse: document format attribute

  • #24368: BUG: fix freeing of uninitialized memory in error paths in ndimage

  • #24369: DOC: make numpydoc lint work for methods

  • #24376: DOC: FFT: Improve the DFT section in the user guide.

  • #24381: ENH: stats.binomtest: add array API support

  • #24387: MAINT:optimize: Multiphase initialization for extension modules

  • #24388: MAINT:signal: Multiphase initialization for extension modules

  • #24389: MAINT:ndimage: Multiphase initialization for extension modules

  • #24390: MAINT:spatial: Multiphase initialization for _distance_wrap extension…

  • #24391: MAINT:special: Multiphase initialization for extension modules

  • #24392: MAINT:sparse: Multiphase initialization for extension modules

  • #24393: ENH: stats.obrientransform: add array API (+MArray) support and…

  • #24394: MAINT: optimize.quadratic_assignment: SPEC 7 follow-up

  • #24400: TYP: generic stats.CensoredData type

  • #24401: TYP: generic stats.gaussian_kde type

  • #24405: ENH: stats: support lazy arrays, first pass

  • #24409: BLD/CI: fix regression when building with global meson, add a…

  • #24411: ENH: stats.rankdata: delegate to JAX

  • #24414: CI, MAINT: few 3.11/pixi cleaups

  • #24415: DOC: ndimage.generic_filter1d: add example

  • #24416: DEV/BENCH: Pixi tasks for array backend benchmarks

  • #24420: MAINT: stats.rankdata: consistently return floating point dtype

  • #24421: ENH: stats.wilcoxon: enable JIT

  • #24422: ENH: stats.epps_singleton_2samp: enable JIT

  • #24428: BUG: signal._peak_finding._identify_ridge_lines correct sorting…

  • #24429: MAINT: migrate special.nbdtrin to boost

  • #24430: ENH: stats.yeojohnson_llf: enable JIT

  • #24434: MAINT: linalg: readability refactor inv/solve

  • #24435: DOC: constraints, outline what keep_feasible really means

  • #24441: DOC: spatial.KDTree.sparse_distance_matrix: add descriptions…

  • #24443: ENH: stats.theilslopes/siegelslopes: add array API support

  • #24449: MAINT: update Pixi for scipy-openblas==0.3.31.22.0

  • #24451: DOC: interpolate/tutorial: replace interp1d with a DIY left/right…

  • #24452: ENH: stats.ks_2samp: add array API support

  • #24455: BUG: optimize: validate itmax in trlib_eigen_inverse

  • #24456: BUG: sparse.linalg.spsolve: avoid segfault when spsolve fails…

  • #24460: ENH: stats.cumfreq/relfreq: add array API support

  • #24461: DOC: clarify spilu drop_tol behavior with respect to fill-in

  • #24462: BUG: optimize.ridder: avoid underflow when fa is small

  • #24464: ENH: stats.mannwhitneyu: add zstatistic to result object; declare…

  • #24465: DOC/DEV: update vendored-code page

  • #24467: ENH: stats.ansari: add method argument; enable JIT

  • #24469: DOC: remove outdated cdflib references in gdtrix and gdtria

  • #24470: DOC: ensure short summary ends with a full stop and enable SS03…

  • #24471: MAINT: fix import

  • #24472: DOC: linalg: discuss batching, add examples, tutorial links

  • #24473: DOC: add missing parameter descriptions and enable PR07 rule

  • #24475: ENH: stats.moment: simplify implementation; enable JIT

  • #24476: MAINT: linalg: vectorize pinv for batched inputs

  • #24478: DOC: fix ordering of parameters and enable PR03 check

  • #24479: ENH: stats.lmoment: enable JIT

  • #24480: DOC: stats.nhypergeom: fix erratum in distribution support

  • #24481: ENH: stats.kstest: add array API support

  • #24482: BLD: add scipy-doctest dependency

  • #24483: DOC: enable PR06 and standardise description of built in types

  • #24487: DOC: add missing types and enable PR04 rule

  • #24490: ENH: stats: another batch of marray support

  • #24493: MAINT: stats: remove UNURAN wrapper reference cycles

  • #24494: BLD: remove use of xsimd_dep to deal with unvendored xsimd…

  • #24496: BUG:sparse: make sum apply dtype before accumulation

  • #24498: DOC: parameters not working for BroydenFirst and KrylovJacobian

  • #24500: ENH: stats.mannwhitneyu: enable JIT

  • #24501: ENH: stats.binomtest: enable JIT

  • #24503: MAINT: subprojects/cobyqa: use upstream Meson project

  • #24506: ENH: stats: add MArray support to rankdata and several dependent…

  • #24514: DOC: add user guide page on Security

  • #24516: DOC: Correct many a/an usage mistakes

  • #24518: DOC: spatial.transform.Rotation.apply: fix formula

  • #24535: ENH: special: use lazy_apply when falling back to NumPy in…

  • #24536: CI: stop uploading wheels, redesign matrix, test on PRs

  • #24539: DOC: correct typo ‘occured’ to ‘occurred’

  • #24540: MAINT: tidy up get_submodule_paths

  • #24544: DOC: Fix typos for scipy.special.ndtri

  • #24545: DOC: stats.order_statistic: fix typos

  • #24548: CI: skip circle on [skip ci]

  • #24549: TST: optimize: seeding of TestDifferentialEvolution

  • #24557: BUG: special: get JAX delegation under the JIT to work with mixed…

  • #24559: TST: sparse.linalg.LinearOperator: add tests

  • #24570: DOC: io: remove redundant @docfiller decorator usage

  • #24571: MAINT: sparse.dok_array/matrix.pop: restore signature

  • #24575: MAINT: remove scipy/optimize/tnc/moduleTNC.c.old

  • #24577: DOC: fixed some typo

  • #24581: DOC: update security vulnerability report link in README

  • #24583: DOC: add AI policy

  • #24591: MAINT: optimize: minpack: use bool types Python-side

  • #24604: TST: cluster: fix flakiness in kmeans2 tests by using fixed RNG

  • #24608: BUG: Split edge_offsets/data_offsets error checks in NI_GeometricTransform

  • #24609: STY: stats.UnivariateDistribution: remove unhelpful/outdated…

  • #24610: MAINT: stats.make_distribution: fix some issues with rv_generic...

  • #24615: BUG: ndimage: fix aliasing in _init_causal_reflect for small…

  • #24616: STY: stats.UnivariateDistribution: more comment adjustments

  • #24617: DOC: stats.UnivariateDistribution.sample: update documentation…

  • #24618: MAINT: stats._logexpxmexpy: simplify implementation

  • #24620: MAINT: stats.order_statistic: reinforce parameter integrality

  • #24622: TST: sparse.linalg.LinearOperator: prepare test_interface

  • #24623: ENH: integrate.tanhsinh/nsum: add kwargs support

  • #24624: ENH: optimize.elementwise: add kwargs support

  • #24627: ENH: sparse.linalg.LinearOperator: array API standard support

  • #24628: TST: sparse.linalg.LinearOperator: test empty batches

  • #24632: MAINT: stats.UnivariateDistribution: don’t reset cache when transforming

  • #24634: TST: datasets: make tests runnable without pooch

  • #24635: BLD: add a build option to build without a Fortran compiler

  • #24637: ENH: sparse: add csr_array struct for c++ calls to binop

  • #24638: TST: fix tests for array-api-strict 2.5 / Array API 2025.12 spec

  • #24639: ENH: differentiate.derivative: add kwargs support

  • #24640: DOC: stats: update method of L-moments example

  • #24641: MAINT: replace usage of isspmatrix throughout scipy

  • #24642: ENH: spatial.KDTree: output_type variant for sparray

  • #24643: DOC: Add tutorial for “extrapolate” keyword and standardize docstring

  • #24644: DEP: io: deprecate default spmatrix kwargs values

  • #24649: TST: sparse.csgraph: Add csgraph index array dtype tests for…

  • #24651: DOC/DEV: fix typo in release docs

  • #24652: ENH: stats.contingency.crosstab: support sparray

  • #24653: DOC: forward port 1.17.1 release notes

  • #24655: ENH: linalg: Use sparse array idioms in sketches docs and internal…

  • #24656: ENH: integrate: support sparray in IVP and BVP

  • #24658: ENH: signal.fftconvolve: array API support for pytorch

  • #24659: MAINT: optimize: lbfgsb: remove one simple GOTO statement

  • #24661: TST: special.erf: mark test_erf_complex as slow

  • #24665: TST: stats.epps_singleton_2samp: bump axis_nan_policy test tolerance

  • #24666: CI/DEV: fix retag on close action

  • #24667: BUG: special.gegenbauer: fix endpoint behavior

  • #24668: DEV: add ipython-cpu task and sparse dep to array-api-cpu

  • #24669: TST: sparse.linalg: prepare test_iterative for array API

  • #24677: TST: stats: test MArray w/ torch, always test multidimensional…

  • #24678: DOC: Update broken links in scipy.io.netcdf_file

  • #24679: DOC: Improve and fix typos some scipy.special functions

  • #24682: DEP: linalg: deprecate using linalg functions with LAPACK-incompatible…

  • #24688: ENH: stats.mode: add MArray support

  • #24690: ENH: stats.kendalltau: add array API support (via conversion…

  • #24691: MAINT: optimize: lbfgs: replace goto SAVEVARS with save_vars

  • #24695: MAINT: special: migrate nrdtrimn/nrdtrisd to xsf

  • #24697: ENH: stats.quantile_test: add array API support

  • #24703: ENH: optimize: make nnls, slsqp and lbfgsb ILP64-ready

  • #24706: BUG: sparse.csgraph.connected_components: fix BSR blocksize !=…

  • #24709: MAINT: linalg/{svd, eig}: re-enable overwrite_a

  • #24711: ENH: migrate special.nbdtrik to boost

  • #24712: DEP: interpolate: deprecate “impractical” functions

  • #24714: TST: sparse.linalg.LinearOperator: test lazy backends

  • #24715: TST: linalg: bump test tolerance for openblas on x86 MacOS

  • #24717: DOC: stats: document MArray support

  • #24719: TST: bump to CuPy 14

  • #24724: TST/DOC: Set jax_default_matmul_precision to float32

  • #24725: CI: update actions versions

  • #24726: ENH: stats.ks_1samp/ks_2samp/kstest: add MArray support

  • #24730: DEV/CI: Pixi task to update GHA hashes

  • #24732: MAINT: syncs wheels.yml with that used by scipy/scipy-release

  • #24735: CI: cache CuPy kernels in GPU job

  • #24736: TST: sparse.linalg.aslinearoperator: add xp_capabilities

  • #24739: TST: sparse.linalg.LinearOperator: unskip CuPy

  • #24740: CI: CI/CD hardening

  • #24743: MAINT: optimize: lbfgs: replace goto statements in cauchy

  • #24745: TST: sparse.linalg: prepare test_iterative for batching

  • #24746: MAINT: optimize: lbfgs: replace goto statements LINE1000

  • #24749: BUG: signal.minimum_phase: correct calculation

  • #24750: MAINT: linalg.solve: reenable ‘overwrite_b’ for solve(…, assume_a=”banded”)

  • #24752: BUG: optimize: improve handling of memory errors in direct()

  • #24753: BUG: Rotation.apply read-only memoryview support

  • #24755: ENH: stats.cramervonmises: add MArray support

  • #24756: MAINT: optimize/trlib: is actually ILP64-ready

  • #24758: DOC:sparse.linalg.eigs{h}: version added admonition for rng

  • #24759: ENH: linalg.cholesky: move batching loop to C

  • #24760: BUG: integrate: fix ComplexWarning in _sparse_num_jac with complex…

  • #24761: BUG: from_rotvec read-only support

  • #24764: TYP: generic spatial.transform.Rotation type

  • #24765: DOC: fix typos in /tutorial/interpolate

  • #24766: DOC: minor follow ups to the AI policy

  • #24768: TYP: generic spatial.transform.RigidTransform type

  • #24772: BUG: linalg: fix int overflow in complex Cholesky wrappers

  • #24773: Fix formatting of error message in _minpack_py.py

  • #24776: CI: cleanup ccache code

  • #24778: BUG: spatial.transform.Rotation.approx_equal: fix bool return…

  • #24780: ENH: spatial.distance: add support for nd inputs to minkowski/euclidean/seuclide…

  • #24782: ENH: add condition to {skip,xfail}_xp_backends

  • #24783: DOC/DEV: Change instances of mamba to conda

  • #24784: BUG: stats: fix ks_1samp method argument validation

  • #24785: MAINT: stats.UnivariateDistribution: fix typo in safe complement…

  • #24788: MAINT: special: Remove npymath dep

  • #24792: BUG: use CBLAS_INT in save_vars in lbfgsb.c for ILP64…

  • #24793: MAINT/ENH: linalg: use get_blas_lapack_funcs not bare lapack…

  • #24796: TST: signal: add tests for general_gaussian and cosine

  • #24801: CI: rtools45

  • #24804: ENH: interpolate: add CuPy delegation for BSpline

  • #24807: CI: avoid win-arm64 failure, re-enable silently skipped meson-global…

  • #24809: DOC: fix typos in tutorial/stats

  • #24815: MAINT: update SuperLU to latest upstream commit, and reduce our…

  • #24816: BUG: sparse.csgraph.reconstruct_path: raise for non-integral…

  • #24817: BUG: signal: fix peak widths zero division error

  • #24822: MAINT: special: Use two C++ function types from xsf.

  • #24826: BUG: special: use CMPLX() instead of real + imag * I in _complexstuff.h

  • #24829: ENH: linalg: add ILP64 support to the _internal_matfuncs

  • #24832: CI: fixes the broken clang-17 job on linux.yml

  • #24833: BLD: consolidate include_directories

  • #24835: BENCH: signal: better comparison between fftconvolve and…

  • #24836: CI: fix ccache usage issues in linux.yml jobs

  • #24837: MAINT: special: add robust CMPLX fallbacks for non-MSVC compilers

  • #24839: ENH: add Pixi package definition

  • #24841: ENH: sparse.linalg: add ILP64 support to _propack

  • #24844: MAINT: sparse.linalg: add ILP64 build option to ARPACK

  • #24845: MAINT: split ILP64 defines to a separate header

  • #24846: DOC: fft.idst: add examples

  • #24848: TST: stats: add array API test coverage

  • #24850: TST: stats: move tests into classes

  • #24851: MNT: sparse: update csgraph and linalg tests to avoid unneeded…

  • #24852: ENH: stats.ttest_ind: array API support for method and trim

  • #24853: TST: stats.ttest_rel: translate tests to array API

  • #24855: BUG: fix scipy.stats.describe() is failing on boolean arrays

  • #24856: TST: stats.binomtest: translate remaining tests to array API

  • #24857: MAINT: optimize: lbfgs: replace goto LINE999

  • #24858: ENH:MAINT:linalg: Rewrite lu and det in C++

  • #24862: ENH/TST: stats: strengthen MArray tests

  • #24863: MAINT: stats.make_distribution: simplify creating distribution…

  • #24866: ENH: optimize.nnls: handle zero-dimensional edge case

  • #24868: DEP: stats.multinomial: produce NaNs for p.sum() != 1

  • #24870: MAINT: linalg.lstsq: reenable overwrite_x

  • #24873: ENH: integrate: add ILP64 support to _odepack and _vode extensions

  • #24874: MAINT: optimize: lbfgs: replace goto LINE888

  • #24875: ENH: add ILP64 BLAS/LAPACK support to SuperLU

  • #24877: TST: stats.iqr: avoid assert_equal w/ floating point arithmetic

  • #24878: DOC: stats: additional extra_notes

  • #24881: DOC: optimize.dual_annealing: mention origin of the default parameters

  • #24883: MAINT: optimize: lbfgs: docstring of task and task_msg

  • #24886: DEP: sparse: Deprecate default output type of input dependent…

  • #24889: MAINT: linalg: rename type_traits and numeric_limits

  • #24891: BENCH: switch spmatrix to sparray in benchmarks that don’t compare…

  • #24892: MAINT: linalg: remove mentions of cblas/clapack modules which…

  • #24894: MAINT: stats: use xsf gufunc in pmf and cdf calculation for poisson_binom

  • #24897: ENH: linalg: add HAS_LP64 config variable

  • #24900: TST: linalg: skip a test which was failing on armhf in Debian…

  • #24902: MAINT: _build_utils: remove vendored npy_cblas.h header

  • #24904: DOC: integrate.{RK23, RK45}: Add examples

  • #24906: MAINT: __package____spec__.parent

  • #24909: BLD: ensure include paths for blas_dep and lapack_dep

  • #24911: DOC: special.roots_sh_legendre: add example

  • #24912: BLD: fix issue with manual caching function in _generate_pyx.py

  • #24913: ENH: linalg.cholesky: leverage symmetry for performance

  • #24917: TYP: fix type alias declarations

  • #24918: TYP: remove unnecessary from __future__ import annotations

  • #24919: ENH: stats.rankdata: CuPy support via repeat workaround

  • #24920: TYP: use modern generic standard collection types

  • #24921: DOC: interpolate: small tweaks to the “extrapolate” section

  • #24922: MAINT: bump mypy to 1.19.1

  • #24928: BUG: special: fix leaked py_SpecialFunctionWarning in sf_error_v

  • #24929: BUG: use CMPLX()/CMPLXF() instead of real + imag

  • #24930: TYP: fix all (600+) mypy errors

  • #24934: BUG: fix VODE Jacobian transposition in dvode_jacobian_thunk…

  • #24938: MAINT: fix cython_blas/cython_lapack ABI breakage from…

  • #24939: DOC: fix Rotation.apply docstring matrix formula

  • #24940: DOC: keep_feasible explanation

  • #24941: MAINT: namespace C++ linalg functions to avoid shadowing std…

  • #24946: MAINT: linalg: fix test_dtypes for “m” deprecation

  • #24947: MAINT: interpolate: Refactor BSpline class

  • #24948: CI: place upper limit on ccache size

  • #24951: BUG: sparse: large assignments can lead to ValueError in CSR/CSC

  • #24958: DOC: add link to AI policy in CONTRIBUTING.rst

  • #24961: DOC: separate sparse spmatrix docs to their own pages and add…

  • #24962: CI: fix issue with pkgconf-pypi no longer finding openblas

  • #24963: DOC: linalg: discuss/illustrate overwrite_a arguments

  • #24964: CI: move c-cpp build mode to manual for codeql

  • #24965: MAINT: linalg: refactor sanity checks

  • #24967: ENH:MAINT:linalg: Move bandwidth function from Cython to…

  • #24969: MAINT: linalg.qr: re-enable overwrite_a

  • #24970: CI: respect commit message skips in Pixi Packages workflow

  • #24977: ENH: BLD: refactor BLAS support, and introduce an ILP64-only…

  • #24979: MAINT: fix abs() truncation warnings for fblas_64.pyf.src in…

  • #24981: CI: win_arm64 removes LLVM install step

  • #24983: DEV: avoid byte-compiling every .py file on a spin build

  • #24984: TST: special: fix extremely slow TestSystematic.test_gegenbauer_int

  • #24988: MAINT: linalg: Fix AIX build break due to RAW Macro defined.

  • #24993: DOC: signal: clarify 1-D input requirement for lp2lp, lp2hp,…

  • #24996: ENH: sparse.csgraph.connected_components: state-of-the-art implementation…

  • #24998: TST: spatial: skip test_ckdtree_memuse for ASan builds

  • #24999: DEV: bump spin to v0.18 from v0.15

  • #25001: ENH: linalg: add overwrite_b argument to eigvals

  • #25002: CI: Enable xdist and kernel caching for JAX step of GPU job

  • #25003: CI: add zizmor

  • #25004: DOC: Remove duplicated ‘to’ in ‘wrt to’ and ‘w.r.t. to’

  • #25005: DOC: fix typos in _morphology.py

  • #25011: MAINT: optimize: lbfgs: replace goto LINE222

  • #25012: CI: add MKL and scipy-openblas64 jobs with ILP64-only build mode

  • #25013: DOC: optimize.curve_fit: raising TypeError

  • #25017: DOC: Fix ‘accomodate’ typo in comments

  • #25019: TST: bump relative tolerance for precision of estimated covariance

  • #25024: DOC: special.hermitenorm: add example

  • #25025: ENH: add a worked example of downstream usage of ILP64 cython_lapack

  • #25028: DEP: spatial: deprecate tsearch

  • #25030: DOC: optimize: add some references to line search algorithms

  • #25031: DOC: improve documentation for special.erf and related functions

  • #25032: DOC: constants: remove duplicate grain

  • #25034: TST: integrate: increase tolerance for float32 in test_result_dtype_promoted_c

  • #25036: DOC: special: ensure MultiUFunc has text_signature and…

  • #25042: DOC: special: Update URLs to use HTTPS

  • #25043: CI: turn off deployment for circleci-redirector environment

  • #25044: TYP/CI: Type checking with Pyrefly

  • #25045: MAINT: special: avoid deprecated implicit datetime unit

  • #25046: DOC: interpolate: fix imbalanced double backticks

  • #25047: DOC: stats.binomtest: fix unbalanced backticks

  • #25048: DOC: stats.yeojohnson_llf: fix invalid RST

  • #25054: DOC: misc typos in syntax

  • #25058: ENH: faster SphericalVoronoi 3D area calculations

  • #25064: DOC: interpolate.interpn: Example with extrapolation added

  • #25068: DOC: update old B-spline source

  • #25072: ENH: interpolate.BPoly/PPoly set up CuPy delegation

  • #25077: DOC: special: fix formulas and examples

  • #25079: ENH: add a blas_bint typedef to cython_blas

  • #25084: MAINT: migrate away from soon to be deprecated spatial functions

  • #25087: MAINT: update Boost to 1.91

  • #25088: BUG: optimize.direct: Prevent crash when running direct on empty…

  • #25092: DOC: scipy.special: improve documentation for orthogonal polynomials

  • #25093: MAINT: sparse: remove test of python2 -> python3 continuity of…

  • #25094: ENH: stats: Implement _munp() for halfgennorm.

  • #25098: DEP: spatial: deprecate minkowsi_distance,``minkowsi_distance_p``...

  • #25099: MAINT: sparse.linalg: resave propack test dataset objects as…

  • #25103: MAINT: sparse: COO.tocsc add comment about unused copy

  • #25105: DOC: stats: add references to five distributions that are missing…

  • #25107: DEV: bump to Pixi v0.68.0

  • #25108: MAINT: restore cython_special ABI to match 1.17.0, add test…

  • #25109: DOC: sparse: add doc-string warnings to match kron/kronsum/block_diag…

  • #25114: MAINT: special: Remove tabs from boost_special_functions.h

  • #25119: MAINT/TST: sparse: Require 64 GiB for test_large_assignments()

  • #25121: DOC: fix typo of “firwin” in iirdesign

  • #25127: BUG: special: fix subtle ufunc loop bug by updating xsf

  • #25129: BUG: sparse: Add defensive checks to sparsetools

  • #25131: ENH: signal.oaconvolve: add JAX support

  • #25134: BUG: signal: backwards compat in savgol/lstsq

  • #25137: TST: add regression test for #22705

  • #25140: BUG: special: make sf_error_v threadsafe

  • #25145: DOC: don’t append the array api compatibility table to docstring…

  • #25147: BLD: silence build warnings from uarray and ducc0

  • #25148: BUG/ENH: interpolate: Reduce _regrid memory pressure in large…

  • #25149: MAINT: special: bump xsf submodule to fix crashes and failures…

  • #25155: ENH: signal.deconvolve: add JAX support

  • #25156: ENH: signal.hilbert, signal.hilbert2: add JAX support

  • #25159: ENH: signal.lp2hp: add JAX support

  • #25160: ENH: signal.lp2bp, signal.lp2bs: add JAX support

  • #25168: BUG: io: The ‘scipy_mmio’ threadpoolctl was not setting the version…

  • #25169: MAINT: convert interpolate._dierckx and test modules to multi-phase…

  • #25170: DOC: sparse: sparse docs changes related to spmatrix

  • #25173: BUG/TST: io: Fix test_threadpoolctl in scipy/io/tests/test_mmio.py.

  • #25174: DOC: sparse.linalg.LinearOperator: xp param

  • #25179: DOC: unbalanced backticks in release notes an ND_regular_grid

  • #25183: interpolate: skip test_spline_large_2d on Windows pending…

  • #25189: BUG: interpolate/RBF: use a symmetric solver where available

  • #25191: DOC: special: Improve documentation for boxcox functions

  • #25193: DOC: stats: Note that halfgennorm is a special case of gengamma.

  • #25194: interpolate: parametrize test_spline_large_2d* over spl_apis...