quadmath 库没有太多在线文档,我想使用__complex128
type 执行两个简单的操作。
- 有没有办法在这种类型的变量中轻松打印值?
- 如何将变量从 转换回
__complex128
,complex<double>
甚至将单个__float128
实部和虚部转换为加倍?
第二个问题更重要,因为如果我可以转换它,我可以简单地使用cout
!
编辑:一切都涉及到以下问题。我如何转换__float128
为double
?
quadmath 库没有太多在线文档,我想使用__complex128
type 执行两个简单的操作。
__complex128
,complex<double>
甚至将单个__float128
实部和虚部转换为加倍?第二个问题更重要,因为如果我可以转换它,我可以简单地使用cout
!
编辑:一切都涉及到以下问题。我如何转换__float128
为double
?
将 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)
};
}
尝试这个:
std::complex<double> x;
__complex128 y;
x.real(__real__ y)
x.imag(__imag__ y)