1d fourier trafo function added
[my-code/api.git] / fourier / fourier.h
1 /* fourier.h -- fourier headers */
2
3 #ifndef FOURIER_H
4 #define FOURIER_H
5
6 /* includes */
7 #include <stdio.h>
8
9 /* defines */
10 #define F_SUCCESS 1
11 #define F_ERROR -1
12 #define F_NOT_SUPPORTED -2
13 #define F_DIM_FAILURE -3
14 #define F_ALLOC_FAIL -4
15
16 /* fourier specific variables */
17 typedef struct s_complex {
18   double r;
19   double i;
20 } t_complex;
21
22 typedef struct s_fourier {
23   int outfd;
24   unsigned char type;
25 #define DFT (1<<0)
26 #define FFT (1<<1)
27 #define FWD (1<<2)
28 #define BWD (1<<3)
29   int dim;
30 #define MAX_DIM 3
31   t_complex *data[MAX_DIM];
32   t_complex *ftdata[MAX_DIM];
33   int data_len[MAX_DIM];
34 } t_fourier;
35
36 /* function prototypes */
37 int fourier_init(t_fourier *fourier,int outfd);
38 int fourier_dft_1d(t_fourier *fourier);
39 int fourier_calc(t_fourier *fourier);
40
41 #endif