init fourier.* (will be changed)
[my-code/api.git] / fourier / fourier.c
1 /* fourier.c -- fourier transformation api
2  *
3  * author: hackbard@hackdaworld.dyndns.org
4  *
5  */
6
7 #include "fourier.h"
8
9 int fourier_init(t_fourier *fourier,int outfd) {
10
11  fprintf(outfd,"[fourier] initializing fourier api ...\n");
12
13  fourier->outfd=outfd;
14  fourier->type=0;
15  fourier->dim=0;
16
17  return F_SUCCESS;
18 }
19
20 int fourier_set_datalen(t_fourier *fourier,int dim,int len) {
21
22   int i;
23
24   if(dim>MAX_DIM) {
25     fprintf(fourier->outfd,"[fourier] dimension %d not supported\n",dim);
26     return F_SET_DLEN_ERROR;
27   }
28
29   fourier->data_len[dim]=len;
30
31   return F_SUCCESS;
32 }
33
34 int fourier_malloc(t_fourier *fourier) {
35
36   int i;
37
38   if(fourier->dim==0) {
39     fprintf(fourier->outfd,"[fourier] dimension not specified\n");
40     return F_DIM_ERROR;
41   }
42   for(i=0;i<fourier->dim;i++) {
43     if(fourier->data_len[i]==0) {
44       fprintf(fourier->outfd,"[fourier] invalid data len for dim %d\n",i);
45       return F_DLEN_ERROR;
46     }
47   }
48
49   for(i=0;i<fourier->dim;i++) {
50     if((fourier->data[i]=(t_complex *)malloc(sizeof(t_complex)*fourier->data_len[i]))==NULL) {
51       fprintf(fourier->outfd,"[fourier] malloc for data dim %d failed\n",i);
52       return F_MALLOC_ERROR;
53     }
54   }
55
56   return F_SUCCESS;
57 }