Linux与Mac上的四倍精度
Quadruple precision on Linux vs. Mac
我编写了一个多维数值集成代码,该代码能够在Linux中以双重,长或四倍的精度运行。所有模式都完美地编译和工作,但是当我尝试为Mac上的四倍精度案例编译相同的代码时,我最终遇到了错误,我不确定它们的含义。
我正在编译G ,但我尝试了其他编译器(我确实尝试了Clang只是为了看看它会做什么,但据我所知,它不能支持四倍的精度?如果我错了,请纠正我)。
。我链接相关库和标题(包括quadmath.h头),我最终遇到了这些错误来自quadmath.h:
Unsupported machine mode 'TC'
typedef _Complex float __attribute__((mode(TC))) __complex128
error unknown type name '__float128'
__float128错误也重新出现了各种数学操作,例如acosq,asinq等...
我以前从未遇到过不支持的机器模式错误。我看了看GNU编译器注释GNU编译器音符和GNU浮动类型。
很难为人们进行编译和测试,因此很难进行编译和测试,因此我只是想追踪错误以找出出了什么问题,但是我不确定在此阶段该怎么做。给定这些错误消息的下一步是什么?关于Linux与MAC,我是否缺少一些东西?我一直在Linux中进行编码,因此对后者不熟悉,似乎有一种方法可以与Mac上的四倍精度计算相比。
。谢谢您的帮助
-yeti
不同的架构(CPU类型/操作系统)并不总是支持相同的浮点类型。从您的问题中的错误消息来看,在您试图编译代码的Mac上不支持" __Float128"。
有两种不同的方法来解决这个问题。最简单的是将预处理器指令添加到您的代码中,以确保仅编译代码的某些部分;即,目标体系结构支持浮点类型的浮点类型。不幸的是,这将意味着您程序的Mac版本将无法使用四倍精度。
更难的解决方案是自己实现四倍精度浮点键入或找到已经实现它的库。我猜这些自定义类型不会像本地支持的类型那样快,但是至少您将能够获得所需的精度。
- 将非常大的 int 转换为双倍,在某些计算机上会损失精度
- 双倍精度太高
- Qt 是 JSON 精度的两倍
- 如何将固定精度的两倍格式化为给定的长度
- 在 Python 中以与 C++ 相同的精度乘以双倍
- Linux与Mac上的四倍精度
- 在C 中声明一个八倍精度浮点变量
- 使用 cout 以精度 4 打印双倍
- 如何在 C/C++ 中有效地计算双倍到两个小数点精度
- G++ 4.6.3 Linux 中使用 quadmath 的四倍精度
- 如何以最大精度存储双倍
- C++中是否有一个浮点文字后缀来使数字的精度翻倍
- 双倍到科学记数法转换 - 精度误差
- 如何通过谷歌glog打印完全双倍精度
- IEEE-754浮点、双精度和四精度是否保证-2、-1、-0、0、1、2的精确表示
- C++ 精度使用长长与双倍
- 将双精度转换为 10 的整数倍
- 乘以10的倍数时丢失双倍精度
- c++ pthread多线程2倍Intel Xeon X5570,四核cpu在亚马逊EC2 HPC ubuntu实例
- 为什么优化标志 (-O3) 不能加快四倍精度计算的速度?