+/* 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;i<fourier->dim;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;i<fourier->dim;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;
+}