[Scipy-svn] r6224 - trunk/scipy/fftpack

scipy-svn at scipy.org scipy-svn at scipy.org
Tue Feb 9 20:50:37 EST 2010


Author: cdavid
Date: 2010-02-09 19:50:37 -0600 (Tue, 09 Feb 2010)
New Revision: 6224

Modified:
   trunk/scipy/fftpack/basic.py
Log:
BUG: fix single precision handling for ifftn.

Modified: trunk/scipy/fftpack/basic.py
===================================================================
--- trunk/scipy/fftpack/basic.py	2010-02-10 01:50:25 UTC (rev 6223)
+++ trunk/scipy/fftpack/basic.py	2010-02-10 01:50:37 UTC (rev 6224)
@@ -263,7 +263,6 @@
         work_function = fftpack.drfft
     return _raw_fft(tmp,n,axis,-1,overwrite_x,work_function)
 
-
 def _raw_fftnd(x, s, axes, direction, overwrite_x, work_function):
     """ Internal auxiliary function for fftnd, ifftnd."""
     if s is None:
@@ -352,6 +351,9 @@
     Notes:
       y == fftn(ifftn(y)) within numerical accuracy.
     """
+    return _raw_fftn_dispatch(x, shape, axes, overwrite_x, 1)
+
+def _raw_fftn_dispatch(x, shape, axes, overwrite_x, direction):
     tmp = asarray(x)
     if istype(tmp, numpy.complex128):
         overwrite_x = overwrite_x or (tmp is not x and not \
@@ -365,7 +367,7 @@
             work_function = fftpack.cfftnd
         else:
             work_function = fftpack.zfftnd
-    return _raw_fftnd(tmp,shape,axes,1,overwrite_x,work_function)
+    return _raw_fftnd(tmp,shape,axes,direction,overwrite_x,work_function)
 
 
 def ifftn(x, shape=None, axes=None, overwrite_x=0):
@@ -383,19 +385,8 @@
 
     Optional input: see fftn.__doc__
     """
-    tmp = asarray(x)
-    if istype(tmp, numpy.complex128):
-        overwrite_x = overwrite_x or (tmp is not x and not \
-                                      hasattr(x,'__array__'))
-        work_function = fftpack.zfftnd
-    elif istype(tmp, numpy.complex64):
-        raise NotImplementedError
-    else:
-        overwrite_x = 1
-        work_function = fftpack.zfftnd
-    return _raw_fftnd(tmp,shape,axes,-1,overwrite_x,work_function)
+    return _raw_fftn_dispatch(x, shape, axes, overwrite_x, -1)
 
-
 def fft2(x, shape=None, axes=(-2,-1), overwrite_x=0):
     """
     2-D discrete Fourier transform.




More information about the Scipy-svn mailing list