ENH: add subok flag to stride_tricks (and thus broadcast_arrays)
Convert as_strided input to array first
DOC: document `ldict` and `gdict` in bmat, closes #5058
ENH: implement `digitize` with `PyArray_SearchSorted`
DOC: document improvements to `np.digitize`
ENH: Release GIL in `digitize`
DOC: reorganize `digitize` docstring
Merge pull request #4622 from mhvk/lib/stride_tricks/subclasses

ENH: add subok flag to stride_tricks (and thus broadcast_arrays)
FIX: core: remove sprintf calls

This changes the behavior of ufunc_repr to no longer truncate its arg's
name. I guess the truncation was only there to make the function work
with sprintf, and if I read http://bugs.python.org/issue7330 correctly,
then truncation wouldn't work in 3.2 <= Python <= 3.4.
MAINT: core: simplify array_repr_builtin (don't use sprintf)
FIX: core: unchecked realloc

Also changed types to Py_ssize_t, and check for overflow when multiplying.
Throws if range is too large for 'random.uniform'

This fixes issue #2138 by checking that the range (i.e. high - low) is finite
before invoking `rk_uniform`.

A test case was added to ensure valid ranges do not throw, but invalid ranges
do.
MAINT: f2py: rewrite fortran_doc

Should not use sprintf, and certainly not with incorrect error checking
(gh-5044). Entirely rewritten for readability.

Also replaced a few sprintf calls that were just copying strings without
interpretation by the simpler and possibly faster strcpy/strcat.
(These need to be replaced by something more sensible.)
Merge pull request #5125 from larsmans/f2py-sprintf

MAINT: f2py: rewrite fortran_doc
Merge pull request #5131 from frutiger/random_uniform_throw_on_outofrange

ENH: Throws if range is too large for 'random.uniform'
ENH: unroll correlate loops

Unrolling the inner loop ensures the kernel is placed into registers and
reused, this almost doubles performance.
Also move the function to arraytypes.c.src where also our dot product is
placed.
The templ_common.h might still be useful in future so its kept.
BLD: add check for C99 restrict keyword

Define it as NPY_RESTRICT
Restrict indicates a memory block does not alias, gcc supports it in c89
with the __restrict__ keyword.
Merge pull request #5137 from juliantaylor/restrict

BLD: add check for C99 restrict keyword
Merge pull request #5124 from larsmans/c-fixes

FIX: core: remove sprintf calls
Merge pull request #5092 from jaimefrio/bmat_ldict_gdict

DOC: document `ldict` and `gdict` in `bmat`, closes #5058