The FFTW Codelet Generator In this directory you can find the program that generates the FFTW codelets. You do not need to concern yourself with the codelet generator unless you wish to; the FFTW package is preconfigured with a standard set of codelets covering most practical problems. The codelets are optimized blocks of C code implementing transforms of small sizes, which we compose to compute DFTs of general sizes. There are a large number of advantages to generating the codelets rather than writing them by hand, many of which are described in our papers (available on the FFTW web page). Suffice it to say that code generation allows us to use long, unrolled blocks of code containing many optimizations that would be too tedious to apply by hand. For examples of what the codelets look like, look at the fn*.c and ftw*.c files in the fftw/ directory. The codelet generator is written in the Objective Caml language, and before you can do anything with it you must install the Objective Caml compilers. You can download compilers and interpreters, and also read about this elegant and powerful language, at: http://pauillac.inria.fr/ocaml/ Once you have installed Objective Caml, you can alter the set of codelets (hard-coded transforms) that FFTW has to work with by editing the file "config" and then running 'make'. This is also described in the FFTW manual. If you are curious and/or ambitious, you may also want to look at the codelet generator itself (the *.ml files). Some documentation is included in the source files, and we encourage you to contact us (fftw@fftw.org) if you have any questions. The files that you are most likely to want to edit are: fft.ml: if you want to modify the FFT algorithms that the generator uses. to_c.ml: if you want to change how the C source code is produced ("unparsed") from the symbolic expressions used internally by the generator. For example, if you wanted to alter FFTW to use high-precision arithmetic routines, you would modify to_c.ml (and possibly also number.ml, which controls how constants are expressed).