_get_FMA3_enable
, _set_FMA3_enable
Gets or sets a flag that specifies whether the transcendental math floating-point library functions use FMA3 instructions in code compiled for X64 platforms.
Syntax
int _set_FMA3_enable(int flag);
int _get_FMA3_enable();
Parameters
flag
Set to 1 to enable the FMA3 implementations of the transcendental math floating-point library functions on X64 platforms, or to 0 to use the implementations that don't use FMA3 instructions.
Return value
A non-zero value if the FMA3 implementations of the transcendental math floating-point library functions are enabled. Otherwise, zero.
Remarks
Use the _set_FMA3_enable
function to enable or disable the use of FMA3 instructions in the transcendental math floating-point functions in the CRT library. The return value reflects the implementation in use after the change. If the CPU doesn't support FMA3 instructions, this function can't enable them in the library, and the return value is zero. Use _get_FMA3_enable
to get the current state of the library. By default, on X64 platforms, the CRT startup code detects whether the CPU supports FMA3 instructions, and enables or disables the FMA3 implementations in the library.
The FMA3 implementations use different algorithms. Slight differences in the result of computations may be observable when the FMA3 implementations are enabled or disabled. Differences may also be observable between computers that do or don't support FMA3. For more information, see Floating-point migration issues.
Requirements
The _set_FMA3_enable
and _get_FMA3_enable
functions are only available in the X64 versions of the CRT.
Routine | Required header |
---|---|
_set_FMA3_enable , _get_FMA3_enable |
C: <math.h> C++: <cmath> or <math.h> |
The _set_FMA3_enable
and _get_FMA3_enable
functions are Microsoft-specific. For compatibility information, see Compatibility.
See also
Math and floating-point support
Floating-point migration issues