1

quadmath 库没有太多在线文档,我想使用__complex128type 执行两个简单的操作。

  • 有没有办法在这种类型的变量中轻松打印值?
  • 如何将变量从 转换回__complex128complex<double>甚至将单个__float128实部和虚部转换为加倍?

第二个问题更重要,因为如果我可以转换它,我可以简单地使用cout

编辑:一切都涉及到以下问题。我如何转换__float128double?

4

2 回答 2

2

将 a 转换__float128为 adouble不需要任何特殊操作:

const __float128 x{};
const double y = x;

为了清楚起见(和更少的警告),您可能需要一个static_cast

构造一个std::complex<T>from__complex128不难

auto bar(__complex128 y)
{
    return std::complex<double>{
        static_cast<double>(__real__ y),
        static_cast<double>(__imag__ y)
    };
}
于 2017-06-27T15:18:22.607 回答
0

尝试这个:

std::complex<double> x;
__complex128 y;
x.real(__real__ y)
x.imag(__imag__ y)
于 2017-06-27T13:54:19.357 回答