Есть ли разница в результатах, возвращаемых встроенным Python pow(x, y) (без третьего аргумента), и значениях, возвращаемых math.pow(), в случае двух аргументов с плавающей запятой.
Я задаю этот вопрос, потому что документация для 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 (те же числовые результаты, те же исключения, те же результаты для угла случаи и т.д.). Я уже реализовал что-то, что работает достаточно хорошо, но есть некоторые angular случаи, которые нужно обработать