Subject: CVS commit: pkgsrc/math/py-scipy
From: Adam Ciarcinski
Date: 2023-07-12 18:26:29
Message id: 20230712162629.C817CFBDB@cvs.NetBSD.org

Log Message:
py-scipy: updated to 1.11.1

SciPy 1.11.1

Issues closed for 1.11.1

BUG: run method of scipy.odr.ODR class fails when delta0 parameter...
BUG: segfault in \`scipy.linalg.lu\` on x86_64 windows and macos...
BUG: factorial return type inconsistent for 0-dim arrays
determinant of a 1x1 matrix returns an array, not a scalar
Licensing concern

Pull requests for 1.11.1

BUG: Fix work array construction for various weight shapes.
REL, MAINT: prep for 1.11.1
BUG: fix handling for \`factorial(..., exact=False)\` for 0-dim...
FIX:linalg.lu:Guard against permute_l out of bound behavior
MAINT:linalg.det:Return scalars for singleton inputs
MAINT: fix unuran licensing

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

This release requires Python 3.9+ and NumPy 1.21.6 or greater.

For running on PyPy, PyPy3 6.0+ is required.

**************************
Highlights of this release
**************************

- Several `scipy.sparse` array API improvements, including `sparse.sparray`, a new
  public base class distinct from the older `sparse.spmatrix` class,
  proper 64-bit index support, and numerous deprecations paving the way to a
  modern sparse array experience.
- `scipy.stats` added tools for survival analysis, multiple hypothesis testing,
  sensitivity analysis, and working with censored data.
- A new function was added for quasi-Monte Carlo integration, and linear
  algebra functions ``det`` and ``lu`` now accept nD-arrays.
- An ``axes`` argument was added broadly to ``ndimage`` functions, facilitating
  analysis of stacked image data.

************
New features
************

`scipy.integrate` improvements
==============================
- Added `scipy.integrate.qmc_quad` for quasi-Monte Carlo integration.
- For an even number of points, `scipy.integrate.simpson` now calculates
  a parabolic segment over the last three points which gives improved
  accuracy over the previous implementation.

`scipy.cluster` improvements
============================
- ``disjoint_set`` has a new method ``subset_size`` for providing the size
  of a particular subset.

`scipy.constants` improvements
================================
- The ``quetta``, ``ronna``, ``ronto``, and ``quecto`` SI prefixes were added.

`scipy.linalg` improvements
===========================
- `scipy.linalg.det` is improved and now accepts nD-arrays.
- `scipy.linalg.lu` is improved and now accepts nD-arrays. With the new
  ``p_indices`` switch the output permutation argument can be 1D ``(n,)``
  permutation index instead of the full ``(n, n)`` array.

`scipy.ndimage` improvements
============================
- ``axes`` argument was added to ``rank_filter``, ``percentile_filter``,
  ``median_filter``, ``uniform_filter``, ``minimum_filter``,
  ``maximum_filter``, and ``gaussian_filter``, which can be useful for
  processing stacks of image data.

`scipy.optimize` improvements
=============================
- `scipy.optimize.linprog` now passes unrecognized options directly to HiGHS.
- `scipy.optimize.root_scalar` now uses Newton's method to be used without
  providing ``fprime`` and the ``secant`` method to be used without a second
  guess.
- `scipy.optimize.lsq_linear` now accepts ``bounds`` arguments of type
  `scipy.optimize.Bounds`.
- `scipy.optimize.minimize` ``method='cobyla'`` now supports simple bound
  constraints.
- Users can opt into a new callback interface for most methods of
  `scipy.optimize.minimize`: If the provided callback callable accepts
  a single keyword argument, ``intermediate_result``, `scipy.optimize.minimize`
  now passes both the current solution and the optimal value of the objective
  function to the callback as an instance of `scipy.optimize.OptimizeResult`.
  It also allows the user to terminate optimization by raising a
  ``StopIteration`` exception from the callback function.
  `scipy.optimize.minimize` will return normally, and the latest solution
  information is provided in the result object.
- `scipy.optimize.curve_fit` now supports an optional ``nan_policy`` argument.
- `scipy.optimize.shgo` now has parallelization with the ``workers`` argument,
  symmetry arguments that can improve performance, class-based design to
  improve usability, and generally improved performance.

`scipy.signal` improvements
===========================
- ``istft`` has an improved warning message when the NOLA condition fails.

`scipy.sparse` improvements
===========================
- A new public base class `scipy.sparse.sparray` was introduced, allowing further
  extension of the sparse array API (such as the support for 1-dimensional
  sparse arrays) without breaking backwards compatibility.
  `isinstance(x, scipy.sparse.sparray)` to select the new sparse array classes,
  while `isinstance(x, scipy.sparse.spmatrix)` selects only the old sparse
  matrix classes.
- Division of sparse arrays by a dense array now returns sparse arrays.
- `scipy.sparse.isspmatrix` now only returns `True` for the sparse matrices \ 
instances.
  `scipy.sparse.issparse` now has to be used instead to check for instances of sparse
  arrays or instances of sparse matrices.
- Sparse arrays constructed with int64 indices will no longer automatically
  downcast to int32.
- The ``argmin`` and ``argmax`` methods now return the correct result when explicit
  zeros are present.

`scipy.sparse.linalg` improvements
==================================
- dividing ``LinearOperator`` by a number now returns a
  ``_ScaledLinearOperator``
- ``LinearOperator`` now supports right multiplication by arrays
- ``lobpcg`` should be more efficient following removal of an extraneous
  QR decomposition.

`scipy.spatial` improvements
============================
- Usage of new C++ backend for additional distance metrics, the majority of
  which will see substantial performance improvements, though a few minor
  regressions are known. These are focused on distances between boolean
  arrays.

`scipy.special` improvements
============================
- The factorial functions ``factorial``, ``factorial2`` and ``factorialk``
  were made consistent in their behavior (in terms of dimensionality,
  errors etc.). Additionally, ``factorial2`` can now handle arrays with
  ``exact=True``, and ``factorialk`` can handle arrays.

`scipy.stats` improvements
==========================

New Features
------------
- `scipy.stats.sobol_indices`, a method to compute Sobol' sensitivity indices.
- `scipy.stats.dunnett`, which performs Dunnett's test of the means of multiple
  experimental groups against the mean of a control group.
- `scipy.stats.ecdf` for computing the empirical CDF and complementary
  CDF (survival function / SF) from uncensored or right-censored data. This
  function is also useful for survival analysis / Kaplan-Meier estimation.
- `scipy.stats.logrank` to compare survival functions underlying samples.
- `scipy.stats.false_discovery_control` for adjusting p-values to control the
  false discovery rate of multiple hypothesis tests using the
  Benjamini-Hochberg or Benjamini-Yekutieli procedures.
- `scipy.stats.CensoredData` to represent censored data. It can be used as
  input to the ``fit`` method of univariate distributions and to the new
  ``ecdf`` function.
- Filliben's goodness of fit test as ``method='Filliben'`` of
  `scipy.stats.goodness_of_fit`.
- `scipy.stats.ttest_ind` has a new method, ``confidence_interval`` for
  computing a confidence interval of the difference between means.
- `scipy.stats.MonteCarloMethod`, `scipy.stats.PermutationMethod`, and
  `scipy.stats.BootstrapMethod` are new classes to configure resampling and/or
  Monte Carlo versions of hypothesis tests. They can currently be used with
  `scipy.stats.pearsonr`.

Files:
RevisionActionfile
1.67modifypkgsrc/math/py-scipy/Makefile
1.25modifypkgsrc/math/py-scipy/PLIST
1.44modifypkgsrc/math/py-scipy/distinfo