X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=fourier%2Ffourier.c;fp=fourier%2Ffourier.c;h=14878e20ccde80d6139c9483c13da21ee22f7854;hb=15a0affd01053e899568c0ee1e7bd1315e11f925;hp=0000000000000000000000000000000000000000;hpb=ea939060d8c1df6b3de0b3204a0b5b06018ee8da;p=my-code%2Fapi.git diff --git a/fourier/fourier.c b/fourier/fourier.c new file mode 100644 index 0000000..14878e2 --- /dev/null +++ b/fourier/fourier.c @@ -0,0 +1,57 @@ +/* fourier.c -- fourier transformation api + * + * author: hackbard@hackdaworld.dyndns.org + * + */ + +#include "fourier.h" + +int fourier_init(t_fourier *fourier,int outfd) { + + fprintf(outfd,"[fourier] initializing fourier api ...\n"); + + fourier->outfd=outfd; + fourier->type=0; + fourier->dim=0; + + return F_SUCCESS; +} + +int fourier_set_datalen(t_fourier *fourier,int dim,int len) { + + int i; + + if(dim>MAX_DIM) { + fprintf(fourier->outfd,"[fourier] dimension %d not supported\n",dim); + return F_SET_DLEN_ERROR; + } + + fourier->data_len[dim]=len; + + return F_SUCCESS; +} + +int fourier_malloc(t_fourier *fourier) { + + int i; + + if(fourier->dim==0) { + fprintf(fourier->outfd,"[fourier] dimension not specified\n"); + return F_DIM_ERROR; + } + for(i=0;idim;i++) { + if(fourier->data_len[i]==0) { + fprintf(fourier->outfd,"[fourier] invalid data len for dim %d\n",i); + return F_DLEN_ERROR; + } + } + + for(i=0;idim;i++) { + if((fourier->data[i]=(t_complex *)malloc(sizeof(t_complex)*fourier->data_len[i]))==NULL) { + fprintf(fourier->outfd,"[fourier] malloc for data dim %d failed\n",i); + return F_MALLOC_ERROR; + } + } + + return F_SUCCESS; +}