private static void IDFT(Complex[] data)
{
int n = data.Length;
if (n == 0)
return;
for (int i = 0; i < data.Length; i++)
data[i] = new Complex(data[i].Imaginary, data[i].Real);
if ((n & (n - 1)) == 0)
{
// Is power of 2
TransformRadix2(data);
}
else
{
// More complicated algorithm for arbitrary sizes
TransformBluestein(data);
}
for (int i = 0; i < data.Length; i++)
{
double im = data[i].Imaginary;
double re = data[i].Real;
data[i] = new Complex(im, re);
}
}