Compiler Option: -fpmode
- Source: https://www.freebasic.net/wiki/wikka.php?wakka=CompilerOptfpmode
- Last revised: 2025-04-28
Selects faster, less accurate or slower, more precise floating-point math.
Syntax
-fpmode< mode >`
`
Parameters
mode
The floating point mode: FAST | PRECISE.
Description
The -fpmode compiler option specifies whether speed or precision is more important for floating point math. If this option is not specified, the default is -fpmode PRECISE.
-fpmode FAST will generate faster, less accurate instructions for certain floating point operations.
-fpmode PRECISE will generate standard floating point instructions that operate at the default speed and accuracy of the selected floating point unit.
Currently, the only floating point operations that behave differently when using -fpmode FAST are: sin(), cos(), reciprocal, and reciprocal square root, all of which must operate on Single precision values.
A number of changes were made to normalize handling of NaN's (Not a Number) to get consistent results across toolchains and platforms, but that costs extra code, so intention was that -fpmode FAST could allow user to skip that extra code generation if they wanted (and they assume responsibility how things work or do not work across platforms).
Note:
for x86 and x86_64, default is
-fpu x87 -fpmode PRECISE-fpmode FAST|PRECISEcontrols code generation by fbc onlyfor optimizing with '-gen gcc' backend, use '-Wc -ffast-math'
Version
- Before fbc-1.20.0, an error message would be displayed if
-fpmode FASTwas with anything but-fpu SSE.
See also
- Using the Command Line
- Compiler Option: -fpu
__FB_FPMODE__
Back to DocToc