[Scipy-svn] r4264 - in branches/refactor_fft/scipy/fftpack: . src src/djbfft
scipy-svn at scipy.org
scipy-svn at scipy.org
Sun May 11 07:01:35 EDT 2008
Author: cdavid
Date: 2008-05-11 06:01:25 -0500 (Sun, 11 May 2008)
New Revision: 4264
Added:
branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.cxx
Removed:
branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.c
Modified:
branches/refactor_fft/scipy/fftpack/setup.py
branches/refactor_fft/scipy/fftpack/src/drfft.cxx
Log:
djbfft implementation of rfft api is now a C++ source file.
Modified: branches/refactor_fft/scipy/fftpack/setup.py
===================================================================
--- branches/refactor_fft/scipy/fftpack/setup.py 2008-05-11 10:59:46 UTC (rev 4263)
+++ branches/refactor_fft/scipy/fftpack/setup.py 2008-05-11 11:01:25 UTC (rev 4264)
@@ -33,7 +33,7 @@
extra_info=[fft_opt_info, djbfft_info],
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/djbfft/drfft.cxx', 'src/fftpack/drfft.cxx',
'src/fftw3/drfft.cxx', 'src/fftw/drfft.cxx',
'src/fftpack/zfftnd.cxx', 'src/fftw/zfftnd.cxx',
'src/fftw3/zfftnd.cxx', 'src/mkl/zfftnd.cxx',
Deleted: branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.c
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.c 2008-05-11 10:59:46 UTC (rev 4263)
+++ branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.c 2008-05-11 11:01:25 UTC (rev 4264)
@@ -1,131 +0,0 @@
-/*
- * Last Change: Wed Aug 01 08:00 PM 2007 J
- *
- * Original code by Pearu Peterson.
- */
-
-/*
- * DJBFFT only implements size 2^N !
- *
- * drfft_def and drfft_def_destroy_cache are the functions used for size different
- * than 2^N
- */
-#ifdef WITH_FFTW3
-#define drfft_def drfft_fftw3
-#define drfft_def_destroy_cache destroy_drfftw3_caches
-#elif defined WITH_FFTW
-#define drfft_def drfft_fftw
-#define drfft_def_destroy_cache destroy_drfftw_caches
-#else
-#define drfft_def drfft_fftpack
-#define drfft_def_destroy_cache destroy_drfftpack_caches
-#endif
-
-GEN_CACHE(drdjbfft, (int n)
- , unsigned int *f;
- double *ptr;,
- caches_drdjbfft[i].n == n,
- caches_drdjbfft[id].f = (unsigned int *) malloc(sizeof(unsigned int) * (n));
- caches_drdjbfft[id].ptr = (double *) malloc(sizeof(double) * n);
- fftfreq_rtable(caches_drdjbfft[id].f, n);,
- free(caches_drdjbfft[id].f);
- free(caches_drdjbfft[id].ptr);,
- 10)
-
-/**************** ZFFT function **********************/
-static void drfft_djbfft(double * inout,
- int n, int direction, int howmany, int normalize)
-{
- int i;
- double *ptr = inout;
- double *ptrc = NULL;
- unsigned int *f = NULL;
-
- switch (n) {
- case 2:;
- case 4:;
- case 8:;
- case 16:;
- case 32:;
- case 64:;
- case 128:;
- case 256:;
- case 512:;
- case 1024:;
- case 2048:;
- case 4096:;
- case 8192:
- i = get_cache_id_drdjbfft(n);
- f = caches_drdjbfft[i].f;
- ptrc = caches_drdjbfft[i].ptr;
- }
- if (f == NULL) {
- drfft_def(inout, n, direction, howmany, normalize);
- }
-
- switch (direction) {
- case 1:
- for (i = 0; i < howmany; ++i, ptr += n) {
- if (f != NULL) {
- COPYSTD2DJB(ptr, ptrc, n);
- switch (n) {
-#define TMPCASE(N) case N: fftr8_##N(ptrc); break
- TMPCASE(2);
- TMPCASE(4);
- TMPCASE(8);
- TMPCASE(16);
- TMPCASE(32);
- TMPCASE(64);
- TMPCASE(128);
- TMPCASE(256);
- TMPCASE(512);
- TMPCASE(1024);
- TMPCASE(2048);
- TMPCASE(4096);
- TMPCASE(8192);
-#undef TMPCASE
- }
- COPYDJB2STD(ptrc, ptr, f, n);
- }
- }
- break;
-
- case -1:
- for (i = 0; i < howmany; ++i, ptr += n) {
- if (f != NULL) {
- COPYINVSTD2DJB(ptr, ptrc, normalize, f, n);
- switch (n) {
-
-#define TMPCASE(N)case N:if(normalize)fftr8_scale##N(ptrc);fftr8_un##N(ptrc);break
- TMPCASE(2);
- TMPCASE(4);
- TMPCASE(8);
- TMPCASE(16);
- TMPCASE(32);
- TMPCASE(64);
- TMPCASE(128);
- TMPCASE(256);
- TMPCASE(512);
- TMPCASE(1024);
- TMPCASE(2048);
- TMPCASE(4096);
- TMPCASE(8192);
-#undef TMPCASE
- }
- COPYINVDJB2STD(ptrc, ptr, n);
- }
- }
- break;
-
- default:
- fprintf(stderr, "drfft: invalid direction=%d\n", direction);
- }
-
- if (normalize && f != NULL && direction == 1) {
- double d = 1.0 / n;
- ptr = inout;
- for (i = n * howmany - 1; i >= 0; --i) {
- (*(ptr++)) *= d;
- }
- }
-}
Copied: branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.cxx (from rev 4252, branches/refactor_fft/scipy/fftpack/src/djbfft/drfft.c)
Modified: branches/refactor_fft/scipy/fftpack/src/drfft.cxx
===================================================================
--- branches/refactor_fft/scipy/fftpack/src/drfft.cxx 2008-05-11 10:59:46 UTC (rev 4263)
+++ branches/refactor_fft/scipy/fftpack/src/drfft.cxx 2008-05-11 11:01:25 UTC (rev 4264)
@@ -57,7 +57,7 @@
* above) for non 2^n * size
*/
#ifdef WITH_DJBFFT
- #include "djbfft/drfft.c"
+ #include "djbfft/drfft.cxx"
extern "C" void destroy_drfft_cache(void)
{
destroy_drdjbfft_caches();
More information about the Scipy-svn
mailing list