D. J. Bernstein
Fast arithmetic
djbfft

Choices for conf-opt

The djbfft library includes a variety of machine-specific optimizations. You can change the first line of conf-opt to control which optimizations it uses.

opt=auto

This is the default. One of the possibilities listed below is chosen automatically.

opt=idea

idea is straightforward machine-independent code.

opt=pentium

pentium is designed for the x86 processor family. It may not compile on non-x86 processors in future versions of djbfft.

The current version of pentium, when compiled with gcc -O1, is scheduled almost perfectly for the Pentium and Pentium MMX processors. Beware that higher optimization levels produce worse performance; do not use gcc -O6.

WARNING: Some compilers, notably gcc without the -malign-double option, do not guarantee 8-byte alignment for 8-byte floating-point variables. Most x86 processors will slow down dramatically if your input arrays, or djbfft's internal root tables, are not 8-byte aligned. The installation procedure automatically adds -malign-double to the compiler options if the compiler doesn't barf; however, old versions of gcc do not support -malign-double.

opt=ppro

ppro is designed for the x86 processor family. It may not compile on non-x86 processors in future versions of djbfft.

The current version of ppro, when compiled with gcc -O1, is scheduled better than pentium for the Pentium Pro, Pentium II, and Pentium III processors. Beware that higher optimization levels produce worse performance; do not use gcc -O6.

WARNING: Some compilers, notably gcc without the -malign-double option, do not guarantee 8-byte alignment for 8-byte floating-point variables. Most x86 processors will slow down dramatically if your input arrays, or djbfft's internal root tables, are not 8-byte aligned. The installation procedure automatically adds -malign-double to the compiler options if the compiler doesn't barf; however, old versions of gcc do not support -malign-double.

opt=sparc

sparc is designed for the SPARC processor family. It may not compile on non-SPARC processors in future versions of djbfft.

The current version of sparc, when compiled with gcc -O1, is scheduled fairly well for the UltraSPARC-I and UltraSPARC-II processors. Beware that higher optimization levels produce worse performance; do not use gcc -O6.