Developer Guide and Reference

Contents

fast-transcendentals, Qfast-transcendentals

Enables the compiler to replace calls to transcendental functions with faster but less precise implementations.

Syntax

Linux and macOS:
-fast-transcendentals
-no-fast-transcendentals
Windows:
/Qfast-transcendentals
/Qfast-transcendentals-
Arguments
None
Default
depends on the setting of
-fp-model
(Linux* and
macOS*
)
or
/fp
(Windows*)
If you do not specify option
-[no-]fast-transcendentals
or option /Qfast-transcendentals[-]
:
  • The default is ON if option
    -fp-model fast
    or
    /fp:fast
    is specified or is in effect.
  • The default is OFF if a value-safe setting is specified for
    -fp-model
    or
    /fp
    (such as "precise", "source", etc.).
Description
This option enables the compiler to replace calls to transcendental functions with implementations that may be faster but less precise.
It allows the compiler to perform certain optimizations on transcendental functions, such as replacing individual calls to sine in a loop with a single call to a less precise vectorized sine library routine. These optimizations can cause numerical differences that would not otherwise exist if you are also compiling with a value-safe option such as
-fp-model precise
(Linux* and macOS*) or
/fp:precise
(Windows).
For example, you may get different results if you specify option
O0
versus option
O2
, or you may get different results from calling the same function with the same input at different points in your program. If these kinds of numerical differences are problematic, consider using option
-fimf-use-svml
(Linux* and macOS*) or
/Qimf-use-svml
(Windows) as an alternative. When used with a value-safe option such as
-fp-model precise
or
/fp:precise
, option
-fimf-use-svml
or
/Qimf-use-svml
provides many of the positive performance benefits of
[Q]fast-transcendentals
without negatively affecting numeric consistency. For more details, see the description of option
-fimf-use-svml
and
/Qimf-use-svml
.
This option does not affect explicit Short Vector Math Library (SVML) intrinsics. It only affects scalar calls to the standard math library routines.
You cannot use option
-fast-transcendentals
with option
-fp-model strict
and you cannot use option
/Qfast-transcendentals
with option
/fp:strict
.
This option determines the setting for the maximum allowable relative error for math library function results (max-error) if none of the following options are specified:
  • -fimf-accuracy-bits
    (Linux* and
    macOS*
    ) or
    /Qimf-accuracy-bits
    (Windows*)
  • -fimf-max-error
    (Linux and
    macOS*
    ) or
    /Qimf-max-error
    (Windows)
  • -fimf-precision
    (Linux and
    macOS*
    ) or
    /Qimf-precision
    (Windows)
This option enables extra optimization that only applies to Intel® processors.
Optimization Notice
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804
Alternate Options
None

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804