numpy.float128内部映射到什么精度?是__float128还是长双倍? (或完全其他!!)

如果有人知道,这个问题可能会引起关注:在C中将__float128转换为(16字节)长的 double 数,而只是精度损失,是否安全? (这是为了与在长 double 上运行的C lib接口(interface))。

编辑:根据评论,平台为“Linux-3.0.0-14-generic-x86_64-with-Ubuntu-11.10-oneiric”。现在,如果numpy.float128的精度取决于平台,则对我来说也是有用的知识!

需要明确的是,这是我感兴趣的精度,而不是元素的大小。

最佳答案

强烈建议您使用longdouble instead of float128,因为它是ATM的a mess。 Python将在初始化期间将其强制转换为float64。

在numpy内部,它可以是 double 型或长 double 型。它在npy_common.h中定义,取决于您的平台。我不知道您是否可以将其直接包含在源代码中。

如果您在算法的这一部分中不需要性能,一种更安全的方法可能是将其导出为字符串,然后再使用strold

关于python - numpy.float128的内部精度是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9062562/

10-09 17:43
查看更多