Update copyright date; remove old CVS keyword
[ctsim.git] / include / fourier.h
index e1716f88fb9deef37de60be5ea9729a756eafce6..fd34545570251d552859f4388b77ff7a86b2a420 100644 (file)
@@ -7,9 +7,7 @@
 **   Date Started:  Dec 2000
 **
 **  This is part of the CTSim program
-**  Copyright (c) 1983-2001 Kevin Rosenberg
-**
-**  $Id$
+**  Copyright (c) 1983-2009 Kevin Rosenberg
 **
 **  This program is free software; you can redistribute it and/or modify
 **  it under the terms of the GNU General Public License (version 2) as
@@ -26,6 +24,9 @@
 ******************************************************************************/
 
 #include <complex>
+#ifdef HAVE_FFTW
+#include <fftw3.h>
+#endif
 
 class ImageFile;
 
@@ -34,6 +35,11 @@ public:
     static void shuffleFourierToNaturalOrder (ImageFile& im);
     static void shuffleNaturalToFourierOrder (ImageFile& im);
 
+#ifdef HAVE_FFTW
+    static void shuffleFourierToNaturalOrder (fftw_complex* pc, const int n);
+    static void shuffleNaturalToFourierOrder (fftw_complex* pc, const int n);
+#endif
+
 // Odd Number of Points
 //   Natural Frequency Order: -(n-1)/2...-1,0,1...(n-1)/2
 //   Fourier Frequency Order: 0, 1..(n-1)/2,-(n-1)/2...-1
@@ -41,7 +47,7 @@ public:
 //   Natural Frequency Order: -n/2...-1,0,1...((n/2)-1)
 //   Fourier Frequency Order: 0,1...((n/2)-1),-n/2...-1
     template<class T>
-    static void shuffleNaturalToFourierOrder (T* pVector, const int n) 
+    static void shuffleNaturalToFourierOrder (T* pVector, const int n)
     {
       T* pTemp = new T [n];
       int i;
@@ -74,7 +80,7 @@ public:
     int i;
     if (isOdd(n)) { // Odd
       int iHalfN = (n - 1) / 2;
-    
+
       pTemp[iHalfN] = pVector[0];
       for (i = 0; i < iHalfN; i++)
         pTemp[i + 1 + iHalfN] = pVector[i + 1];
@@ -88,7 +94,7 @@ public:
       for (i = 0; i < iHalfN - 1; i++)
         pTemp[i + iHalfN + 1] = pVector[i+1];
     }
-  
+
     for (i = 0; i < n; i++)
       pVector[i] = pTemp[i];
     delete pTemp;