X-Git-Url: https://www.hackdaworld.org/gitweb/?a=blobdiff_plain;f=fourier%2Ffourier.h;h=57ef187b1591bd81d2fe52b442ce9917f587e506;hb=HEAD;hp=f3cab6b27977d56ccba1d2e50b0968afc9f60ffa;hpb=81e8529f1b659c27e65c66d12cb122ad19fcfba3;p=my-code%2Fapi.git diff --git a/fourier/fourier.h b/fourier/fourier.h index f3cab6b..57ef187 100644 --- a/fourier/fourier.h +++ b/fourier/fourier.h @@ -4,7 +4,11 @@ #define FOURIER_H /* includes */ +#define _GNU_SOURCE #include +#include +#include +#include /* defines */ #define F_SUCCESS 1 @@ -12,6 +16,7 @@ #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 { @@ -26,16 +31,23 @@ typedef struct s_fourier { #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_calc(t_fourier *fourier); +int fourier_dft_2d(t_fourier *fourier); +int fourier_dft_3d(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