gpt4 book ai didi

c++ - x64 平台上的 GCC 是否默认启用扩展精度?

转载 作者:搜寻专家 更新时间:2023-10-31 02:19:02 25 4
gpt4 key购买 nike

当我使用 GCC 并使用 double 值进行计算时会发生什么。

GCC 在(我在这里假设的 x64 平台)上使用 https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/i386-and-x86-64-Options.html#i386-and-x86-64-Options

-mfpmath=sse (default)  (use sse instructions)
-mpc80 (default) (rounding mode to 80bit extended precision)

当我在一个简单的 C++ 程序中使用 64 位 double 值时,我很困惑。现在的计算是以扩展精度执行的(因为 mpc80 默认打开)还是使用 sse 指令(没有扩展精度的东西在进行)

到底发生了什么?我需要在 64 位平台上做什么,以确保在代码的某些部分仅使用“ double ”,因此假设默认情况下 GCC 进行 80 位扩展精度计算,那么我需要在这部分代码中手动将 FPU 单位设置为“ double ”?

最佳答案

没有。在 64 位模式下,使用 SSE 指令。 -mpc80(和其他类似选项)仅针对 32 位系统。 (据我所知)

如果您想确定,请执行运行时精度检查。

一般来说,您不应该依赖任何精度,尽管您通常可以假设 double 实际上是 double 。

关于c++ - x64 平台上的 GCC 是否默认启用扩展精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33972945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com