apfloat

Frequently Asked Questions (FAQ)


Known problems

The x86 versions of apfloat don't seem to really work with gcc version 2.95. It is currently unknown if this is a problem with the compiler or with apfloat itself. You can see the version of gcc (or g++) you are using with the command gcc -v. The problem is known to exist with both Linux gcc and MS-DOS djgpp. Even reducing the optimization options doesn't seem to remove the problem.

The obvious solution is to use an older version of gcc. At least compilers based on gcc 2.8.1 and 2.7.2 should work fine. You may get apfloat to work with gcc 2.91 by removing the -O3 optimization option from the makefile and recompiling.

Can't compile apfloat

With djgpp or gcc (or g++) and the x86 specific packages of apfloat the compilation may fail sometimes, depending on which version of gcc you use and which apfloat package you use (486, Pentium etc.). Typically the inline assembler statements don't work as the compiler fails to allocate the registers for the statements.

With other compilers you often can get the compiler to crash with an internal error.

Try reducing or removing the optimization options from the OPTS parameter in the makefile. For djgpp/gcc you minimally need only "OPTS = -w" to compile apfloat; however this results in quite unoptimized code. It should be most robust, though (no optimization is done, only all compilation warning messages are disabled). You can try to compile manually some of the apfloat source files with heavier optimization options and see at which point your program stops working.

See also the "Known problems" section.

The compiled executable crashes

Similarly as with failing to compile at all, the problem is often with the optimization settings. Try reducing the compiler optimization as described in the previous question.

Some versions of various compilers and operating systems are apparently buggy and this may actually cause your program to crash. Some instability is known to exist e.g. with the Linux kernel version 2.0.0 and various versions of the gcc / djgpp compilers. See the "Known problems" section.

Can't compile the WFTA files

The variable declarations needed by the WFTA (Winograd Fourier Transform Algorithm) are in the file ap.h, but they are currently commented out (in the section "// Variables for WFTA"). They would cause name conflicts with other variables in other files.

You may uncomment them and try to compile the WFTA files. Try "make wftatest nttw  wftavect" or "make wftatest.exe nttw.exe wftavect.exe" (depending on your platform), this should build the executables "nttw", "wftatest" and "wftavect". It may compile properly only with the Intel x86 versions of apfloat.

The WFTA is not used at all in the apfloat library, it was an early experiment and it is not really supported anymore. Experiment at your own risk.

Last updated: July 26th, 2000


Back to the apfloat page.