## Fast Fourier Transforms | Extreme Optimization Numerical Libraries for .NET Professional |

The **Extreme Optimization Numerical Libraries for .NET**
provide a set of classes for computing
the Discrete Fourier Transform of real and complex signals.

When only very few Fourier transforms of a given length need to be computed,
the Vector

To compute the Fourier transform of a real sequence, use
FourierTransform.
This method takes as its only argument a
Vector

The inverse transform is computed using the
InverseFourierTransform

The following example computes the Fourier transform of a short vector, and then computes the inverse transform. The result is a vector identical to the first one:

var v = Vector.Create(1024, i => Math.Sin(0.05 * i)); var w = Vector.FourierTransform(v);

For complex signals, the Vector

In many applications, many Fourier transforms of the same length need to be calculated. To make this process more efficient,
you can use Fft

The FftOperations

In order to use the native provider, the assembly containing the native FFT code for the current processor architecture must be present. This assembly is called Extreme.NativeFft.x86.20.dll on 32 bit systems and Extreme.NativeFft.x64.20.dll on 64 bit systems. If this assembly cannot be found, the managed provider is used instead.

You can access the two providers through the ManagedImplementation and NativeImplementation properties.

The managed provider has two additional properties that indicate when to switch to the native provider (if it is present). The RealManagedThresholdLength property specifies the shortest length of a real FFT for which the native FFT provider will be used. The default is 64. The ComplexManagedThresholdLength property specifies the shortest length of a complex FFT for which the native FFT provider will be used. The default is 32.

Using FFT providers, you can obtain Fft

Copyright Â© 2004-2021,
Extreme Optimization. All rights reserved.

*Extreme Optimization,* *Complexity made simple*, *M#*, and *M
Sharp* are trademarks of ExoAnalytics Inc.

*Microsoft*, *Visual C#, Visual Basic, Visual Studio*, *Visual
Studio.NET*, and the *Optimized for Visual Studio* logo

are
registered trademarks of Microsoft Corporation.