ANN: SciPy 1.15.0rc2 – please test

Hi all,

On behalf of the SciPy development team, I’m pleased to
announce the pre-release SciPy 1.15.0rc2–please
help us test this version.

Sources and binary wheels can be found at:
https://github.com/scipy/scipy/releases/tag/v1.15.0rc2
and at:
https://pypi.org/project/scipy/1.15.0rc2/

One of a few ways to install this release with pip:
pip install scipy==1.15.0rc2

SciPy 1.15.0 Release Notes

Note: SciPy 1.15.0 is not released yet!

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_to_sparray. Both sparse.linalg and sparse.csgraph
    work 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, tensordot and others. More functionality is coming in future
    releases.

  • Preliminary support for free-threaded Python 3.13.

  • New probability distribution features in scipy.stats can 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.differentiate is a new top-level submodule for accurate
      estimation of derivatives of black box functions.
    • scipy.optimize.elementwise contains new functions for root-finding and
      minimization of univariate functions.
    • scipy.integrate offers new functions cubature, tanhsinh, and
      nsum for multivariate integration, univariate integration, and
      univariate series summation, respectively.
  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.

  • scipy.special adds 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.derivative for first-order derivatives of
    scalar-in, scalar-out functions.
  • Use scipy.differentiate.jacobian for first-order partial derivatives of
    vector-in, vector-out functions.
  • Use scipy.differentiate.hessian for 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.cubature function supports multidimensional
    integration, and has support for approximating integrals with
    one or more sets of infinite limits.
  • scipy.integrate.tanhsinh is now exposed for public use, allowing
    evaluation of a convergent integral using tanh-sinh quadrature.
  • scipy.integrate.nsum evaluates finite and infinite series and their
    logarithms.
  • scipy.integrate.lebedev_rule computes abscissae and weights for
    integration over the surface of a sphere.
  • The QUADPACK Fortran77 package has been ported to C.

scipy.interpolate improvements

  • scipy.interpolate.AAA adds the AAA algorithm for barycentric rational
    approximation of real or complex functions.
  • scipy.interpolate.FloaterHormannInterpolator adds barycentric rational
    interpolation.
  • New functions scipy.interpolate.make_splrep and
    scipy.interpolate.make_splprep implement construction of smoothing splines.
    The algorithmic content is equivalent to FITPACK (splrep and splprep
    functions, and *UnivariateSpline classes) and the user API is consistent
    with make_interp_spline: these functions receive data arrays and return
    a scipy.interpolate.BSpline instance.
  • New generator function scipy.interpolate.generate_knots implements 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 splrep and *UnivariateSpline was using.

scipy.linalg improvements

  • scipy.linalg.interpolative Fortran77 code has been ported to Cython.
  • scipy.linalg.solve supports several new values for the assume_a
    argument, enabling faster computation for diagonal, tri-diagonal, banded, and
    triangular matrices. Also, when assume_a is left unspecified, the
    function now automatically detects and exploits diagonal, tri-diagonal,
    and triangular structures.
  • scipy.linalg matrix 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.funm is faster.
  • scipy.linalg.orthogonal_procrustes now supports complex input.
  • Wrappers for the following LAPACK routines have been added in
    scipy.linalg.lapack: ?lantr, ?sytrs, ?hetrs, ?trcon,
    and ?gtcon.
  • scipy.linalg.expm was rewritten in C.
  • scipy.linalg.null_space now accepts the new arguments overwrite_a,
    check_finite, and lapack_driver.
  • id_dist Fortran code was rewritten in Cython.

scipy.ndimage improvements

  • Several additional filtering functions now support an axes argument
    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_magnitude and generic_filter.
  • The binary and grayscale morphology functions now support an axes
    argument that specifies which axes of the input filtering is to be performed
    on.
  • scipy.ndimage.rank_filter time complexity has improved from n to
    log(n).

scipy.optimize improvements

  • The vendored HiGHS library has been upgraded from 1.4.0 to 1.8.0,
    bringing accuracy and performance improvements to solvers.
  • The MINPACK Fortran77 package has been ported to C.
  • The L-BFGS-B Fortran77 package has been ported to C.
  • The new scipy.optimize.elementwise namespace includes functions
    bracket_root, find_root, bracket_minimum, and find_minimum
    for 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_scalar and 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_evolution now supports more general use of
    workers, such as passing a map-like callable.
  • scipy.optimize.nnls was rewritten in Cython.
  • HessianUpdateStrategy now supports __matmul__.

scipy.signal improvements

  • Add functionality of complex-valued waveforms to signal.chirp().
  • scipy.signal.lombscargle has two new arguments, weights and
    floating_mean, enabling sample weighting and removal of an unknown
    y-offset independently for each frequency. Additionally, the normalize
    argument includes a new option to return the complex representation of the
    amplitude and phase.
  • New function scipy.signal.envelope for 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_sptriangular and
    sparse.linalg.spbandwidth mimic the existing dense tools
    linalg.is_triangular and linalg.bandwidth.
  • sparse.linalg and sparse.csgraph now work with sparse arrays. Be
    careful that your index arrays are 32-bit. We are working on 64bit support.
  • The vendored ARPACK library has been upgraded to version 3.9.1.
  • COO, CSR, CSC and LIL formats now support the axis argument for
    count_nonzero.
  • Sparse arrays and matrices may now raise errors when initialized with
    incompatible data types, such as float16.
  • min, max, argmin, and argmax now support computation
    over nonzero elements only via the new explicit argument.
  • New functions get_index_dtype and safely_cast_index_arrays are
    available to facilitate index array casting in sparse.

scipy.spatial improvements

  • Rotation.concatenate now accepts a bare Rotation object, 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.

    • scipy.special.legendre_p, scipy.special.legendre_p_all
    • scipy.special.assoc_legendre_p, scipy.special.assoc_legendre_p_all
    • scipy.special.sph_harm_y, scipy.special.sph_harm_y_all
    • scipy.special.sph_legendre_p, scipy.special.sph_legendre_p_all,
  • 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 factorial2 and factorialk; for more details,
    check the respective docstrings).

  • scipy.special.zeta now defines the Riemann zeta function on the complex
    plane.

  • scipy.special.softplus computes 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.logsumexp now 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.gdtrib have been improved throughout the domain.
    • scipy.special.hyperu is improved for the case of b=1, small x,
      and small a.
    • scipy.special.logit is improved near the argument p=0.5.
    • scipy.special.rel_entr is improved when x/y overflows, underflows,
      or is close to 1.
  • scipy.special.ndtr is 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 rv_infrastructure for a tutorial.

    • Use scipy.stats.make_distribution to 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.Normal and scipy.stats.Uniform are 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.Mixture can be used to represent mixture distributions.
  • Instances of scipy.stats.Normal, scipy.stats.Uniform, and the classes
    returned by scipy.stats.make_distribution are supported by several new
    mathematical transformations.

    • scipy.stats.truncate for truncation of the support.
    • scipy.stats.order_statistic for 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.lmoment calculates sample l-moments and l-moment
    ratios. Notably, these sample estimators are unbiased.

  • scipy.stats.chatterjeexi computes the Xi correlation coefficient, which
    can detect nonlinear dependence. The function also performs a hypothesis
    test of independence between samples.

  • scipy.stats.wilcoxon has improved method resolution logic for the default
    method='auto'. Other values of method provided by the user are now
    respected in all cases, and the method argument approx has been
    renamed to asymptotic for consistency with similar functions. (Use of
    approx is still allowed for backward compatibility.)

  • There are several new probability distributions:

    • scipy.stats.dpareto_lognorm represents the double Pareto lognormal
      distribution.
    • scipy.stats.landau represents the Landau distribution.
    • scipy.stats.normal_inverse_gamma represents the normal-inverse-gamma
      distribution.
    • scipy.stats.poisson_binom represents the Poisson binomial distribution.
  • Batch calculation with scipy.stats.alexandergovern and
    scipy.stats.combine_pvalues is faster.

  • scipy.stats.chisquare added 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=False disables 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.nct method pdf
    • scipy.stats.crystalball method sf
    • scipy.stats.geom method rvs
    • scipy.stats.cauchy methods logpdf, pdf, ppf and isf
    • The logcdf and/or logsf methods 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.PoissonDisk now accepts lower and upper bounds
    parameters l_bounds and u_bounds.

  • scipy.stats.fisher_exact now 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 scipy_thread_safety 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.special.logsumexp
  • scipy.integrate.trapezoid
  • 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.boxcox_llf
  • scipy.stats.differential_entropy
  • 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.stats.gmean, scipy.stats.hmean and scipy.stats.pmean
  • scipy.stats.combine_pvalues
  • scipy.stats.ttest_ind, scipy.stats.ttest_rel
  • scipy.stats.directional_stats
  • scipy.ndimage functions will now delegate to cupyx.scipy.ndimage,
    and for other backends will transit via NumPy arrays on the host.

Deprecated features

  • Functions scipy.linalg.interpolative.rand and
    scipy.linalg.interpolative.seed have been deprecated and will be removed
    in SciPy 1.17.0.
  • Complex inputs to scipy.spatial.distance.cosine and
    scipy.spatial.distance.correlation have been deprecated and will raise
    an error in SciPy 1.17.0.
  • scipy.spatial.distance.kulczynski1 and
    scipy.spatial.distance.sokalmichener were deprecated and will be removed
    in SciPy 1.17.0.
  • scipy.stats.find_repeats is deprecated as of SciPy 1.15.0 and will be
    removed in SciPy 1.17.0. Please use
    numpy.unique/numpy.unique_counts instead.
  • scipy.linalg.kron is deprecated in favour of numpy.kron.
  • Using object arrays and longdouble arrays in scipy.signal
    convolution/correlation functions (scipy.signal.correlate,
    scipy.signal.convolve and scipy.signal.choose_conv_method) and
    filtering functions (scipy.signal.lfilter, scipy.signal.sosfilt) has
    been deprecated as of SciPy 1.15.0 and will be removed in SciPy
    1.17.0.
  • scipy.stats.linregress has deprecated one-argument use; the two
    variables must be specified as separate arguments.
  • scipy.stats.trapz is deprecated in favor of scipy.stats.trapezoid.
  • scipy.special.lpn is deprecated in favor of scipy.special.legendre_p_all.
  • scipy.special.lpmn and scipy.special.clpmn are deprecated in favor of
    scipy.special.assoc_legendre_p_all.
  • scipy.special.sph_harm has been deprecated in favor of
    scipy.special.sph_harm_y.
  • The raveling of multi-dimensional input by scipy.linalg.toeplitz has
    been deprecated. It will support batching in SciPy 1.17.0.
  • The random_state and permutations arguments of
    scipy.stats.ttest_ind are deprecated. Use method to perform a
    permutation test, instead.

Expired Deprecations

  • The wavelet functions in scipy.signal have been removed. This includes
    daub, qmf, cascade, morlet, morlet2, ricker,
    and cwt. Users should use pywavelets instead.
  • scipy.signal.cmplx_sort has been removed.
  • scipy.integrate.quadrature and scipy.integrate.romberg have been
    removed in favour of scipy.integrate.quad.
  • scipy.stats.rvs_ratio_uniforms has been removed in favor of
    scipy.stats.sampling.RatioUniforms.
  • scipy.special.factorial now raises an error for non-integer scalars when
    exact=True.
  • scipy.integrate.cumulative_trapezoid now raises an error for values of
    initial other than 0 and None.
  • Complex dtypes now raise an error in scipy.interpolate.Akima1DInterpolator
    and scipy.interpolate.PchipInterpolator
  • special.btdtr and special.btdtri have been removed.
  • The default of the exact= kwarg in special.factorialk has changed
    from True to False.
  • All functions in the scipy.misc submodule have been removed.

Backwards incompatible changes

  • interpolate.BSpline.integrate output 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 extrapolate argument.
  • scipy.stats.wilcoxon now respects the method argument provided by the
    user. Previously, even if method='exact' was specified, the function
    would resort to method='approx' in some cases.
  • scipy.integrate.AccuracyWarning has been removed as the functions the
    warning was emitted from (scipy.integrate.quadrature and
    scipy.integrate.romberg) have been removed.

Other changes

  • A separate accompanying type stubs package, scipy-stubs, will be made
    available with the 1.15.0 release. `Installation instructions are
    available: GitHub - jorenham/scipy-stubs: Typing Stubs for SciPy

  • scipy.stats.bootstrap now emits a FutureWarning if 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 axis argument)
    to avoid the warning. Broadcasting will be performed automatically in the
    future.

  • SciPy endorsed SPEC-7,
    which proposes a rng argument to control pseudorandom number generation
    (PRNG) in a standard way, replacing legacy arguments like seed and
    random_sate. In many cases, use of rng will change the behavior of
    the function unless the argument is already an instance of
    numpy.random.Generator.

    • Effective in SciPy 1.15.0:

      • The rng argument 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.qmc classes that consume random numbers, and
        scipy.stats.sobol_indices.
      • When passed by keyword, the rng argument will follow the SPEC 7
        standard behavior: the argument will be normalized with
        np.random.default_rng before 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.0 the legacy argument will start emitting
      warnings, and that in 1.19.0 the default behavior will change.

    • In all cases, users can avoid future disruption by proactively passing
      an instance of np.random.Generator by keyword rng. For details,
      see SPEC-7.

  • The SciPy build no longer adds -std=legacy for 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.sosfreqz has 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.13t have been
    made in: scipy.special, scipy.spatial, scipy.sparse,
    scipy.interpolate.

Authors (commits)

  • endolith (4)
  • h-vetinari (62)
  • a-drenaline (1) +
  • Afleloup (1) +
  • Ahmad Alkadri (1) +
  • Luiz Eduardo Amaral (3) +
  • Virgile Andreani (3)
  • Isaac Alonso Asensio (2) +
  • Matteo Bachetti (1) +
  • Arash Badie-Modiri (1) +
  • Arnaud Baguet (1) +
  • Soutrik Bandyopadhyay (1) +
  • Ankit Barik (1) +
  • Christoph Baumgarten (1)
  • Nickolai Belakovski (3)
  • Krishan Bhasin (1) +
  • Jake Bowhay (89)
  • Michael Bratsch (2) +
  • Matthew Brett (1)
  • Keith Briggs (1) +
  • Olly Britton (145) +
  • Dietrich Brunn (11)
  • Clemens Brunner (1)
  • Evgeni Burovski (185)
  • Matthias Bussonnier (7)
  • CJ Carey (32)
  • Cesar Carrasco (4) +
  • Hood Chatham (1)
  • Aadya Chinubhai (1)
  • Alessandro Chitarrini (1) +
  • Thibault de Coincy (1) +
  • Lucas Colley (217)
  • Martin Diehl (1) +
  • Djip007 (1) +
  • Kevin Doshi (2) +
  • Michael Dunphy (2)
  • Andy Everall (1) +
  • Thomas J. Fan (2)
  • fancidev (60)
  • Sergey Fedorov (2) +
  • Sahil Garje (1) +
  • Gabriel Gerlero (2)
  • Yotam Gingold (1) +
  • Ralf Gommers (110)
  • Rohit Goswami (62)
  • Anil Gurses (1) +
  • Oscar Gustafsson (1) +
  • Matt Haberland (389)
  • Matt Hall (1) +
  • Joren Hammudoglu (6) +
  • CY Han (1) +
  • Daniel Isaac (4) +
  • Maxim Ivanov (1)
  • Jakob Jakobson (2)
  • Janez Demšar (4) +
  • Chris Jerdonek (2) +
  • Adam Jones (4) +
  • Aditi Juneja (1) +
  • Nuri Jung (1) +
  • Guus Kamphuis (1) +
  • Aditya Karumanchi (2) +
  • Robert Kern (5)
  • Agriya Khetarpal (11)
  • Andrew Knyazev (7)
  • Gideon Genadi Kogan (1) +
  • Damien LaRocque (1) +
  • Eric Larson (10)
  • Gregory R. Lee (4)
  • Linfye (1) +
  • Boyu Liu (1) +
  • Drew Allan Loney (1) +
  • Christian Lorentzen (1)
  • Loïc Estève (2)
  • Smit Lunagariya (1)
  • Henry Lunn (1) +
  • Marco Maggi (4)
  • Lauren Main (1) +
  • Martin Spišák (1) +
  • Mateusz Sokół (4)
  • Jan-Kristian Mathisen (1) +
  • Nikolay Mayorov (2)
  • Nicholas McKibben (1)
  • Melissa Weber Mendonça (62)
  • João Mendes (10)
  • Gian Marco Messa (1) +
  • Samuel Le Meur-Diebolt (1) +
  • Michał Górny (2)
  • Naoto Mizuno (2)
  • Nicolas Mokus (2)
  • musvaage (18) +
  • Andrew Nelson (88)
  • Jens Hedegaard Nielsen (1) +
  • Roman Nigmatullin (8) +
  • Nick ODell (37)
  • Yagiz Olmez (4)
  • Matti Picus (9)
  • Diogo Pires (5) +
  • Ilhan Polat (96)
  • Zachary Potthoff (1) +
  • Tom M. Ragonneau (2)
  • Peter Ralph (1) +
  • Stephan Rave (1) +
  • Tyler Reddy (182)
  • redha2404 (2) +
  • Ritvik1sharma (1) +
  • Érico Nogueira Rolim (1) +
  • Heshy Roskes (1)
  • Pamphile Roy (34)
  • Mikhail Ryazanov (1) +
  • Sina Saber (1) +
  • Atsushi Sakai (1)
  • Clemens Schmid (1) +
  • Daniel Schmitz (17)
  • Moritz Schreiber (1) +
  • Dan Schult (91)
  • Searchingdays (1) +
  • Matias Senger (1) +
  • Scott Shambaugh (1)
  • Zhida Shang (1) +
  • Sheila-nk (4)
  • Romain Simon (2) +
  • Gagandeep Singh (31)
  • Albert Steppi (40)
  • Kai Striega (1)
  • Anushka Suyal (143) +
  • Alex Szatmary (1)
  • Svetlin Tassev (1) +
  • Ewout ter Hoeven (1)
  • Tibor Völcker (4) +
  • Kanishk Tiwari (1) +
  • Yusuke Toyama (1) +
  • Edgar Andrés Margffoy Tuay (124)
  • Adam Turner (2) +
  • Nicole Vadot (1) +
  • Andrew Valentine (1)
  • Christian Veenhuis (2)
  • vfdev (2) +
  • Pauli Virtanen (2)
  • Simon Waldherr (1) +
  • Stefan van der Walt (2)
  • Warren Weckesser (23)
  • Anreas Weh (1)
  • Benoît Wygas (2) +
  • Pavadol Yamsiri (3) +
  • ysard (1) +
  • Xiao Yuan (2)
  • Irwin Zaid (12)
  • Gang Zhao (1)
  • ਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (10)

A total of 149 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.

Complete issue and PR lists are available in the raw release notes available at https://github.com/scipy/scipy/releases/download/v1.15.0rc2/README.txt

Checksums

MD5

91712b202e4aaba2e24b7685b6cbc2d9  Changelog
99193b45efb17b3aa649594075d24cc9  README.txt
de017ce8a4a57fcef82d8e9470d0a13a  scipy-1.15.0rc2-cp310-cp310-macosx_10_13_x86_64.whl
18dbc712d270ff7a0eb21139fd206a94  scipy-1.15.0rc2-cp310-cp310-macosx_12_0_arm64.whl
4d598029ecaf482cd9f4af229401b0a6  scipy-1.15.0rc2-cp310-cp310-macosx_14_0_arm64.whl
19040592819f1675f6ac8e639a2ba363  scipy-1.15.0rc2-cp310-cp310-macosx_14_0_x86_64.whl
a59349eaa052dc314f11008363c44e8c  scipy-1.15.0rc2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
616e5f6c13f3a0d6c5400810daa4b3e9  scipy-1.15.0rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
8178fac86aae810c706bd777d02fb1b9  scipy-1.15.0rc2-cp310-cp310-musllinux_1_2_x86_64.whl
beb951a5f4042cf9d2d03454a7ac0a2e  scipy-1.15.0rc2-cp310-cp310-win_amd64.whl
7f11e4de91abcc8fccbbbf55b8aeda44  scipy-1.15.0rc2-cp311-cp311-macosx_10_13_x86_64.whl
52d1021765431b2e1de63e58d5d2fbf6  scipy-1.15.0rc2-cp311-cp311-macosx_12_0_arm64.whl
6c6de9c0b4416dd01a8099a727003ca9  scipy-1.15.0rc2-cp311-cp311-macosx_14_0_arm64.whl
93f12af706e2e9bc340a21ac0f91e88a  scipy-1.15.0rc2-cp311-cp311-macosx_14_0_x86_64.whl
706c7f25669bfa78d0b64c7ba0c4ee27  scipy-1.15.0rc2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
2b19e0269ef035249529ad6eaa32dbb0  scipy-1.15.0rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
474cd60524956250672e01cab35221e5  scipy-1.15.0rc2-cp311-cp311-musllinux_1_2_x86_64.whl
b68e5d57ce71d33d8ad067cbef4f9570  scipy-1.15.0rc2-cp311-cp311-win_amd64.whl
31818c87e270e756bc881987c64d70d1  scipy-1.15.0rc2-cp312-cp312-macosx_10_13_x86_64.whl
aaf1ac6b38fedd1ba697ab44ee4ff44a  scipy-1.15.0rc2-cp312-cp312-macosx_12_0_arm64.whl
f3a2f76145cf68d8f1c098dfb090d9d1  scipy-1.15.0rc2-cp312-cp312-macosx_14_0_arm64.whl
992f964ca59035c0c05bd7ccc34085d3  scipy-1.15.0rc2-cp312-cp312-macosx_14_0_x86_64.whl
2aaf73e202aba7b2fbb8dbf726fa2b87  scipy-1.15.0rc2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e0484a72f913b5d25462de15ab717bda  scipy-1.15.0rc2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e078709f2b58b6f2193cc480af03876f  scipy-1.15.0rc2-cp312-cp312-musllinux_1_2_x86_64.whl
7bd0e7a0bb9133135690c161026e7822  scipy-1.15.0rc2-cp312-cp312-win_amd64.whl
be8184ada43039e03697bc76d275c393  scipy-1.15.0rc2-cp313-cp313-macosx_10_13_x86_64.whl
a75a16382cf980bf804f5909acc50822  scipy-1.15.0rc2-cp313-cp313-macosx_12_0_arm64.whl
082889ff17c4eda64ca24dedf08e8ebe  scipy-1.15.0rc2-cp313-cp313-macosx_14_0_arm64.whl
d2e032f7ed06d263f497fb0aba30b230  scipy-1.15.0rc2-cp313-cp313-macosx_14_0_x86_64.whl
cf8d772e273d83f956842d84d8d3b0ee  scipy-1.15.0rc2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
7b08188c60cf69b9a0a31359dace0598  scipy-1.15.0rc2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
3ecc2184d5d5fae3631b96f58eccbba9  scipy-1.15.0rc2-cp313-cp313-musllinux_1_2_x86_64.whl
ab8858121f835338216a1dcc53a975d9  scipy-1.15.0rc2-cp313-cp313-win_amd64.whl
cb8fa930f43f5de0cfe391b4ef8c13b3  scipy-1.15.0rc2-cp313-cp313t-macosx_10_13_x86_64.whl
594348a625286a7b43b95bb387392bd7  scipy-1.15.0rc2-cp313-cp313t-macosx_12_0_arm64.whl
3c6ccf14bc8e4e2b9887f212ad67f61b  scipy-1.15.0rc2-cp313-cp313t-macosx_14_0_arm64.whl
06ebb3a7e5b70690f9a0446ad11be150  scipy-1.15.0rc2-cp313-cp313t-macosx_14_0_x86_64.whl
65c89af8ab3d68f1586cfd5058d0ffc8  scipy-1.15.0rc2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
e052a3019fb87664ac5217852490ed1e  scipy-1.15.0rc2-cp313-cp313t-musllinux_1_2_x86_64.whl
f97443465242c7f8f2168cb2fdf5be05  scipy-1.15.0rc2-cp313-cp313t-win_amd64.whl

SHA256

0e6e79c28e48606d9815a91d358c21ee985912fd5f75272358e99abecd03f5c1  Changelog
a1e45376967ad492b6179d6d8710a98769d2b7341357030feff0404f2091df8d  README.txt
4cd9b6ed29bbbf49a9bdd545ed7674e7051be4cb878912e0688d844203883dc2  scipy-1.15.0rc2-cp310-cp310-macosx_10_13_x86_64.whl
d85927f8627d41eced6fee81eabc6dbfb79ba1cc32787f206df0a9e0a577a2a2  scipy-1.15.0rc2-cp310-cp310-macosx_12_0_arm64.whl
8984b4ec0ebd0d37491873195b3f0b76fce4bf54f32664dd1a91469cc9691da8  scipy-1.15.0rc2-cp310-cp310-macosx_14_0_arm64.whl
dcf7f7d8ff031f778e59aa347cc11fc75b686c3c86e24078d6af739140399f67  scipy-1.15.0rc2-cp310-cp310-macosx_14_0_x86_64.whl
c76fdf424dce95b4a53e7b2361155724917452faf25c4ebb59236dc242a11b1b  scipy-1.15.0rc2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
a9f6a7566ae2ad107da84d5c7803c0515d1da7367e249bc45530ac4eae87a39b  scipy-1.15.0rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
4854237709458760bac6b019c7da2f324dd586fcf1b1cb7785359a9f9c92e954  scipy-1.15.0rc2-cp310-cp310-musllinux_1_2_x86_64.whl
c0d03586a147568c253ee7e6b4a42928e7ee770cbe0e528973e3d4ee18c000f8  scipy-1.15.0rc2-cp310-cp310-win_amd64.whl
94b7dcc4f50d8b092d48e527ddf75118e7a2caade72a657e03c4997e7858e130  scipy-1.15.0rc2-cp311-cp311-macosx_10_13_x86_64.whl
2f65762dce474325bb8e7f1279f83d3221e395b4795da5ce1e26f1b3c3f2d9b6  scipy-1.15.0rc2-cp311-cp311-macosx_12_0_arm64.whl
8b25fe034cd816ce3b40403b348241b656397739c91e67add7ac1d90d3e7bd5a  scipy-1.15.0rc2-cp311-cp311-macosx_14_0_arm64.whl
9fd3f26603909378885baaee713bee2638f1868906050a6d3bf8637c4729767f  scipy-1.15.0rc2-cp311-cp311-macosx_14_0_x86_64.whl
32c3cc072224917dc5d6b7fc66ad4e5a8d4bb13b08a9b71bb6a1a57a3c67524f  scipy-1.15.0rc2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
abedfb91a079683941e3a29aaeedd25507344f8e29aa5c4ad4a91e59eee5773f  scipy-1.15.0rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
18ac5cf2392487ad4a4f8f3494350145ba07cdaa7bc365231533c6fc1d306529  scipy-1.15.0rc2-cp311-cp311-musllinux_1_2_x86_64.whl
2fedab6706643b5ae6b0688ccf5b5f664b181be15b8612f2f280ff1c3481506f  scipy-1.15.0rc2-cp311-cp311-win_amd64.whl
d639d6bbfa9d7da858a464d00fd0a2a2122149eaa1436f6619b2045810a3c0a8  scipy-1.15.0rc2-cp312-cp312-macosx_10_13_x86_64.whl
579cd378f11999ceab0e205a9866dcb7b7af1ec66f3a4692d30d3e081eb5cc63  scipy-1.15.0rc2-cp312-cp312-macosx_12_0_arm64.whl
7e4a494a8aaf0f173d48ba3f2ad87305317e8bf899f378a89ae6397a9c9e2095  scipy-1.15.0rc2-cp312-cp312-macosx_14_0_arm64.whl
c8f2a3431702ff397c07b5112838da87a7af7790b42530b7854bead9f350ac5b  scipy-1.15.0rc2-cp312-cp312-macosx_14_0_x86_64.whl
71f42601b91b766a3fd653c3bd9209f24141c54e6a3fb955d395d12c08f1a3a9  scipy-1.15.0rc2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
5bfed2bec94bfc6805ec28e7c28e192bca9be739cdb442adc8aa915ef9f3ecc8  scipy-1.15.0rc2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
1766cc370dd82e913f76315918ecf54a261e378eb4c99c6a6f6abf432afb22b2  scipy-1.15.0rc2-cp312-cp312-musllinux_1_2_x86_64.whl
5609dd6800a0d2532039393ec35c4535e3604db313927e3e33169a9963750cd3  scipy-1.15.0rc2-cp312-cp312-win_amd64.whl
ad5bef14a6c89dd02327b0b2a81aeadcaf8094bd7bf525af8f29cf590f266879  scipy-1.15.0rc2-cp313-cp313-macosx_10_13_x86_64.whl
505a2214c2f413891863dfabd0688614af3aad61fc2addd372e3142dbf545e2f  scipy-1.15.0rc2-cp313-cp313-macosx_12_0_arm64.whl
da94621303b8909a37c9babad6a892b47c2ef58686b1755ed93b8faf4b818f89  scipy-1.15.0rc2-cp313-cp313-macosx_14_0_arm64.whl
bbe750574d9b3a43e1fbe6b7f4ac7a20ec3cc274eafa8d8258128550b4b3d6fa  scipy-1.15.0rc2-cp313-cp313-macosx_14_0_x86_64.whl
df0c2bfcb90e1300f2295205c10e0686f0e86075a17e5fd429a41f998b5ef95b  scipy-1.15.0rc2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
e0cdbbf6b3c9cbe2bba9209009031245599e509f9f2b4a60cfe5f78819af6f70  scipy-1.15.0rc2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
688d4d4ce08a77293078769c1b1a7d54d4a76dd9c9f89bad22777a26e7837162  scipy-1.15.0rc2-cp313-cp313-musllinux_1_2_x86_64.whl
1d69e21fba1128aefa1d079e8ec0c000b288b525b1877806923cc3856e953898  scipy-1.15.0rc2-cp313-cp313-win_amd64.whl
b341bfa836ceff4ec95e7b0369d084a7203798f55a78d4039880bfd90e116035  scipy-1.15.0rc2-cp313-cp313t-macosx_10_13_x86_64.whl
eb3057ded4bb6681aca9369382138b2b516e7c55ad235975b263e1413608999e  scipy-1.15.0rc2-cp313-cp313t-macosx_12_0_arm64.whl
b98a329628cae98339fbe61ddfb46d6da6aebe5ca9cad642566964dcc3c7bacf  scipy-1.15.0rc2-cp313-cp313t-macosx_14_0_arm64.whl
21a1c7a155bcaf9d7a2896b3c9045d2bb70f0579e4e0839ee0da6b8ee80a5bc3  scipy-1.15.0rc2-cp313-cp313t-macosx_14_0_x86_64.whl
a01673d84eaf656a2a074736c04411c4c782c91a51132c99e0fc3c8b8c9f8056  scipy-1.15.0rc2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
d8994499152d435034d0bd1e56a372bbafd35115aaa9f3c9aa99468e8a8d8af1  scipy-1.15.0rc2-cp313-cp313t-musllinux_1_2_x86_64.whl
f2d80cdb9bfe4c74be66beb7d06dcad99ca04cbc6087673b7d2ec7b2672270bc  scipy-1.15.0rc2-cp313-cp313t-win_amd64.whl
4 Likes

Thank you Tyler for managing this release!

вт, 24 дек. 2024 г., 17:26 Tyler Reddy via Scientific Python <noreply@discuss.scientific-python.org>:

Thank you, Tyler, and congratulations to the team: that’s an impressive amount of work!