_get_FMA3_enable_set_FMA3_enable

获取或设置一个标志,该标志指定先验数学浮点库函数是否在为 X64 平台编译的代码中使用 FMA3 指令。

语法

int _set_FMA3_enable(int flag);
int _get_FMA3_enable();

参数

flag
设置为 1 以启用 X64 平台上先验数学浮点库函数的 FMA3 实现,或设置为 0 以使用不使用 FMA3 指令的实现。

返回值

如果启用了先验数学浮点库函数的 FMA3 实现,则为非零值。 否则为零值。

备注

使用 _set_FMA3_enable 函数,以允许或禁止在 CRT 库中先验数学浮点函数中使用 FMA3 指令。 返回值反映更改后使用的实现。 如果 CPU 不支持 FMA3 指令,则此函数无法在库中启用指令,并且返回值为零。 使用 _get_FMA3_enable 获取库的当前状态。 默认情况下,在 X64 平台上,CRT 启动代码会检测 CPU 是否支持 FMA3 指令,并启用或禁用库中的 FMA3 实现。

FMA3 实现使用不同的算法。 当启用或禁用 FMA3 实现时,计算结果稍有差异。 在支持 FMA3 或不支持 FMA3 的计算机之间也可能看到差异。 有关详细信息,请参阅浮点迁移问题

要求

_set_FMA3_enable_get_FMA3_enable 函数仅在 CRT 的 X64 版本中可用。

例程 必需的标头
_set_FMA3_enable_get_FMA3_enable C:<math.h>
C++:<cmath> 或 <math.h>

_set_FMA3_enable_get_FMA3_enable 函数是 Microsoft 特定函数。 有关兼容性信息,请参阅兼容性

另请参阅

数学和浮点支持
浮点迁移问题