Copy files from the cuda to the gpuarray folder
Modify parent class of GpuImages2Neibs
Added methods c_headers() and c_compiler() to GpuImages2Neibs
Convert x->nd to PyGpuArray_NDIM(x) in op GpuImages2Neibs
Convert CudaNdarray_HOST_DIMS(x) to PyGpuArray_DIMS(x) in op GpuImages2Neibs
Convert CudaNdarray_HOST_DIMSSTRIDES(x) to PyGpuArray_STRIDES(x) in op GpuImages2Neibs
Convert CudaNdarray_DEV_DATA(x) to PyGpuArray_DATA(x) in op GpuImages2Neibs
Convert output creation to use pygpu_empty()
Replaced calls to PyGpuArray_DATA with calls to cuda_get_ptr()
Adapted tests to use new version of GpuImages2Neibs op
Bug fixes in op GpuImages2Neibs
Removed trailing spaces from gpuarray/neighbours.py
Updated comments and error messages. Also modified the assert for dtypes.
BUGFIX introduced in 4cf0f055b418544e9f6090728466d9f70c04ca07 and merged the 7 april.

That commit removed copy in Elemwise.perform(), but numpy.real return a view. This is bad if the op isn't inplace!
Merge pull request #1808 from nouiz/bugfix_real

BUGFIX introduced in 4cf0f055b418544e9f6090728466d9f70c04ca07 and merged...
Make min(tuple(x, y)) and argmin(...) work as max and argmax.
close gh-1810, implement local_reduce_join optimization
Do in the gpuarray back-end the same change that was done in the cuda back-end.
Typo fixes in doc
Replaced "except:" by "except Exception:"

This avoids blocking interrupts.