#ifdef __cplusplus extern "C" { #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "arrays.h" #include "FFT.h" #ifdef __cplusplus } #endif MODULE = Math::FFT PACKAGE = Math::FFT PROTOTYPES: DISABLE void _cdft(n, isgn, a, ip, w) int n int isgn double *a int *ip double *w OUTPUT: a void _rdft(n, isgn, a, ip, w) int n int isgn double *a int *ip double *w OUTPUT: a void _ddct(n, isgn, a, ip, w) int n int isgn double *a int *ip double *w OUTPUT: a void _ddst(n, isgn, a, ip, w) int n int isgn double *a int *ip double *w OUTPUT: a void pdfct(nt, n, a, t, ip, w) int nt int n double *a double *t int *ip double *w CODE: coerce1D( (SV*) ST(3), nt); t = (double *) pack1D( (SV*) ST(3), 'd'); _dfct(n, a, t, ip, w); OUTPUT: a void pdfst(nt, n, a, t, ip, w) int nt int n double *a double *t = NO_INIT int *ip double *w CODE: coerce1D( (SV*) ST(3), nt); t = (double *) pack1D( (SV*) ST(3), 'd'); _dfst(n, a, t, ip, w); OUTPUT: a void _correl(n, corr, d1, d2, ip, w) int n double *corr = NO_INIT double *d1 double *d2 int *ip double *w PREINIT: int i; CODE: coerce1D( (SV*) ST(1), n); corr = (double *) pack1D( (SV*) ST(1), 'd'); corr[0] = d1[0]*d2[0]; corr[1] = d1[1]*d2[1]; for (i=2; i