reduced number of test failure cases for hyperu
ENH: Improve cryptic error messages for invalid FFT sizes

fft([]) used to produce "error: (n>0&&n<=size(x)) failed for 1st keyword n: zrfft:n=0".  Now it says "ValueError: Invalid number of FFT data points (0) specified."

BUG: Also fix my previous error message for fftn that would raise TypeError if s were a tuple.
ENH: weave: replace md5 with SHA-256

use more secure hash algorithm -- NIST approved SHA-256
update documentation related to this change
Merge pull request #2969 from TomasTomecek/use-sha-instead-of-md5

ENH: weave: replace md5 with SHA-256
Merge pull request #2934 from gertingold/gh-2287

ENH: special: reduce number of test failure cases for hyperu

As was mentioned in gh-2909, there exists still a pretty large number of test cases for hyperu which fail. One of the reasons is the evaluation of the integral representation of U by means of Gauss-Legrendre quadrature which is done for A>=0. However, for 1>A>=0, the integrand has an integrable divergence at zero which prevents the Gauss-Legendre quadrature from converging. This PR adjusts the condition on A accordingly.
DOC: integrate: move the quad_explain() text to quad() docstring

There's no real reason to keep the documentation in a different place.
DOC: optimize: reformat show_options + fix links to it

Make show_options look better in HTML, and make the links to it
clickable.
MAINT: expm speedup for small matrices by computing exact one-norm instead of estimating
MAINT: naming typos
ENH: sparse: support out= argument in __numpy_ufunc__

This makes several more Numpy ufunc calls to work.
TST: sparse: add test for ndarray dense in-place ops
Merge pull request #2972 from argriffing/bench-onenormest

ENH: sparse: expm speedup for small matrices, through benchmarked one-norm estimation vs. calculation tradeoffs.

In the current scipy expm implementation, estimation of the 1-norm of
matrix products and powers dominates the computation time for the expm
of small matrices. While for large or sparse matrices this 1-norm can be
estimated using clever tricks that are much faster than exact calculation,
for small matrices it is faster to just multiply them out and compute the
1-norm exactly. This PR does some related benchmarking and adds an
arbitrary threshold below which the 1-norm is computed exactly within
the expm calculation.
MAINT: use numpy functions instead of my worse home-made functions
Merge pull request #2940 from pv/sparse-ufunc-out

ENH: sparse: Add support for out= argument in __numpy_ufunc__
Merge pull request #2977 from argriffing/remove-custom-complex-type-detection

MAINT: sparse: use numpy functions instead of home-made functions
BUG: weave: fix issues with temporary directory usage
TST: weave: fix tests on windows
Merge branch 'weave-security-fix' into master.

Reviewed offline because it was marked CVE.
DOC: add 0.12.1 release notes.
TST: increase test coverage of stats module.