/* includes */
#define _GNU_SOURCE
#include <stdio.h>
+#include <string.h>
#include <stdlib.h>
#include <math.h>
#define F_NOT_SUPPORTED -2
#define F_DIM_FAILURE -3
#define F_ALLOC_FAIL -4
+#define F_FFT_IMPOSSIBLE -5
/* fourier specific variables */
typedef struct s_complex {
#define FFT (1<<1)
#define FWD (1<<2)
#define BWD (1<<3)
- int dim;
#define MAX_DIM 3
- t_complex *data[MAX_DIM];
- t_complex *ftdata[MAX_DIM];
+ int dim;
+ t_complex *data;
+ t_complex *ftdata;
+ t_complex **revdata;
int data_len[MAX_DIM];
+ int log2len[MAX_DIM];
} t_fourier;
/* function prototypes */
int fourier_init(t_fourier *fourier,int outfd);
+int fourier_alloc_data(t_fourier *fourier);
int fourier_dft_1d(t_fourier *fourier);
int fourier_dft_2d(t_fourier *fourier);
int fourier_dft_3d(t_fourier *fourier);
-int fourier_calc(t_fourier *fourier);
+int fourier_fft_1d_init(t_fourier *fourier);
+int fourier_fft_1d(t_fourier *fourier);
+int fourier_shutdown(t_fourier *fourier);
#endif