Skip to main content
`Ctrl`+`K`

# SciPy 0.16.0 Release Notes

SciPy 0.16.0 is the culmination of 7 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. Moreover, our development attention will now shift to bug-fix releases on the 0.16.x branch, and on adding new features on the master branch.

This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.6.2 or greater.

Highlights of this release include:

- A Cython API for BLAS/LAPACK in `scipy.linalg`

- A new benchmark suite. It’s now straightforward to add new benchmarks, and they’re routinely included with performance enhancement PRs.

- Support for the second order sections (SOS) format in `scipy.signal`.

## New features

### Benchmark suite

The benchmark suite has switched to using Airspeed Velocity for benchmarking. You can run the suite locally via `python runtests.py --bench`. For more details, see `benchmarks/README.rst`.

### `scipy.linalg` improvements

A full set of Cython wrappers for BLAS and LAPACK has been added in the modules `scipy.linalg.cython_blas` and `scipy.linalg.cython_lapack`. In Cython, these wrappers can now be cimported from their corresponding modules and used without linking directly against BLAS or LAPACK.

The functions `scipy.linalg.qr_delete`, `scipy.linalg.qr_insert` and `scipy.linalg.qr_update` for updating QR decompositions were added.

The function `scipy.linalg.solve_circulant` solves a linear system with a circulant coefficient matrix.

The function `scipy.linalg.invpascal` computes the inverse of a Pascal matrix.

The function `scipy.linalg.solve_toeplitz`, a Levinson-Durbin Toeplitz solver, was added.

Added wrapper for potentially useful LAPACK function `*lasd4`. It computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. See its LAPACK documentation and unit tests for it to get more info.

Added two extra wrappers for LAPACK least-square solvers. Namely, they are `*gelsd` and `*gelsy`.

Wrappers for the LAPACK `*lange` functions, which calculate various matrix norms, were added.

Wrappers for `*gtsv` and `*ptsv`, which solve `A*X = B` for tri-diagonal matrix `A`, were added.

### `scipy.signal` improvements

Support for second order sections (SOS) as a format for IIR filters was added. The new functions are:

- `scipy.signal.sosfilt`

- `scipy.signal.sosfilt_zi`,

- `scipy.signal.sos2tf`

- `scipy.signal.sos2zpk`

- `scipy.signal.tf2sos`

- `scipy.signal.zpk2sos`.

Additionally, the filter design functions iirdesign, iirfilter, butter, cheby1, cheby2, ellip, and bessel can return the filter in the SOS format.

The function `scipy.signal.place_poles`, which provides two methods to place poles for linear systems, was added.

The option to use Gustafsson’s method for choosing the initial conditions of the forward and backward passes was added to `scipy.signal.filtfilt`.

New classes `TransferFunction`, `StateSpace` and `ZerosPolesGain` were added. These classes are now returned when instantiating `scipy.signal.lti`. Conversion between those classes can be done explicitly now.

An exponential (Poisson) window was added as `scipy.signal.exponential`, and a Tukey window was added as `scipy.signal.tukey`.

The function for computing digital filter group delay was added as `scipy.signal.group_delay`.

The functionality for spectral analysis and spectral density estimation has been significantly improved: `scipy.signal.welch` became ~8x faster and the functions `scipy.signal.spectrogram`, `scipy.signal.coherence` and `scipy.signal.csd` (cross-spectral density) were added.

`scipy.signal.lsim` was rewritten - all known issues are fixed, so this function can now be used instead of `lsim2`; `lsim` is orders of magnitude faster than `lsim2` in most cases.

### `scipy.sparse` improvements

The function scipy.sparse.norm, which computes sparse matrix norms, was added.

The function `scipy.sparse.random`, which allows to draw random variates from an arbitrary distribution, was added.

### `scipy.spatial` improvements

`scipy.spatial.cKDTree` has seen a major rewrite, which improved the performance of the `query` method significantly, added support for parallel queries, pickling, and options that affect the tree layout. See pull request 4374 for more details.

The function `scipy.spatial.procrustes` for Procrustes analysis (statistical shape analysis) was added.

### `scipy.stats` improvements

The Wishart distribution and its inverse have been added, as `scipy.stats.wishart` and `scipy.stats.invwishart`.

The Exponentially Modified Normal distribution has been added as `scipy.stats.exponnorm`.

The Generalized Normal distribution has been added as `scipy.stats.gennorm`.

All distributions now contain a `random_state` property and allow specifying a specific `numpy.random.RandomState` random number generator when generating random variates.

Many statistical tests and other `scipy.stats` functions that have multiple return values now return `namedtuples`. See pull request 4709 for details.

### `scipy.optimize` improvements

A new derivative-free method DF-SANE has been added to the nonlinear equation system solving function `scipy.optimize.root`.

## Deprecated features

`scipy.stats.pdf_fromgamma` is deprecated. This function was undocumented, untested and rarely used. Statsmodels provides equivalent functionality with `statsmodels.distributions.ExpandedNormal`.

`scipy.stats.fastsort` is deprecated. This function is unnecessary, `numpy.argsort` can be used instead.

`scipy.stats.signaltonoise` and `scipy.stats.mstats.signaltonoise` are deprecated. These functions did not belong in `scipy.stats` and are rarely used. See issue #609 for details.

`scipy.stats.histogram2` is deprecated. This function is unnecessary, `numpy.histogram2d` can be used instead.

## Backwards incompatible changes

The deprecated global optimizer `scipy.optimize.anneal` was removed.

The following deprecated modules have been removed: `scipy.lib.blas`, `scipy.lib.lapack`, `scipy.linalg.cblas`, `scipy.linalg.fblas`, `scipy.linalg.clapack`, `scipy.linalg.flapack`. They had been deprecated since Scipy 0.12.0, the functionality should be accessed as `scipy.linalg.blas` and `scipy.linalg.lapack`.

The deprecated function `scipy.special.all_mat` has been removed.

The deprecated functions `fprob`, `ksprob`, `zprob`, `randwcdf` and `randwppf` have been removed from `scipy.stats`.

## Other changes

The version numbering for development builds has been updated to comply with PEP 440.

Building with `python setup.py develop` is now supported.

## Authors

- @axiru +

- @endolith

- Elliott Sales de Andrade +

- Anne Archibald

- Yoshiki Vázquez Baeza +

- Sylvain Bellemare

- Felix Berkenkamp +

- Raoul Bourquin +

- Matthew Brett

- Per Brodtkorb

- Christian Brueffer

- Lars Buitinck

- Evgeni Burovski

- Steven Byrnes

- CJ Carey

- George Castillo +

- Alex Conley +

- Liam Damewood +

- Rupak Das +

- Abraham Escalante +

- Matthias Feurer +

- Eric Firing +

- Clark Fitzgerald

- Chad Fulton

- André Gaul

- Andreea Georgescu +

- Christoph Gohlke

- Andrey Golovizin +

- Ralf Gommers

- J.J. Green +

- Alex Griffing

- Alexander Grigorievskiy +

- Hans Moritz Gunther +

- Jonas Hahnfeld +

- Charles Harris

- Ian Henriksen

- Andreas Hilboll

- Åsmund Hjulstad +

- Jan Schlüter +

- Janko Slavič +

- Daniel Jensen +

- Johannes Ballé +

- Terry Jones +

- Amato Kasahara +

- Eric Larson

- Denis Laxalde

- Antony Lee

- Gregory R. Lee

- Perry Lee +

- Loïc Estève

- Martin Manns +

- Eric Martin +

- Matěj Kocián +

- Andreas Mayer +

- Nikolay Mayorov +

- Robert McGibbon +

- Sturla Molden

- Nicola Montecchio +

- Eric Moore

- Jamie Morton +

- Nikolas Moya +

- Maniteja Nandana +

- Andrew Nelson

- Joel Nothman

- Aldrian Obaja

- Regina Ongowarsito +

- Paul Ortyl +

- Pedro López-Adeva Fernández-Layos +

- Stefan Peterson +

- Irvin Probst +

- Eric Quintero +

- John David Reaver +

- Juha Remes +

- Thomas Robitaille

- Clancy Rowley +

- Tobias Schmidt +

- Skipper Seabold

- Aman Singh +

- Eric Soroos

- Valentine Svensson +

- Julian Taylor

- Aman Thakral +

- Helmut Toplitzer +

- Fukumu Tsutsumi +

- Anastasiia Tsyplia +

- Jacob Vanderplas

- Pauli Virtanen

- Matteo Visconti +

- Warren Weckesser

- Florian Wilhelm +

- Nathan Woods

- Haochen Wu +

- Daan Wynen +

A total of 93 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 0.16.0

- #1063: Implement a whishart distribution (Trac #536)

- #1885: Rbf: floating point warnings - possible bug (Trac #1360)

- #2020: Rbf default epsilon too large (Trac #1495)

- #2325: extending distributions, hypergeom, to degenerate cases (Trac…

- #3502: [ENH] linalg.hessenberg should use ORGHR for calc_q=True

- #3603: Passing array as window into signal.resample() fails

- #3675: Intermittent failures for signal.slepian on Windows

- #3742: Pchipinterpolator inconvenient as ppoly

- #3786: add procrustes?

- #3798: scipy.io.savemat fails for empty dicts

- #3975: Use RandomState in scipy.stats

- #4022: savemat incorrectly saves logical arrays

- #4028: scipy.stats.geom.logpmf(1,1) returns nan. The correct value is…

- #4030: simplify scipy.stats.betaprime.cdf

- #4031: improve accuracy of scipy.stats.gompertz distribution for small…

- #4033: improve accuracy of scipy.stats.lomax distribution for small…

- #4034: improve accuracy of scipy.stats.rayleigh distribution for large…

- #4035: improve accuracy of scipy.stats.truncexpon distribution for small…

- #4081: Error when reading matlab file: buffer is too small for requested…

- #4100: Why does qr(a, lwork=0) not fail?

- #4134: scipy.stats: rv_frozen has no expect() method

- #4204: Please add docstring to scipy.optimize.RootResults

- #4206: Wrap LAPACK tridiagonal solve routine gtsv

- #4208: Empty sparse matrices written to MAT file cannot be read by MATLAB

- #4217: use a TravisCI configuration with numpy built with NPY_RELAXED_STRIDES_CHECKING=1

- #4282: integrate.odeint raises an exception when full_output=1 and the…

- #4301: scipy and numpy version names do not follow pep 440

- #4355: PPoly.antiderivative() produces incorrect output

- #4391: spsolve becomes extremely slow with large b matrix

- #4393: Documentation glitsch in sparse.linalg.spilu

- #4408: Vector-valued constraints in minimize() et al

- #4412: Documentation of scipy.signal.cwt error

- #4428: dok.__setitem__ problem with negative indices

- #4434: Incomplete documentation for sparse.linalg.spsolve

- #4438: linprog() documentation example wrong

- #4445: Typo in scipy.special.expit doc

- #4467: Documentation Error in scipy.optimize options for TNC

- #4492: solve_toeplitz benchmark is bitrotting already

- #4506: lobpcg/sparse performance regression Jun 2014?

- #4520: g77_abi_wrappers needed on Linux for MKL as well

- #4521: Broken check in uses_mkl for newer versions of the library

- #4523: rbf with gaussian kernel seems to produce more noise than original…

- #4526: error in site documentation for poisson.pmf() method

- #4527: KDTree example doesn’t work in Python 3

- #4550: `scipy.stats.mode` - UnboundLocalError on empty sequence

- #4554: filter out convergence warnings in optimization tests

- #4565: odeint messages

- #4569: remez: “ValueError: Failure to converge after 25 iterations….

- #4582: DOC: optimize: _minimize_scalar_brent does not have a disp option

- #4585: DOC: Erroneous latex-related characters in tutorial.

- #4590: sparse.linalg.svds should throw an exception if which not in…

- #4594: scipy.optimize.linprog IndexError when a callback is providen

- #4596: scipy.linalg.block_diag misbehavior with empty array inputs (v0.13.3)

- #4599: scipy.integrate.nquad should call _OptFunc when called with only…

- #4612: Crash in signal.lfilter on nd input with wrong shaped zi

- #4613: scipy.io.readsav error on reading sav file

- #4673: scipy.interpolate.RectBivariateSpline construction locks PyQt…

- #4681: Broadcasting in signal.lfilter still not quite right.

- #4705: kmeans k_or_guess parameter error if guess is not square array

- #4719: Build failure on 14.04.2

- #4724: GenGamma _munp function fails due to overflow

- #4726: FAIL: test_cobyla.test_vector_constraints

- #4734: Failing tests in stats with numpy master.

- #4736: qr_update bug or incompatibility with numpy 1.10?

- #4746: linprog returns solution violating equality constraint

- #4757: optimize.leastsq docstring mismatch

- #4774: Update contributor list for v0.16

- #4779: circmean and others do not appear in the documentation

- #4788: problems with scipy sparse linalg isolve iterative.py when complex

- #4791: BUG: scipy.spatial: incremental Voronoi doesn’t increase size…

### Pull requests for 0.16.0

- #3116: sparse: enhancements for DIA format

- #3157: ENH: linalg: add the function ‘solve_circulant’ for solving a…

- #3442: ENH: signal: Add Gustafsson’s method as an option for the filtfilt…

- #3679: WIP: fix sporadic slepian failures

- #3680: Some cleanups in stats

- #3717: ENH: Add second-order sections filtering

- #3741: Dltisys changes

- #3956: add note to scipy.signal.resample about prime sample numbers

- #3980: Add check_finite flag to UnivariateSpline

- #3996: MAINT: stricter linalg argument checking

- #4001: BUG: numerical precision in dirichlet

- #4012: ENH: linalg: Add a function to compute the inverse of a Pascal…

- #4021: ENH: Cython api for lapack and blas

- #4089: Fixes for various PEP8 issues.

- #4116: MAINT: fitpack: trim down compiler warnings (unused labels, variables)

- #4129: ENH: stats: add a random_state property to distributions

- #4135: ENH: Add Wishart and inverse Wishart distributions

- #4195: improve the interpolate docs

- #4200: ENH: Add t-test from descriptive stats function.

- #4202: Dendrogram threshold color

- #4205: BLD: fix a number of Bento build warnings.

- #4211: add an ufunc for the inverse Box-Cox transfrom

- #4212: MRG:fix for gh-4208

- #4213: ENH: specific warning if matlab file is empty

- #4215: Issue #4209: splprep documentation updated to reflect dimensional…

- #4219: DOC: silence several Sphinx warnings when building the docs

- #4223: MAINT: remove two redundant lines of code

- #4226: try forcing the numpy rebuild with relaxed strides

- #4228: BLD: some updates to Bento config files and docs. Closes gh-3978.

- #4232: wrong references in the docs

- #4242: DOC: change example sample spacing

- #4245: Arff fixes

- #4246: MAINT: C fixes

- #4247: MAINT: remove some unused code

- #4249: Add routines for updating QR decompositions

- #4250: MAINT: Some pyflakes-driven cleanup in linalg and sparse

- #4252: MAINT trim away >10 kLOC of generated C code

- #4253: TST: stop shadowing ellip* tests vs boost data

- #4254: MAINT: special: use NPY_PI, not M_PI

- #4255: DOC: INSTALL: use Py3-compatible print syntax, and don’t mention…

- #4256: ENH: spatial: reimplement cdist_cosine using np.dot

- #4258: BUG: io.arff #4429 #2088

- #4261: MAINT: signal: PEP8 and related style clean up.

- #4262: BUG: newton_krylov() was ignoring norm_tol argument, closes #4259

- #4263: MAINT: clean up test noise and optimize tests for docstrings…

- #4266: MAINT: io: Give an informative error when attempting to read…

- #4268: MAINT: fftpack benchmark integer division vs true division

- #4269: MAINT: avoid shadowing the eigvals function

- #4272: BUG: sparse: Fix bench_sparse.py

- #4276: DOC: remove confusing parts of the documentation related to writing…

- #4281: Sparse matrix multiplication: only convert array if needed (with…

- #4284: BUG: integrate: odeint crashed when the integration time was…

- #4286: MRG: fix matlab output type of logical array

- #4287: DEP: deprecate stats.pdf_fromgamma. Closes gh-699.

- #4291: DOC: linalg: fix layout in cholesky_banded docstring

- #4292: BUG: allow empty dict as proxy for empty struct

- #4293: MAINT: != -> not_equal in hamming distance implementation

- #4295: Pole placement

- #4296: MAINT: some cleanups in tests of several modules

- #4302: ENH: Solve toeplitz linear systems

- #4306: Add benchmark for conjugate gradient solver.

- #4307: BLD: PEP 440

- #4310: BUG: make stats.geom.logpmf(1,1) return 0.0 instead of nan

- #4311: TST: restore a test that uses slogdet now that we have dropped…

- #4313: Some minor fixes for stats.wishart addition.

- #4315: MAINT: drop numpy 1.5 compatibility code in sparse matrix tests

- #4318: ENH: Add random_state to multivariate distributions

- #4319: MAINT: fix hamming distance regression for exotic arrays, with…

- #4320: TST: a few changes like self.assertTrue(x == y, message) -> assert_equal(x,…

- #4321: TST: more changes like self.assertTrue(x == y, message) -> assert_equal(x,…

- #4322: TST: in test_signaltools, changes like self.assertTrue(x == y,…

- #4323: MAINT: clean up benchmarks so they can all be run as single files.

- #4324: Add more detailed committer guidelines, update MAINTAINERS.txt

- #4326: TST: use numpy.testing in test_hierarchy.py

- #4329: MAINT: stats: rename check_random_state test function

- #4330: Update distance tests

- #4333: MAINT: import comb, factorial from scipy.special, not scipy.misc

- #4338: TST: more conversions from nose to numpy.testing

- #4339: MAINT: remove the deprecated all_mat function from special_matrices.py

- #4340: add several features to frozen distributions

- #4344: BUG: Fix/test invalid lwork param in qr

- #4345: Fix test noise visible with Python 3.x

- #4347: Remove deprecated blas/lapack imports, rename lib to _lib

- #4349: DOC: add a nontrivial example to stats.binned_statistic.

- #4350: MAINT: remove optimize.anneal for 0.16.0 (was deprecated in 0.14.0).

- #4351: MAINT: fix usage of deprecated Numpy C API in optimize…

- #4352: MAINT: fix a number of special test failures

- #4353: implement cdf for betaprime distribution

- #4357: BUG: piecewise polynomial antiderivative

- #4358: BUG: integrate: fix handling of banded Jacobians in odeint, plus…

- #4359: MAINT: remove a code path taken for Python version < 2.5

- #4360: MAINT: stats.mstats: Remove some unused variables (thanks, pyflakes).

- #4362: Removed erroneous reference to smoothing parameter #4072

- #4363: MAINT: interpolate: clean up in fitpack.py

- #4364: MAINT: lib: don’t export “partial” from decorator

- #4365: svdvals now returns a length-0 sequence of singular values given…

- #4367: DOC: slightly improve TeX rendering of wishart/invwishart docstring

- #4373: ENH: wrap gtsv and ptsv for solve_banded and solveh_banded.

- #4374: ENH: Enhancements to spatial.cKDTree

- #4376: BF: fix reading off-spec matlab logical sparse

- #4377: MAINT: integrate: Clean up some Fortran test code.

- #4378: MAINT: fix usage of deprecated Numpy C API in signal

- #4380: MAINT: scipy.optimize, removing further anneal references

- #4381: ENH: Make DCT and DST accept int and complex types like fft

- #4392: ENH: optimize: add DF-SANE nonlinear derivative-free solver

- #4394: Make reordering algorithms 64-bit clean

- #4396: BUG: bundle cblas.h in Accelerate ABI wrappers to enable compilation…

- #4398: FIX pdist bug where wminkowski’s w.dtype != double

- #4402: BUG: fix stat.hypergeom argcheck

- #4404: MAINT: Fill in the full symmetric squareform in the C loop

- #4405: BUG: avoid X += X.T (refs #4401)

- #4407: improved accuracy of gompertz distribution for small x

- #4414: DOC:fix error in scipy.signal.cwt documentation.

- #4415: ENH: Improve accuracy of lomax for small x.

- #4416: DOC: correct a parameter name in docstring of SuperLU.solve….

- #4419: Restore scipy.linalg.calc_lwork also in master

- #4420: fix a performance issue with a sparse solver

- #4423: ENH: improve rayleigh accuracy for large x.

- #4424: BUG: optimize.minimize: fix overflow issue with integer x0 input.

- #4425: ENH: Improve accuracy of truncexpon for small x

- #4426: ENH: improve rayleigh accuracy for large x.

- #4427: MAINT: optimize: cleanup of TNC code

- #4429: BLD: fix build failure with numpy 1.7.x and 1.8.x.

- #4430: BUG: fix a sparse.dok_matrix set/get copy-paste bug

- #4433: Update _minimize.py

- #4435: ENH: release GIL around batch distance computations

- #4436: Fixed incomplete documentation for spsolve

- #4439: MAINT: integrate: Some clean up in the tests.

- #4440: Fast permutation t-test

- #4442: DOC: optimize: fix wrong result in docstring

- #4447: DOC: signal: Some additional documentation to go along with the…

- #4448: DOC: tweak the docstring of lapack.linalg module

- #4449: fix a typo in the expit docstring

- #4451: ENH: vectorize distance loops with gcc

- #4456: MAINT: don’t fail large data tests on MemoryError

- #4461: CI: use travis_retry to deal with network timeouts

- #4462: DOC: rationalize minimize() et al. documentation

- #4470: MAINT: sparse: inherit dok_matrix.toarray from spmatrix

- #4473: BUG: signal: Fix validation of the zi shape in sosfilt.

- #4475: BLD: setup.py: update min numpy version and support “setup.py…

- #4481: ENH: add a new linalg special matrix: the Helmert matrix

- #4485: MRG: some changes to allow reading bad mat files

- #4490: [ENH] linalg.hessenberg: use orghr - rebase

- #4491: ENH: linalg: Adding wrapper for potentially useful LAPACK function…

- #4493: BENCH: the solve_toeplitz benchmark used outdated syntax and…

- #4494: MAINT: stats: remove duplicated code

- #4496: References added for watershed_ift algorithm

- #4499: DOC: reshuffle stats distributions documentation

- #4501: Replace benchmark suite with airspeed velocity

- #4502: SLSQP should strictly satisfy bound constraints

- #4503: DOC: forward port 0.15.x release notes and update author name…

- #4504: ENH: option to avoid computing possibly unused svd matrix

- #4505: Rebase of PR 3303 (sparse matrix norms)

- #4507: MAINT: fix lobpcg performance regression

- #4509: DOC: sparse: replace dead link

- #4511: Fixed differential evolution bug

- #4512: Change to fully PEP440 compliant dev version numbers (always…

- #4525: made tiny style corrections (pep8)

- #4533: Add exponentially modified gaussian distribution (scipy.stats.expongauss)

- #4534: MAINT: benchmarks: make benchmark suite importable on all scipy…

- #4535: BUG: Changed zip() to list(zip()) so that it could work in Python…

- #4536: Follow up to pr 4348 (exponential window)

- #4540: ENH: spatial: Add procrustes analysis

- #4541: Bench fixes

- #4542: TST: NumpyVersion dev -> dev0

- #4543: BUG: Overflow in savgol_coeffs

- #4544: pep8 fixes for stats

- #4546: MAINT: use reduction axis arguments in one-norm estimation

- #4549: ENH : Added group_delay to scipy.signal

- #4553: ENH: Significantly faster moment function

- #4556: DOC: document the changes of the sparse.linalg.svds (optional…

- #4559: DOC: stats: describe loc and scale parameters in the docstring…

- #4563: ENH: rewrite of stats.ppcc_plot

- #4564: Be more (or less) forgiving when user passes +-inf instead of…

- #4566: DEP: remove a bunch of deprecated function from scipy.stats,…

- #4570: MNT: Suppress LineSearchWarning’s in scipy.optimize tests

- #4572: ENH: Extract inverse hessian information from L-BFGS-B

- #4576: ENH: Split signal.lti into subclasses, part of #2912

- #4578: MNT: Reconcile docstrings and function signatures

- #4581: Fix build with Intel MKL on Linux

- #4583: DOC: optimize: remove references to unused disp kwarg

- #4584: ENH: scipy.signal - Tukey window

- #4587: Hermite asymptotic

- #4593: DOC - add example to RegularGridInterpolator

- #4595: DOC: Fix erroneous latex characters in tutorial/optimize.

- #4600: Add return codes to optimize.tnc docs

- #4603: ENH: Wrap LAPACK `*lange` functions for matrix norms

- #4604: scipy.stats: generalized normal distribution

- #4609: MAINT: interpolate: fix a few inconsistencies between docstrings…

- #4610: MAINT: make runtest.py –bench-compare use asv continuous and…

- #4611: DOC: stats: explain rice scaling; add a note to the tutorial…

- #4614: BUG: lfilter, the size of zi was not checked correctly for nd…

- #4617: MAINT: integrate: Clean the C code behind odeint.

- #4618: FIX: Raise error when window length != data length

- #4619: Issue #4550: `scipy.stats.mode` - UnboundLocalError on empty…

- #4620: Fixed a problem (#4590) with svds accepting wrong eigenvalue…

- #4621: Speed up special.ai_zeros/bi_zeros by 10x

- #4623: MAINT: some tweaks to spatial.procrustes (private file, html…

- #4628: Speed up signal.lfilter and add a convolution path for FIR filters

- #4629: Bug: integrate.nquad; resolve issue #4599

- #4631: MAINT: integrate: Remove unused variables in a Fortran test function.

- #4633: MAINT: Fix convergence message for remez

- #4635: PEP8: indentation (so that pep8 bot does not complain)

- #4637: MAINT: generalize a sign function to do the right thing for complex…

- #4639: Amended typo in apple_sgemv_fix.c

- #4642: MAINT: use lapack for scipy.linalg.norm

- #4643: RBF default epsilon too large 2020

- #4646: Added atleast_1d around poly in invres and invresz

- #4647: fix doc pdf build

- #4648: BUG: Fixes #4408: Vector-valued constraints in minimize() et…

- #4649: Vonmisesfix

- #4650: Signal example clean up in Tukey and place_poles

- #4652: DOC: Fix the error in convolve for same mode

- #4653: improve erf performance

- #4655: DEP: deprecate scipy.stats.histogram2 in favour of np.histogram2d

- #4656: DEP: deprecate scipy.stats.signaltonoise

- #4660: Avoid extra copy for sparse compressed [:, seq] and [seq, :]…

- #4661: Clean, rebase of #4478, adding ?gelsy and ?gelsd wrappers

- #4662: MAINT: Correct odeint messages

- #4664: Update _monotone.py

- #4672: fix behavior of scipy.linalg.block_diag for empty input

- #4675: Fix lsim

- #4676: Added missing colon to :math: directive in docstring.

- #4679: ENH: sparse randn

- #4682: ENH: scipy.signal - Addition of CSD, coherence; Enhancement of…

- #4684: BUG: various errors in weight calculations in orthogonal.py

- #4685: BUG: Fixes #4594: optimize.linprog IndexError when a callback…

- #4686: MAINT: cluster: Clean up duplicated exception raising code.

- #4688: Improve is_distance_dm exception message

- #4692: MAINT: stats: Simplify the calculation in tukeylambda._ppf

- #4693: ENH: added functionality to handle scalars in stats._chk_asarray

- #4694: Vectorization of Anderson-Darling computations.

- #4696: Fix singleton expansion in lfilter.

- #4698: MAINT: quiet warnings from cephes.

- #4701: add Bpoly.antiderivatives / integrals

- #4703: Add citation of published paper

- #4706: MAINT: special: avoid out-of-bounds access in specfun

- #4707: MAINT: fix issues with np.matrix as input to functions related…

- #4709: ENH: `scipy.stats` now returns namedtuples.

- #4710: scipy.io.idl: make reader more robust to missing variables in…

- #4711: Fix crash for unknown chunks at the end of file

- #4712: Reduce onenormest memory usage

- #4713: MAINT: interpolate: no need to pass dtype around if it can be…

- #4714: BENCH: Add benchmarks for stats module

- #4715: MAINT: polish signal.place_poles and signal/test_ltisys.py

- #4716: DEP: deprecate mstats.signaltonoise …

- #4717: MAINT: basinhopping: fix error in tests, silence /0 warning,…

- #4718: ENH: stats: can specify f-shapes to fix in fitting by name

- #4721: Document that imresize converts the input to a PIL image

- #4722: MAINT: PyArray_BASE is not an lvalue unless the deprecated API…

- #4725: Fix gengamma _nump failure

- #4728: DOC: add poch to the list of scipy special function descriptions

- #4735: MAINT: stats: avoid (a spurious) division-by-zero in skew

- #4738: TST: silence runtime warnings for some corner cases in stats…

- #4739: BLD: try to build numpy instead of using the one on TravisCI

- #4740: DOC: Update some docstrings with ‘versionadded’.

- #4742: BLD: make sure that relaxed strides checking is in effect on…

- #4750: DOC: special: TeX typesetting of rel_entr, kl_div and pseudo_huber

- #4751: BENCH: add sparse null slice benchmark

- #4753: BUG: Fixed compilation with recent Cython versions.

- #4756: BUG: Fixes #4733: optimize.brute finish option is not compatible…

- #4758: DOC: optimize.leastsq default maxfev clarification

- #4759: improved stats mle fit

- #4760: MAINT: count bfgs updates more carefully

- #4762: BUGS: Fixes #4746 and #4594: linprog returns solution violating…

- #4763: fix small linprog bugs

- #4766: BENCH: add signal.lsim benchmark

- #4768: fix python syntax errors in docstring examples

- #4769: Fixes #4726: test_cobyla.test_vector_constraints

- #4770: Mark FITPACK functions as thread safe.

- #4771: edited scipy/stats/stats.py to fix doctest for fisher_exact

- #4773: DOC: update 0.16.0 release notes.

- #4775: DOC: linalg: add funm_psd as a docstring example

- #4778: Use a dictionary for function name synonyms

- #4780: Include apparently-forgotten functions in docs

- #4783: Added many missing special functions to docs

- #4784: add an axis attribute to PPoly and friends

- #4785: Brief note about origin of Lena image

- #4786: DOC: reformat the Methods section of the KDE docstring

- #4787: Add rice cdf and ppf.

- #4792: CI: add a kludge for detecting test failures which try to disguise…

- #4795: Make refguide_check smarter about false positives

- #4797: BUG/TST: numpoints not updated for incremental Voronoi

- #4799: BUG: spatial: Fix a couple edge cases for the Mahalanobis metric…

- #4801: BUG: Fix TypeError in scipy.optimize._trust-region.py when disp=True.

- #4803: Issues with relaxed strides in QR updating routines

- #4806: MAINT: use an informed initial guess for cauchy fit

- #4810: PEP8ify codata.py

- #4812: BUG: Relaxed strides cleanup in decomp_update.pyx.in

- #4820: BLD: update Bento build for sgemv fix and install cython blas/lapack…

- #4823: ENH: scipy.signal - Addition of spectrogram function

- #4827: DOC: add csd and coherence to __init__.py

- #4833: BLD: fix issue in linalg `*lange` wrappers for g77 builds.

- #4841: TST: fix test failures in scipy.special with mingw32 due to test…

- #4842: DOC: update site.cfg.example. Mostly taken over from Numpy

- #4845: BUG: signal: Make spectrogram’s return values order match the…

- #4849: DOC:Fix error in ode docstring example

- #4856: BUG: fix typo causing memleak