UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
fft.h
1 /* fft.h */
2 /* $Id: fft.h,v 1.5 2003/01/22 11:46:51 ibadm Exp $ */
3 #ifndef __fft_h
4 #define __fft_h
5 
6 #ifdef GE_BUILD
7 typedef float Real4;
8 typedef double Real8;
9 typedef int Int4;
10 #else
11 #include <mix/Types.h>
12 #endif
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif /* __cplusplus */
17 
18  /*************************************************************
19  * Подпрограммы БПФ с нормировкой семейства RFFT *
20  * *
21  * Параметры: *
22  * A - комплексный спектр (IDIR=1 выход; IDIR=-1 вход) *
23  * X - вещественный вектор (IDIR=1 вход; IDIR=-1 выход) *
24  * M - ближайшая к N сверху степень двойки *
25  * N - количество отсчетов в вещественном векторе X *
26  * N05 - количество комплексных отсчетов в спектре A *
27  * IDIR - направление преобразования: 1, -1 *
28  *************************************************************/
29 
30  /* Одинарной точности с нормировкой при прямом преобразовании. */
31  void Fortran(rfftn)(Real4 A[/* 2*N05 */], Real4 X[/* N */],
32  Int4* M, Int4* N, Int4* N05, Int4* IDIR);
33 
34  /* Одинарной точности с нормировкой при обратном преобразовании. */
35  void Fortran(rfftnm)(Real4 A[/* 2*N05 */], Real4 X[/* N */],
36  Int4* M, Int4* N, Int4* N05, Int4* IDIR);
37 
38  /* Двойной точности с нормировкой при прямом преобразовании. */
39  void Fortran(rfftnd)(Real8 A[/* 2*N05 */], Real8 X[/* N */],
40  Int4* M, Int4* N, Int4* N05, Int4* IDIR);
41 
42  void Fortran(drfftn)(double A[/* 2*N05 */], double X[/* N */],
43  int* M, int* N, int* N05, int* IDIR);
44 
45  /* Двумерное быстрое преобразование Фурье двойной точности */
46  void Fortran (rdft2d) (int*, int*, int*, int*, double*, int*, double*);
47 
48  /* Complex Fourier transformation */
49  void Fortran (cdft2d) (int*, int*, int*, int*, double*, int*, double*);
50 
51 
52  /* Быстрое преобразование Фурье двойной точности */
53  void Fortran (fourtd) (double*, int*, int*, int*, int*, double*);
54 
55 #ifdef __cplusplus
56 };
57 #endif /* __cplusplus */
58 
59 #endif /* fft.h */