Raise error at slice ndarray interface
Merge pull request #301 from pbrunet/strided_input

Raise error at slice ndarray interface
Use std::copy instead of a loop in broadcast copy

* generate a pointer instead of an nditerator when iterating over a non
  strided array, so that std::copy can speciailized to a memcpy
Faster implementation of numpy.zeros

Use calloc whatever the dtype. It's not 100% bullet proof for floating
point numbers but it seems ok on modern architectures.
Use std::fill instead of a raw loop in broadcast copy
Manually unroll some std::array copy in numpy_gexpr initialization

std::copy is slower there as it uses memcpy (and a function call) for
very small arrays (the shapes...)
Avoid some code redundancy in numpy_gexpr initialization
Merge pull request #322 from serge-sans-paille/faster-nditerator

Faster nditerator
More operators are numpy expr
Specialisation for numpy_expr
Do not enable "function on 1 elts" for numpy array.
Avoid argmin, argmax evaluation.

* Test on argmin((a + 5) * 2) and array of 100.000.000 elts
* old implem: 803 ms
* new implem: 582 ms
* CPython : 776 ms
* Same on 2D array:
* old implem: 790 ms
* new implem: 536 ms
* CPython : 783 ms
avoid temporary allocation for array_equiv

* With a = numpy.array([range(1000) for i in xrange(1000)],
* dtype=float); b = numpy.arange(1000, dtype=float).reshape(1000) and
* use of Expression template:
* old version : 71.6 msec
* new version : 68.8 msec
* CPython : 74.9 msec
WIPnantonum
WIP
WIP2