** 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
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
// 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;
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];
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;