ts-scikit
Version:
A scientific toolkit written in Typescript
152 lines (151 loc) • 5.52 kB
TypeScript
/**
* A prime-factor (PFA) complex-to-complex FFT.
* <p>
* The FFT length nfft must be composed of mutually prime factors from the
* set { 2, 3, 4, 5, 7, 8, 9, 11, 13, 16 }. This restriction implies n
* cannot exceed 720720 = 5 * 7 * 9 * 11 * 13 * 16.
* <p>
* References:
* <ul><li>
* Temperton, C., 1985, Implementation of a self-sorting in-place prime
* factor fft algorithm: Journal of Computational Physics, v. 58,
* p. 283-299.
* </li><li>
* Temperton, C., 1988, A new set of minimum-add rotated rotated dft
* modules: Journal of Computational Physics, v. 75, p. 190-198.
* </li></ul>
*/
export declare class FftPfa {
private static readonly _P120;
private static readonly _P142;
private static readonly _P173;
private static readonly _P222;
private static readonly _P239;
private static readonly _P281;
private static readonly _P342;
private static readonly _P354;
private static readonly _P382;
private static readonly _P415;
private static readonly _P433;
private static readonly _P464;
private static readonly _P540;
private static readonly _P559;
private static readonly _P568;
private static readonly _P587;
private static readonly _P623;
private static readonly _P642;
private static readonly _P654;
private static readonly _P663;
private static readonly _P707;
private static readonly _P748;
private static readonly _P755;
private static readonly _P766;
private static readonly _P781;
private static readonly _P822;
private static readonly _P841;
private static readonly _P866;
private static readonly _P885;
private static readonly _P900;
private static readonly _P909;
private static readonly _P923;
private static readonly _P935;
private static readonly _P939;
private static readonly _P951;
private static readonly _P959;
private static readonly _P970;
private static readonly _P974;
private static readonly _P984;
private static readonly _P989;
private static readonly _P992;
private static readonly _PONE;
private static readonly _NFAC;
private static readonly _kfac;
private static readonly _NTABLE;
private static readonly _ntable;
private static readonly _ctable;
/**
* Determines whether the specified FFT length is valid.
* @param nfft the FFT length.
* @returns true, if FFT length is value; false, otherwise.
*/
static IsValidNFFT(nfft: number): boolean;
/**
* Returns an FFT length optimized for memory.
* <p>
* The FFT length will be the smallest valid length that is not less than
* the specified length n.
* @param n the lower bound on FFT length.
* @returns the FFT length.
*/
static SmallNFFT(n: number): number;
/**
* Returns an FFT length optimized for speed.
* <p>
* The FFT length will be the fastest valid length that is not less than
* the specified length n.
* @param n the lower bound on FFT length.
* @returns the FFT length.
*/
static FastNFFT(n: number): number;
/**
* Prime-factor complex-to-complex FFT for 1D arrays.
* @param sign the sign of the exponent in the Fourier transform.
* @param nfft the FFT length.
* @param z array[2*nfft] of nfft packed complex numbers.
*/
static Transform(sign: number, nfft: number, z: number[]): void;
/**
* Prime-factor complex-to-complex multiple FFT.
* <p>
* Performs multiple transforms across the 2nd (slowest) dimension of a 2-D
* array. In this version, z[0:nfft-1][0,2,4,...] contains the real parts,
* and z[0:nfft-1][1,3,5,...] contains the imaginary parts.
* @param sign the sign of the exponent in the Fourier transform.
* @param n1 the number of transforms (fast dimension).
* @param nfft the FFT length (slow dimension).
* @param z array[nfft][2*n1] of n1*nfft packed complex numbers
*/
static Transform2a(sign: number, n1: number, nfft: number, z: number[][]): void;
/**
* Prime-factor complex-to-complex multiple FFT.
* <p>
* Performs multiple transforms across the 2nd (slowest) dimension of a 2-D
* array. In this version, z[0,2,4,...][0:n1-1] contains the real parts,
* and z[1,3,5,...][0:n1-1] contains the imaginary parts.
* @param sign the sign of the exponent in the Fourier transform.
* @param n1 the number of transforms (fast dimension).
* @param nfft the FFT length (slow dimension).
* @param z array[nfft*2[n1] of nfft*n1 complex numbers.
*/
static Transform2b(sign: number, n1: number, nfft: number, z: number[][]): void;
private static _pfa2;
private static _pfa3;
private static _pfa4;
private static _pfa5;
private static _pfa7;
private static _pfa8;
private static _pfa9;
private static _pfa11;
private static _pfa13;
private static _pfa16;
private static _pfa2a;
private static _pfa3a;
private static _pfa4a;
private static _pfa5a;
private static _pfa7a;
private static _pfa8a;
private static _pfa9a;
private static _pfa11a;
private static _pfa13a;
private static _pfa16a;
private static _pfa2b;
private static _pfa3b;
private static _pfa4b;
private static _pfa5b;
private static _pfa7b;
private static _pfa8b;
private static _pfa9b;
private static _pfa11b;
private static _pfa13b;
private static _pfa16b;
}