public void FourierDefaultTransformIsReversible32() { var samples = Generate.RandomComplex32(0x7FFF, GetUniform(1)); var work = new Complex32[samples.Length]; samples.CopyTo(work, 0); Fourier.Forward(work); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); Fourier.Inverse(work); AssertHelpers.AlmostEqual(samples, work, 10); Fourier.Inverse(work, FourierOptions.Default); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); Fourier.Forward(work, FourierOptions.Default); AssertHelpers.AlmostEqual(samples, work, 10); }
public void FourierRadix2IsReversible32(FourierOptions options) { var samples = Generate.RandomComplex32(0x8000, GetUniform(1)); var work = new Complex32[samples.Length]; samples.CopyTo(work, 0); Fourier.Forward(work, options); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); Fourier.Inverse(work, options); AssertHelpers.AlmostEqual(samples, work, 12); }
public void ReferenceDftIsReversible32(FourierOptions options) { var samples = Generate.RandomComplex32(0x80, GetUniform(1)); var work = new Complex32[samples.Length]; samples.CopyTo(work, 0); ReferenceDiscreteFourierTransform.Forward(work, options); Assert.IsFalse(work.ListAlmostEqual(samples, 6)); ReferenceDiscreteFourierTransform.Inverse(work, options); AssertHelpers.AlmostEqual(samples, work, 11); }