[ILNumerics Computing Engine]

**Namespace:**ILNumerics

**Assembly:**ILNumerics.Computing (in ILNumerics.Computing.dll) Version: 5.5.0.0 (5.5.7503.3146)

#### Parameters

- A
- Type: ILNumericsInArrayfcomplex

Complex hermitian input array, symmetric in first 2 dimensions - m
- Type: SystemUInt32

Transformation column length - n
- Type: SystemUInt32

Transformation row length

#### Return Value

Type: RetArraySingleTransformation result

Exception | Condition |
---|---|

ArgumentException | is thrown if n or m is negative. In versions greater than 4.12 the API changed to UInt32 length paramters, making this exception obsolete. |

The transformation is computed for the first 2 dimensions, regardless of those dimensions being singleton or non-singleton. If A is an n-d array, the transformation is repeated for trailing dimensions of A respectively. The lengths of those trailing dimensions are not altered.

Since a transform of fcomplex hermitian input data results in the output having the imaginary part equals zero, only the real part is returned for convenience reasons.

No check is made for A being hermitian! If A is not hermitian (by means of round-off errors), the result will be wrong!

The data to be transformed (based on the array A) are resized according to the length parameter m and n. If m or n is larger then the length of the corresponding dimension of A, zeros will be padded, otherwise the dimensions are truncated respectively.

The two dimensional transformation is equivalent to repeatedly transforming the columns and after that transforming the rows of A. However, using this function may be of magnitudes faster than using 1D transformations. This depends on the algorithm and API provided by the underlying native library.

The forward fourier transform and the inverse fourier transform of a given data array A are mathematically equivalent. It's only a scaling factor which is needed to make sure, A equals ifft(fft(A)). That scaling is introduced in the inverse transform.

The transformation is computed by use of the native library which currently is set up for your processor and OS version. The underlying library is automatically choosen at ILNumerics startup and accessed via the static member ILMath.FFT. See the online documentation for more details in how to tune/configure and select dedicated native libraries.

[ILNumerics Computing Engine]