rfft.c
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   }


euslisp
Author(s): Toshihiro Matsui
autogenerated on Thu Mar 9 2017 04:57:50