gmpy2 pow() 方法在 mpfr 类型上的意外行为

gmpy2 unexpected behavior of pow() method on mpfr type

我重复发现在其 mpfr 类型上使用 gmpy2 的 pow 函数 returns 0 在任何 x 值 <= .5

>>> from gmpy2 import mpfr
>>> x = mpfr('.5')
>>> y = mpfr('2')
>>> print(pow(x, 2))
0.0 -> should be .25
>>> print(pow(y, 2))
4.0 -> correct

我是不是使用了错误的功能,还是有什么地方我没有得到

您发现了测试套件中遗漏的错误。我最近为 mpfr(<>) ** <> 添加了优化。我已确定原因并正在验证修复。

解决方法是先将指数转换为 mpz。

我推出了一个新版本。请测试版本 2.1.0rc2。可以使用命令安装:

pip 安装 gmpy2==2.1.0rc2