gmpy2 неожиданное поведение метода pow() для типа mpfr

#python #mpfr

#питон #мпфр

Вопрос:

Я воспроизводимо обнаружил, что использование функции pow gmpy2 для ее типа mpfr возвращает 0 при любом значении x

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

я использую неправильную функцию, или есть что-то, чего я здесь не понимаю

Комментарии:

1. сопровождающий gmpy2 здесь. Вы обнаружили ошибку. Я добавлю ответ с обновлением позже.

Ответ №1:

Вы обнаружили ошибку, которая была пропущена в наборе тестов. Недавно я добавил оптимизацию для mpfr(lt;lt;некоторые маленькие числаgt;lt;некоторые маленькие числаgt;gt;) ** lt;некоторые маленькие числаgt;gt;lt;lt;маленькое целое число Pythongt;lt;маленькое целое число Pythongt;gt;. Я определил причину и проверяю исправление.

Обходной путь состоит в том, чтобы сначала преобразовать показатель в mpz.

Я выпустил новый релиз. Пожалуйста, протестируйте версию 2.1.0rc2. Его можно установить с помощью команды:

pip установить gmpy2==2.1.0rc2

Комментарии:

1. спасибо, это первый раз, когда я действительно нахожу новую ошибку, и это не моя вина, лол