Issue 1:
I'll log this for now:

on ubuntu 16.04.2

numpy 1.13.1 installed fine on python 3.6.2.rc1

numpy 1.13.0 installed fine on python 3.7.0a0 (heads/master:6969eaf)

Numpy 1.13.1 failure in building:

building 'numpy.random.mtrand' extension
compiling C sources
C compiler: gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC

creating build/temp.linux-x86_64-3.7/numpy/random
creating build/temp.linux-x86_64-3.7/numpy/random/mtrand
compile options: '-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Inumpy/core/include -Ibuild/src.linux-x86_64-3.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/include/python3.7m -Ibuild/src.linux-x86_64-3.7/numpy/core/src/private -Ibuild/src.linux-x86_64-3.7/numpy/core/src/npymath -Ibuild/src.linux-x86_64-3.7/numpy/core/src/private -Ibuild/src.linux-x86_64-3.7/numpy/core/src/npymath -Ibuild/src.linux-x86_64-3.7/numpy/core/src/private -Ibuild/src.linux-x86_64-3.7/numpy/core/src/npymath -c'
gcc: numpy/random/mtrand/mtrand.c
numpy/random/mtrand/mtrand.c: In function ‘__Pyx_PyCFunction_FastCall’:
numpy/random/mtrand/mtrand.c:44374:12: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject **, Py_ssize_t))meth’
return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
^
numpy/random/mtrand/mtrand.c: In function ‘__Pyx_PyCFunction_FastCall’:
numpy/random/mtrand/mtrand.c:44374:12: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject **, Py_ssize_t))meth’
return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
^
error: Command "gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Inumpy/core/include -Ibuild/src.linux-x86_64-3.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/usr/local/include/python3.7m -Ibuild/src.linux-x86_64-3.7/numpy/core/src/private -Ibuild/src.linux-x86_64-3.7/numpy/core/src/npymath -Ibuild/src.linux-x86_64-3.7/numpy/core/src/private -Ibuild/src.linux-x86_64-3.7/numpy/core/src/npymath -Ibuild/src.linux-x86_64-3.7/numpy/core/src/private -Ibuild/src.linux-x86_64-3.7/numpy/core/src/npymath -c numpy/random/mtrand/mtrand.c -o build/temp.linux-x86_64-3.7/numpy/random/mtrand/mtrand.o -MMD -MF build/temp.linux-x86_64-3.7/numpy/random/mtrand/mtrand.o.d" failed with exit status 1

----------------------------------------
Rolling back uninstall of numpy

Issue 2:
When i use a float32 dtype array as the argument to numpy.fft.rfft, I get a complex128 dtype array as the output instead of a complex64 dtype array.

Similarly, when I use a complex64 dtype array as the argument to numpy.fft.irfft, I get a float64 dtype array instead of a float32 dtype array.

Here is a code snippet :

In [4]: a = np.array([1., 2., 3.], dtype=np.float32)

In [5]: a

Out[5]: array([ 1., 2., 3.], dtype=float32)

In [6]: b = np.fft.rfft(a)

In [7]: b

Out[7]: array([ 6.0+0.j , -1.5+0.8660254j])

In [8]: b.dtype

Out[8]: dtype('complex128')

In [9]: b.astype(np.complex64)

Out[9]: array([ 6.0+0.j , -1.5+0.86602539j], dtype=complex64)

In [10]: c = np.fft.irfft(b)

In [11]: c

Out[11]: array([ 2.25, 3.75])

In [12]: c.dtype

Out[12]: dtype('float64')