c++ - C++ (GCC) 中的四倍精度

标签 c++ gcc floating-point quadruple-precision

就在最近,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 的最佳方法是什么?现在,我可以对它们进行加减乘乘,但这对我来说毫无用处,因为我无法将它们转换为字符串或使用诸如 truncqfabsq< 之类的函数 创建我自己的字符串函数。

最佳答案

显然,这似乎是我的安装错误。

虽然 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/

相关文章:

c - 声明一个具有赋值的指针

c - 我无法理解这个程序

c++ - CodeComposerStudio 的 STL 链接错误

c++ - 如何知道何时创建拷贝?

c++ - OpenCV OCL 逻辑索引

c++ - 绘制真实坐标

python - 如何在 Python 中将 unicode 字符转换为 float ?

c++ - g++ 链接静态库错误

c - 使用 GCC 在共享库中启用调试符号

c++ - gcc 可以使我的代码并行吗?