ENH: use dot (BLAS!) in linalg.norm
BUG/ENH: blasdot: make *dot calls 64-bit safe

BLAS uses int for all its size types, so the size is going to be
silently truncated on platforms where sizeof npy_intp > sizeof int,
i.e. on modern 64-bit platforms. In this case, we do a dot product
in reasonably-sized chunks and add the result ourselves.

On platforms where sizeof(int) == sizeof(npy_intp), i.e. typical
32-bit platforms, it's up to the compiler to optimize the loop away.

Also tried to make the code more readable, replaced int by npy_intp
in a few places and removed useless register declarations (modern
compilers ignore those).
ENH: dotblas: re-route all cblas_?dot calls to chunked versions

Also factored out and simplified NumPy->BLAS stride conversion.
ENH: Allow meshgrid to work for 1D and 0D cases.
BUG: Fix array_split empty array type and add FutureWarning

Fixes the result type of empty output arrays.

The FutureWarning warns about changed behaviour. A "kludge" was
introduced into array split converting converting the result of
something like:

>>> np.array_split(np.array([[1, 1]]), 2)
[array([[1, 1]]), array([], dtype=int64)]

instead of retaining the shape of the empty/second array to
be (0, 2). A FutureWarning is now raised when such a
replacement occurs.

Closes gh-612
Merge pull request #4133 from ContinuumIO/datetime_sort

Add lexsort support for datetime and timedelta
Merge pull request #4102 from seberg/issue-612

FIX: Array split should not hack empty array shape away
Merge pull request #4112 from rhewett/meshgrid_single

ENH: Allow meshgrid to take 1D and 0D inputs
BUG: Ensure signed division of stride for pairwise sum

Avoids wrong wrapping with i386 12 byte long doubles.
Closes gh-4136.
Merge pull request #4137 from juliantaylor/sumfix

BUG: Ensure signed division of stride for pairwise sum
MAINT: don't use open(.., 'U') in Python 3.x, is deprecated.

This is default behavior in 3.x; in 2.x open() doesn't have a `newline`
kw.  So make code Python-version-specific.
TST: fix test failure due to comparing floats with assert_equal.

Observed on 32-bit linux with python 3.4b1
Merge pull request #4141 from rgommers/py34-fixes

Fix a few issues that show up with python 3.4b1
BUG: linalg: norm fails on longdouble, signed int

This fixes the following bug with longdouble:

>>> x = np.arange(10, dtype=np.longdouble)
>>> np.linalg.norm(x, ord=3)
Traceback (most recent call last):
  File "<ipython-input-5-7ee53a8ac142>", line 1, in <module>
    np.linalg.norm(x, ord=3)
  File "/tmp/v/lib/python2.7/site-packages/numpy/linalg/linalg.py", line 2090, in norm
    return add.reduce(absx**ord, axis=axis)**(1.0/ord)
UnboundLocalError: local variable 'absx' referenced before assignment

As well as the handling of minimal values for signed integers:

>>> x = np.array([-2**31], dtype=np.int32)
>>> np.linalg.norm(x, ord=3)
/tmp/v/lib/python2.7/site-packages/numpy/linalg/linalg.py:2090: RuntimeWarning: invalid value encountered in double_scalars
  return add.reduce(absx**ord, axis=axis)**(1.0/ord)
nan
DOC: matrix_rank
DOC: more matrix_rank docs
Merge pull request #3916 from larsmans/dotblas-64bit-safe

64-bit safe _dotblas
Merge pull request #4144 from larsmans/norm-bugs

BUG: linalg: norm fails on longdouble, signed int
MAINT: remove use of ``reload`` from f2py.  See gh-4139.
DOC: synchronize release notes with 1.7.x