Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updating this scipy to match the master #3

Merged
merged 123 commits into from
Mar 11, 2020

Conversation

ryanlu41
Copy link

Reference issue

What does this implement/fix?

Additional information

mdhaber and others added 30 commits December 18, 2019 09:50
As reported in gh-10722, solve_triangular can be quite slow. Replacing
with direct call to dtrsv is faster.
…B in Fortran order"

This reverts commit f065d85 to undo
changes to doc/scipy-sphinx-theme.
This commit adds the tests f07vef and v07vsf from the NAG examples for
real and complex cases respectively. These are available at:

    * https://www.nag.com/numeric/fl/nagdoc_latest/html/f07/f07vef.html
    * https://www.nag.com/numeric/fl/nagdoc_latest/html/f07/f07vsf.html

The function being tested still takes the input matrix `ab` not `a` as
prescribed in #gh-11190.
This commit adds a Python wrapper for the set of LAPACK functions
?tbtrs. This solves a triangular system of the form:

    A * X = B or A**T * X = B,

The signature differs from the signature proposed in gh-11190 as the
matrix `a` is expected, rather than `ab`. This was chosen to follow the
documented signature used in LAPACK.
The test tests whether the system Ax = b is calculated correctly for
each of float, double, complex float and complex double type values.
Previously the value of b was constrained to being a real value inside a
complex datatype (i.e. a + 0j). This has now been fixed such that b may
cover all potential complex numbers.
This commit adds test for the transpose and conjugate transpose
arguments these correspond to the systems of:

    A.T x = b and A.H x = b

respectively. Some complexity was added in the parameterization as the
complex conjugate does not exist for real data types (float32 and
float64).
?tbtrs checks for singular matrices by identifying any zero elements in
the diagonal. If the i-th diagonal element of A is singular then `info`
should be equal to i. Note that this uses Fortran indexing.
This commit tests the precondition that the leading dimension of b (ldb)
is greater than the minimum allowed order of matrix A (n + 1).
This PR changes definitions of the leading dimensions to

``MAX(1, shape(?, n)``

This prevents segfaults in cases where the leading
dimension is 0.
This kind of setting would be used a lot in numerical simulations, like numerical PDE, I was confused a bit on how to get it, so maybe someone else would be confused too. It would be nice to have such an example for them so they can easily plug in and run.
Critical sections (indptr, indices and data array creations) are now
implemented in Cython.
Added a tutorial.  Reference kstwo from multiple locations.
Added default shape parameters for testing, and added to list of fails_cmplx.
Change stats.kstwo's momtype from the default of 1, which uses self.ppf(),
to 0, which uses self.pdf() when computing the distribution's moments.
Added kolmogni(n, q) in _ksstats.py to calculate the ppf/isf for kstwo.

Fixed a general bug in rv_continuous._ppf_single(): If self.a is 0, it
incorrectly used -10 as the left-hand endpoint of the seach interval passed to
optimize.brentq.
If a distribution is excluded from the basic entropy calculation in
test_continuous_basic.py, also exclude it from the private_entropy, vec_entropy
and entropy_vect_scale entropy calculations.

Lower n=100 to n=10 in the example parameters for kstwo in _distr_params.py.
Inside TestKSTwo:
- Add test_isf_of_sf() and test_isf_of_sf_sqrtn() methods.
- Keep CDFs and SFs away from 1 when doing round-trip cdf/ppf sf/isf tests, as
these are subject to more error due to the extreme flatness of the function at
the end-points. (Computing the sf(isf(n, 1-p, n), n) for a CDF probability p
close to 1 works fine, as does cdf(ppf(1-p, n), n).)

All this reduces the computation time in in the kstwo tests by a factor of ~10.
cycentum and others added 28 commits March 1, 2020 14:19
Closes gh-11058. Add `log_softmax` to `special/_logsumexp.py` and
unit tests for it to special/tests/test_log_softmax.py.
MAINT: Remove Python2 module init
MAINT: Fixed several unused imports and unused assignments in scipy/interpolate
MAINT: Remove Python 2 workarounds
* matplotlib 3.2.0 stable is out, so we shouldn't
need guards for the release candidate (and Python 3.6
should be ok with it too)

* also unpin matplotlib from 3.2.0rc1 in Travis CI

* pin matplotlib to 3.1.3 version for 32-bit Linux
Azure CI run because of unclear issue with 3.2.0
install there
…uards

MAINT, TST: adjust azure for matplotlib release
* borrow/adjust openblas_support.py used
in the NumPy project as a common handling
point for OpenBLAS-related version checking
& downloads

* adjust test_version() function to use scipy.linalg
instead of NumPy for checking the linked in OpenBLAS
version; also, increase the sensitivity of this function
so it can distinguish between development & stable
releases of OpenBLAS

* adjust openblas_support.py to print out the
download error for openblas when it fails

* openblas_support.py now uses anaconda.org instead
of rackspace, as the NumFOCUS ecosystem is migrating
off the latter; as part of this, add some logic
to overcome the anti-scraping behavior at anaconda.org
so we can still download files programmatically

* adjust azure pipelines configuration to leverage
openblas_support.py to retrieve OpenBLAS & verify
version linked to SciPy; version verification
is not possible on Windows (this is also true
for NumPy)

* the version of OpenBLAS used for Azure CI
has been bumped to 0.3.8.dev from 0.3.7 stable
as part of this change
This is the only way to tell the compiler that the value is a constant
which may be inlined instead of read from memory.
MAINT: Define ARRAY_ANYORDER with DEF instead of cdef
Revert to old behaviour for constant cost matrices in `linear_sum_assignment`
MAINT: Cleanup uses of PY_VERSION_HEX, NPY_PY3K in ndimage
MAINT: Remove unnecessary 'from __future__ import ...' statements
* Converting `np.integer` or `np.signedinteger` to a dtype is
deprecated in NumPy master (and causes failures in our Travis
CI NumPy pre-release wheel tests)

* repair the single violation of this deprecation in our
source code, in binom_test()
DOC: Update paper URL in lambertw documentation
MAINT: Cleanup uses of PY_VERSION_HEX
MAINT: Remove unnecessary 'from __future__ import ...' statements
MAINT: Fix BLAS3 trmm wrapper for "side" arg
@ryanlu41 ryanlu41 merged commit 250ae35 into NeuroDataDesign:master Mar 11, 2020
ryanlu41 pushed a commit that referenced this pull request May 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet