public void ReverseFastFourierTransform() { if (isFourierTransformed) { FourierTransform.FFT2D(data, Direction.Reverse); isFourierTransformed = false; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (((x + y) & 0x1) != 0) { data[y, x].Re *= -1; data[y, x].Im *= -1; } } } } }
public void FastFourierTransform() { if (!isFourierTransformed) { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if (((x + y) & 0x1) != 0) { data[y, x].Re *= -1; data[y, x].Im *= -1; } } } FourierTransform.FFT2D(data, Direction.Forward); isFourierTransformed = true; } }