Go to the documentation of this file.00001 #include "../eus.h"
00002
00003 pointer FFT(n,argv)
00004 int n;
00005 pointer argv[];
00006 { pointer a;
00007 int size;
00008 float *wsave;
00009
00010 ckarg(1);
00011 a=argv[0];
00012 if (!isfltvector(a)) error(E_FLOATVECTOR);
00013 size=vecsize(a);
00014 wsave=(float *)malloc((size*3+15)*sizeof(float));
00015 rffti_(&size,wsave);
00016 rfftf_(&size,a->c.fvec.fv,wsave);
00017 free(wsave);
00018 return(a);}
00019
00020 pointer INVFFT(n,argv)
00021 int n;
00022 pointer argv[];
00023 { pointer a;
00024 int size;
00025 float *wsave;
00026
00027 ckarg(1);
00028 a=argv[0];
00029 if (!isfltvector(a)) error(E_FLOATVECTOR);
00030 size=vecsize(a);
00031 wsave=(float *)malloc((size*3+15)*sizeof(float));
00032 rffti_(&size,wsave);
00033 rfftb_(&size,a->c.fvec.fv,wsave);
00034 free(wsave);
00035 return(a);}
00036
00037 eusmain(mod)
00038 pointer mod;
00039 {
00040 defun("FFT",mod,FFT);
00041 defun("INVERSE-FFT",mod,INVFFT);
00042 }