using MathNet.Numerics; using MathNet.Numerics.IntegralTransforms; namespace KLHZ.Trader.Core.Math.Declisions.Utils { public static class FFT { public static void Test() { var da = new List(); for (int i = 0; i < 1000; i++) { da.Add((float)System.Math.Sin(0.01 * i)); } var start = da.ToArray(); var arrv = da.Select(d => new Complex32(d, 0)).ToArray(); Fourier.Forward(arrv); Fourier.Inverse(arrv); var res = arrv.Select(a => a.Real).ToArray(); for (int i = 0; i < 1000; i++) { var d = res[i] - start[i]; } } } }