【发布时间】:2023-03-03 04:15:02
【问题描述】:
这主要是出于好奇。我注意到 numpy 测试套件 contains tests for 128 bit integers 和 numerictypes module 指的是 int128、float256 (octuple precision?),以及其他似乎没有映射到我机器上的 numpy dtypes 的类型。
我的机器是 64 位的,但我可以使用四个 128 位浮点数 (but not really)。我想如果可以在软件中模拟四倍浮点数,理论上也可以模拟八倍浮点数和 128 位整数。另一方面,直到刚才我还从未听说过 128 位整数或八倍精度浮点数。如果没有对应的dtypes,为什么numpy的numerictypes模块中会引用128位整数和256位浮点数,我该如何使用它们?
【问题讨论】:
-
我想你可以在理论上计算出任何
32 * n或64 * n精度,但我不得不说,那些仅在测试中实现的类型很有趣。 -
请记住,
np.float128通常没有 128 位的精度 - 它相当于 Clong double,在 x86 (see here) 上通常有 80 位。跨度> -
@ali_m 我明白了。我今天学到了一些新东西!
-
一般建议使用
np.longdouble而不是np.float128以避免这种混淆来源。恕我直言,如果 numpy 根本不公开 float128 dtype 会更好......