X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=fourier%2Ffourier.h;h=57ef187b1591bd81d2fe52b442ce9917f587e506;hb=HEAD;hp=39aee41ce5ba294239b47a8bf60c43dca19734cf;hpb=024d1f9a04d8dd291883d1781e671a4eab7b4c9f;p=my-code%2Fapi.git diff --git a/fourier/fourier.h b/fourier/fourier.h index 39aee41..57ef187 100644 --- a/fourier/fourier.h +++ b/fourier/fourier.h @@ -6,6 +6,7 @@ /* includes */ #define _GNU_SOURCE #include +#include #include #include @@ -15,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 { @@ -29,18 +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_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