void wt1(float a[], unsigned long n, int isign, void (*wtstep)(float [], unsigned long, int)) { unsigned long nn; if (n < 4) return; if (isign >= 0) { for (nn=n;nn>=4;nn>>=1) (*wtstep)(a,nn,isign); } else { for (nn=4;nn<=n;nn<<=1) (*wtstep)(a,nn,isign); } }