【发布时间】:2020-01-26 02:03:36
【问题描述】:
我知道十进制,但是我正在使用其他人编写的大量代码,并且我不想通过大量代码将浮点数的每个初始化都更改为十进制。如果有某种包可以让我将SetPrecision(128) 或类似的东西放在我的脚本顶部并参加比赛,那会更方便。我怀疑不存在这样的事情,但我想我会问,以防我错了。
为了阻止 XY 问题 cmets,我正在求解应该是正不变的微分方程,并且无论我指定的误差容限如何(使用 scipy 的LSODA 的接口)。
【问题讨论】:
-
无法改变内置
float类型的精度,这是一种IEEE 754双精度浮点数类型。因此,任何解决方案都需要更改您正在使用的一些代码。但是请参阅 mpmath.org 了解可以以可配置的精度进行算术/数学计算的库。 -
这是使用
numpy还是其他一些数学/数组包? -
标签应该反映
scipy和numpy等包的使用 -
@hpaulj 依赖关系是可以协商的,如果问题需要我可以更改它们。我知道我们不应该使用很多标签,所以我添加了 scipy,目前我也有一些用 numpy 编写的组件。 Iirc Decimal 包在构建时考虑了 numpy 兼容性。
-
你怎么知道这是一个精度问题?您是否确认 scipy 代码甚至可以使用 128 位浮点数运行?