/* * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the ../../../LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ /*--------------------------------*-C-*---------------------------------* * File: * fftn.h * ---------------------------------------------------------------------* * Re[]: real value array * Im[]: imaginary value array * nTotal: total number of complex values * nPass: number of elements involved in this pass of transform * nSpan: nspan/nPass = number of bytes to increment pointer * in Re[] and Im[] * isign: exponent: +1 = forward -1 = reverse * scaling: normalizing constant by which the final result is *divided* * scaling == -1, normalize by total dimension of the transform * scaling < -1, normalize by the square-root of the total dimension * * ---------------------------------------------------------------------- * See the comments in the code for correct usage! */ #ifndef MODULES_THIRD_PARTY_FFT_FFT_H_ #define MODULES_THIRD_PARTY_FFT_FFT_H_ #define FFT_MAXFFTSIZE 2048 #define FFT_NFACTOR 11 typedef struct { unsigned int SpaceAlloced; unsigned int MaxPermAlloced; double Tmp0[FFT_MAXFFTSIZE]; double Tmp1[FFT_MAXFFTSIZE]; double Tmp2[FFT_MAXFFTSIZE]; double Tmp3[FFT_MAXFFTSIZE]; int Perm[FFT_MAXFFTSIZE]; int factor[FFT_NFACTOR]; } FFTstr; /* double precision routine */ int WebRtcIsac_Fftns(unsigned int ndim, const int dims[], double Re[], double Im[], int isign, double scaling, FFTstr* fftstate); #endif /* MODULES_THIRD_PARTY_FFT_FFT_H_ */