[Scipy-svn] r4248 - in branches/refactor_fft/scipy/fftpack: . src src/fftw
scipy-svn at scipy.org
scipy-svn at scipy.org
Thu May 8 08:36:35 EDT 2008
Author: cdavid
Date: 2008-05-08 07:36:20 -0500 (Thu, 08 May 2008)
New Revision: 4248
Added:
branches/refactor_fft/scipy/fftpack/src/fftw/drfft.cxx
branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.cxx
Removed:
branches/refactor_fft/scipy/fftpack/src/fftw/drfft.c
branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.c
Modified:
branches/refactor_fft/scipy/fftpack/setup.py
branches/refactor_fft/scipy/fftpack/src/drfft.cxx
branches/refactor_fft/scipy/fftpack/src/zfftnd.cxx
Log:
Change C->C++ extension for fftw2 implementation of zfftnd/drfft.
Modified: branches/refactor_fft/scipy/fftpack/setup.py
===================================================================
--- branches/refactor_fft/scipy/fftpack/setup.py 2008-05-08 12:26:26 UTC (rev 4247)
+++ branches/refactor_fft/scipy/fftpack/setup.py 2008-05-08 12:36:20 UTC (rev 4248)
@@ -34,8 +34,8 @@
depends=['src/djbfft/zfft.cxx', 'src/fftw/zfft.cxx', 'src/fftpack/zfft.cxx',
'src/fftw3/zfft.cxx', 'src/mkl/zfft.cxx',
'src/djbfft/drfft.c', 'src/fftpack/drfft.cxx',
- 'src/fftw3/drfft.cxx', 'src/fftw/drfft.c',
- 'src/fftpack/zfftnd.cxx', 'src/fftw/zfftnd.c',
+ 'src/fftw3/drfft.cxx', 'src/fftw/drfft.cxx',
+ 'src/fftpack/zfftnd.cxx', 'src/fftw/zfftnd.cxx',
'src/fftw3/zfftnd.cxx', 'src/mkl/zfftnd.c',
],
include_dirs = ['src'],
Modified: branches/refactor_fft/scipy/fftpack/src/drfft.cxx
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/drfft.cxx 2008-05-08 12:26:26 UTC (rev 4247)
+++ branches/refactor_fft/scipy/fftpack/src/drfft.cxx 2008-05-08 12:36:20 UTC (rev 4248)
@@ -41,7 +41,7 @@
GEN_PUBLIC_API(fftw3)
#endif
#elif defined WITH_FFTW
- #include "fftw/drfft.c"
+ #include "fftw/drfft.cxx"
#ifndef WITH_DJBFFT
GEN_PUBLIC_API(fftw)
#endif
Deleted: branches/refactor_fft/scipy/fftpack/src/fftw/drfft.c
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/fftw/drfft.c 2008-05-08 12:26:26 UTC (rev 4247)
+++ branches/refactor_fft/scipy/fftpack/src/fftw/drfft.c 2008-05-08 12:36:20 UTC (rev 4248)
@@ -1,70 +0,0 @@
-/*
- * Last Change: Wed Aug 01 07:00 PM 2007 J
- *
- * FFTW2 implementation
- *
- * Original code by Pearu Peterson.
- */
-
-GEN_CACHE(drfftw, (int n, int d, int flags)
- , int direction;
- int flags;
- rfftw_plan plan;
- double *ptr;, ((caches_drfftw[i].n == n) &&
- (caches_drfftw[i].direction == d) &&
- (caches_drfftw[i].flags == flags))
- , caches_drfftw[id].direction = d;
- caches_drfftw[id].flags = flags;
- caches_drfftw[id].plan = rfftw_create_plan(n,
- (d >
- 0 ?
- FFTW_REAL_TO_COMPLEX
- :
- FFTW_COMPLEX_TO_REAL),
- flags);
- caches_drfftw[id].ptr =
- (double *) malloc(sizeof(double) * (n));,
- rfftw_destroy_plan(caches_drfftw[id].plan);
- free(caches_drfftw[id].ptr);, 10)
-
-static void drfft_fftw(double *inout, int n, int dir, int
- howmany, int normalize)
-{
- int i;
- double *ptr = inout;
- double *ptrc = NULL;
- rfftw_plan plan = NULL;
-
- i = get_cache_id_drfftw(n, dir, FFTW_IN_PLACE | FFTW_ESTIMATE);
- plan = caches_drfftw[i].plan;
- ptrc = caches_drfftw[i].ptr;
-
- switch (dir) {
- case 1:
- for (i = 0; i < howmany; ++i, ptr += n) {
- memcpy(ptrc, ptr, sizeof(double) * n);
- rfftw(plan, 1, (fftw_real *) ptrc, 1, 1, NULL, 1, 1);
- COPYRFFTW2STD(ptrc, ptr, n);
- }
- break;
-
- case -1:
- for (i = 0; i < howmany; ++i, ptr += n) {
- COPYINVRFFTW2STD(ptr, ptrc, n);
- rfftw(plan, 1, (fftw_real *) ptrc, 1, 1, NULL, 1, 1);
- memcpy(ptr, ptrc, sizeof(double) * n);
- }
- break;
-
- default:
- fprintf(stderr, "drfft: invalid direction=%d\n", dir);
- }
-
- if (normalize) {
- double d = 1.0 / n;
- ptr = inout;
- for (i = n * howmany - 1; i >= 0; --i) {
- (*(ptr++)) *= d;
- }
- }
-}
Copied: branches/refactor_fft/scipy/fftpack/src/fftw/drfft.cxx (from rev 4244, branches/refactor_fft/scipy/fftpack/src/fftw/drfft.c)
Deleted: branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.c
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.c 2008-05-08 12:26:26 UTC (rev 4247)
+++ branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.c 2008-05-08 12:36:20 UTC (rev 4248)
@@ -1,53 +0,0 @@
-/*
- * fftw2 backend for multi dimensional fft
- *
- * Original code by Pearu Peaterson
- *
- * Last Change: Thu Sep 06 05:00 PM 2007 J
- */
-
-GEN_CACHE(zfftnd_fftw, (int n, int *dims, int d, int flags)
- , int direction;
- int *dims;
- fftwnd_plan plan;, ((caches_zfftnd_fftw[i].n == n) &&
- (caches_zfftnd_fftw[i].direction == d) &&
- (equal_dims
- (n, caches_zfftnd_fftw[i].dims, dims)))
- , caches_zfftnd_fftw[id].direction = d;
- caches_zfftnd_fftw[id].n = n;
- caches_zfftnd_fftw[id].dims = (int *) malloc(sizeof(int) * n);
- memcpy(caches_zfftnd_fftw[id].dims, dims, sizeof(int) * n);
- caches_zfftnd_fftw[id].plan =
- fftwnd_create_plan(n, dims,
- (d > 0 ? FFTW_FORWARD : FFTW_BACKWARD),
- flags);,
- fftwnd_destroy_plan(caches_zfftnd_fftw[id].plan);
- free(caches_zfftnd_fftw[id].dims);, 10)
-
-
-extern void zfftnd_fftw(complex_double * inout, int rank,
- int *dims, int direction, int howmany,
- int normalize)
-{
- int i, sz;
- complex_double *ptr = inout;
- fftwnd_plan plan = NULL;
-
- sz = 1;
- for (i = 0; i < rank; ++i) {
- sz *= dims[i];
- }
- i = get_cache_id_zfftnd_fftw(rank, dims, direction,
- FFTW_IN_PLACE | FFTW_ESTIMATE);
- plan = caches_zfftnd_fftw[i].plan;
- for (i = 0; i < howmany; ++i, ptr += sz) {
- fftwnd_one(plan, (fftw_complex *) ptr, NULL);
- }
- if (normalize) {
- ptr = inout;
- for (i = sz * howmany - 1; i >= 0; --i) {
- *((double *) (ptr)) /= sz;
- *((double *) (ptr++) + 1) /= sz;
- }
- }
-}
Copied: branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.cxx (from rev 4244, branches/refactor_fft/scipy/fftpack/src/fftw/zfftnd.c)
Modified: branches/refactor_fft/scipy/fftpack/src/zfftnd.cxx
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/zfftnd.cxx 2008-05-08 12:26:26 UTC (rev 4247)
+++ branches/refactor_fft/scipy/fftpack/src/zfftnd.cxx 2008-05-08 12:36:20 UTC (rev 4248)
@@ -34,7 +34,7 @@
#include "fftw3/zfftnd.cxx"
GEN_PUBLIC_API(fftw3)
#elif defined WITH_FFTW
- #include "fftw/zfftnd.c"
+ #include "fftw/zfftnd.cxx"
GEN_PUBLIC_API(fftw)
#elif defined WITH_MKL
#include "mkl/zfftnd.c"
More information about the Scipy-svn
mailing list