Fourgen: A fast fourier transform program generator

Fourgen: A fast fourier transform program generator

C-393 Ct~mputcr Physics ('t~mmunications 12 (1976) 147--162 © North-Ilolland Publishing Coml~Uuy FOURGEN: A FAST FOURIER TRANSFORM PROGRAM GENERATOR ...

44KB Sizes 0 Downloads 167 Views

C-393 Ct~mputcr Physics ('t~mmunications 12 (1976) 147--162 © North-Ilolland Publishing Coml~Uuy

FOURGEN: A FAST FOURIER TRANSFORM PROGRAM GENERATOR J.A. MARUHN

Oak Ridge National Laboratory *. Oak Ridge. Tennessee 37830. USA Received 27 July 1976

PROGRAM SUMMARY Title oJ'program: FOURGEN Catalogtle mtmber: ABUO Computer: IBM 360/91 and 360/195; b~stallation: Oak Ridge National Laboratory Operating system: OS/360 t~'ogramming language used: PL/I (ref. [I 1) and ASA FORTRAN High speed storage required: 270 kBytes No. o f bits in a byte: 8 Overlay structztre: None No. oJ i~tagnetic tapes required: None Other peripherals used: Card reader, sequential output device (curd punch, disk, or tape) No. o J cards ha combined program and test deck: 600

Ko, words: General purpose, fast Fourier transform, Fourier, analysis, synthesis, sine analysis, cosine analysis, harmonic, generator. Nature o f the problem I:OURGEN generates specialized fast-Fourier-analysis codes based on the Hackney general-purpose code FOOR67 [2].

* Research sponsored by the US Energy Research and Development Administration under contract with Union Carbide Corporation.

Each code is performing one of the four transform types (sine analysis and synthesis, cosine analysis and synthesis, periodic analysis, and periodic synthesis) on a real vector of fixed lengt11.

Method oJ"solution FOURGEN is basically a PL/I translation of FOUR67, with eh exception that those parts of the code that actually operate on the input data are not executed but punched out asa complete Fortran subroutine. This eliminates essentially all program overhead. Restrictions on the complexity o f tile program FOURGEN is able to generate subroutines for all types of transforms mentioned above and all dimensions N = 21Q + 1 with IQ/> 3. However, for IQ t> 7 the size of the generated subroutines increases so fast that they may be useful only under very special circumstances. Typical running times On the 360/91 the generation of a subroutine with IQ < 7 always took less than 1 sec. Performance characteristics for the generated programs are discussed in detail in the long write-up. In general they are a factor of 2 - 4 faster than FOUR67. References [11 OS PL/I checkout and Optimizing Compilers: L+'mguage Reference Manual (I BM Order No. GC33-0009-3). [21 J.P. Christiansen and R.W. Hockey, Comput. Phys. Commun. 2 (1971) 127.