[Scipy-svn] r4310 - in branches/refactor_fft/scipy/fftpack: . src/fftw
scipy-svn at scipy.org
scipy-svn at scipy.org
Tue May 13 04:26:15 EDT 2008
Author: cdavid
Date: 2008-05-13 03:26:09 -0500 (Tue, 13 May 2008)
New Revision: 4310
Modified:
branches/refactor_fft/scipy/fftpack/setup.py
branches/refactor_fft/scipy/fftpack/src/fftw/api.h
branches/refactor_fft/scipy/fftpack/src/fftw/convolve.cxx
Log:
fftw backend as a lib now works for convolve too.
Modified: branches/refactor_fft/scipy/fftpack/setup.py
===================================================================
--- branches/refactor_fft/scipy/fftpack/setup.py 2008-05-13 08:12:24 UTC (rev 4309)
+++ branches/refactor_fft/scipy/fftpack/setup.py 2008-05-13 08:26:09 UTC (rev 4310)
@@ -8,7 +8,7 @@
from numpy.distutils.system_info import get_info
config = Configuration('fftpack',parent_package, top_path)
- backends = ['mkl', 'djbfft', 'fftw3', 'fftw', 'fftpack']
+ backends = ['mkl', 'djbfft', 'fftw3', 'fftw2', 'fftpack']
info = dict([(k, False) for k in backends])
djbfft_info = {}
@@ -20,17 +20,17 @@
else:
def has_optimized_backend():
# Take the first in the list
- for b in ['fftw3', 'fftw']:
+ for b in ['fftw3', 'fftw2']:
tmp = get_info(b)
if tmp:
- fft_opt_info = tmp
+ opt = tmp
info[b] = True
- return True
+ return opt
return False
- if not has_optimized_backend():
+ fft_opt_info = has_optimized_backend()
+ if not fft_opt_info:
info['fftpack'] = True
- fft_opt_info = {}
djbfft_info = get_info('djbfft')
if djbfft_info:
@@ -48,7 +48,7 @@
['zfft.cxx', 'drfft.cxx', 'convolve.cxx']]
backends_src['fftw3'] = [join('src/fftw3/', i) for i in
['zfft.cxx', 'drfft.cxx', 'zfftnd.cxx']]
- backends_src['fftw'] = [join('src/fftw/', i) for i in
+ backends_src['fftw2'] = [join('src/fftw/', i) for i in
['zfft.cxx', 'drfft.cxx', 'zfftnd.cxx']]
backends_src['fftpack'] = [join('src/fftpack/', i) for i in
['zfft.cxx', 'drfft.cxx', 'zfftnd.cxx']]
@@ -70,9 +70,9 @@
if info['djbfft']:
build_backend('djbfft', [djbfft_info])
- for b in ['fftw3', 'fftw']:
+ for b in ['fftw3', 'fftw2']:
if info[b]:
- build_backend(b, [djbfft_info, fft_opt_info])
+ build_backend(b, [fft_opt_info])
if info['fftpack']:
build_backend('fftpack', [])
Modified: branches/refactor_fft/scipy/fftpack/src/fftw/api.h
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/fftw/api.h 2008-05-13 08:12:24 UTC (rev 4309)
+++ branches/refactor_fft/scipy/fftpack/src/fftw/api.h 2008-05-13 08:26:09 UTC (rev 4310)
@@ -3,6 +3,9 @@
#include "fftpack.h"
+/*
+ * straight FFT api
+ */
void drfft_fftw(double * inout, int n, int direction, int howmany,
int normalize);
@@ -13,4 +16,15 @@
int *dims, int direction, int howmany,
int normalize);
+/*
+ * Convolution api
+ */
+void convolve_fftw(int n, double *inout, double *omega, int swap_real_imag);
+void convolve_z_fftw(int n, double *inout, double *omega_real,
+ double* omega_imag);
+
+void init_convolution_kernel_fftw(int n, double *omega, int d,
+ double (*kernel_func) (int),
+ int zero_nyquist);
+
#endif
Modified: branches/refactor_fft/scipy/fftpack/src/fftw/convolve.cxx
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/fftw/convolve.cxx 2008-05-13 08:12:24 UTC (rev 4309)
+++ branches/refactor_fft/scipy/fftpack/src/fftw/convolve.cxx 2008-05-13 08:26:09 UTC (rev 4310)
@@ -1,5 +1,10 @@
#include <new>
+#include <rfftw.h>
+#include <fftw.h>
+
+#include "api.h"
+
#include "cycliccache.h"
using namespace fft;
@@ -117,7 +122,6 @@
CacheManager<DRFFTWCacheId, DRFFTWCache> drfftw_cmgr(20);
/**************** convolve **********************/
-static
void convolve_fftw(int n,double* inout,double* omega,int swap_real_imag)
{
DRFFTWCache *cache;
@@ -127,7 +131,6 @@
}
/**************** convolve **********************/
-static
void convolve_z_fftw(int n,double* inout,double* omega_real,double* omega_imag)
{
DRFFTWCache *cache;
@@ -136,7 +139,6 @@
cache->convolve_z(inout, omega_real, omega_imag);
}
-static
void init_convolution_kernel_fftw(int n,double* omega, int d,
double (*kernel_func)(int),
int zero_nyquist)
More information about the Scipy-svn
mailing list