就在最近,GCC 4.6.0 与 libquadmath 一起发布了。 .不幸的是,GNU 支持 Fortran,但不支持 C 或 C++(包含的只是 .so)。我还没有找到在 C++ 中使用这些新功能的方法,但是,GNU C 确实支持 __float128
类型以保证四倍精度 float 。 GNU C 似乎不支持 libquadmath 中的数学函数。 ,例如 fabsq
(绝对值,q
是 quad 的后缀)。
有什么方法可以让这些函数在 C++ 中运行,或者是否有一些替代库可以用于带有 __float128
的数学函数?在 GCC 中获得四精度 float 的最佳方法是什么?现在,我可以对它们进行加减乘乘,但这对我来说毫无用处,因为我无法将它们转换为字符串或使用诸如 truncq
和 fabsq< 之类的函数
创建我自己的字符串函数。
最佳答案
显然,这似乎是我的安装错误。
虽然 GCC 的核心 C/C++ 部分包含 libquadmath.so,但 Fortran 版本提供了 libquadmath.a 和 quadmath.h,可以包含它们以访问这些函数。
#include <quadmath.h>
#include <iostream>
int main()
{
char* y = new char[1000];
quadmath_snprintf(y, 1000, "%Qf", 1.0q);
std::cout << y << std::endl;
return 0;
}
关于c++ - C++ (GCC) 中的四倍精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5451447/