Есть ли разница в результатах, возвращаемых встроенной Python -вpow(x, y)
(без третьего аргумента )и значениями, возвращаемыми math.pow()
, в случае двух float аргументы.
Я задаю этот вопрос, потому что документация для math.pow()
подразумевает, чтоpow(x, y)
(т. е.x**y
)по существу совпадает сmath.pow(x, y)
:
math.pow (x, y)
Верните x, возведенное в степень y. Исключительные случаи насколько это возможно, следуйте приложению «F» стандарта C99. В в частности, pow (1.0, x )и pow (x, 0.0 )всегда возвращают 1.0, даже если x является нулем или NaN. Если и x, и y конечны, x отрицательно и y не является целым числом, то pow (x, y )не определено и вызывает ValueError.
Изменено в версии 2.6. :Результат 1 **nan и nan **0 не определен.
Обратите внимание на последнюю строку :в документации подразумевается, что поведение math.pow()
является поведением оператора возведения в степень**
(и, следовательно,pow(x, y)
). Это официально гарантировано?
Исходная информация :Моя цель состоит в том, чтобы предоставить реализацию как встроенного -в pow()
, так и math.pow()
для чисел с неопределенностью , которая ведет себя одинаково как и с обычными плавающими числами Python (те же числовые результаты, те же исключения, те же результаты для крайних случаев и т. д. ). Я уже реализовал то, что работает довольно хорошо, но есть некоторые крайние случаи , которые необходимо обработать.