Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: FFTW 3.3.5: Generating your own code Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: Chris@42:
Chris@42:

Chris@42: Previous: , Up: Installation and Customization   [Contents][Index]

Chris@42:
Chris@42:
Chris@42: Chris@42:

10.4 Generating your own code

Chris@42: Chris@42: Chris@42:

The directory genfft contains the programs that were used to Chris@42: generate FFTW’s “codelets,” which are hard-coded transforms of small Chris@42: sizes. Chris@42: Chris@42: We do not expect casual users to employ the generator, which is a rather Chris@42: sophisticated program that generates directed acyclic graphs of FFT Chris@42: algorithms and performs algebraic simplifications on them. It was Chris@42: written in Objective Caml, a dialect of ML, which is available at Chris@42: http://caml.inria.fr/ocaml/index.en.html. Chris@42: Chris@42:

Chris@42: Chris@42:

If you have Objective Caml installed (along with recent versions of Chris@42: GNU autoconf, automake, and libtool), then you Chris@42: can change the set of codelets that are generated or play with the Chris@42: generation options. The set of generated codelets is specified by the Chris@42: {dft,rdft}/{codelets,simd}/*/Makefile.am files. For example, you can add Chris@42: efficient REDFT codelets of small sizes by modifying Chris@42: rdft/codelets/r2r/Makefile.am. Chris@42: Chris@42: After you modify any Makefile.am files, you can type sh Chris@42: bootstrap.sh in the top-level directory followed by make to Chris@42: re-generate the files. Chris@42:

Chris@42:

We do not provide more details about the code-generation process, since Chris@42: we do not expect that most users will need to generate their own code. Chris@42: However, feel free to contact us at fftw@fftw.org if Chris@42: you are interested in the subject. Chris@42:

Chris@42: Chris@42:

You might find it interesting to learn Caml and/or some modern Chris@42: programming techniques that we used in the generator (including monadic Chris@42: programming), especially if you heard the rumor that Java and Chris@42: object-oriented programming are the latest advancement in the field. Chris@42: The internal operation of the codelet generator is described in the Chris@42: paper, “A Fast Fourier Transform Compiler,” by M. Frigo, which is Chris@42: available from the FFTW home page and also Chris@42: appeared in the Proceedings of the 1999 ACM SIGPLAN Conference on Chris@42: Programming Language Design and Implementation (PLDI). Chris@42:

Chris@42:
Chris@42:
Chris@42:

Chris@42: Previous: , Up: Installation and Customization   [Contents][Index]

Chris@42:
Chris@42: Chris@42: Chris@42: Chris@42: Chris@42: