Как numpy вычисляет экспоненту? - PullRequest
0 голосов
/ 21 ноября 2018

После прочтения этого вопроса мне интересно, что происходит под прикрытием, когда вызывается np.exp: какая математическая / числовая процедура используется для получения значений в возвращенном массиве?Например, я думаю, что для вычисления np.sqrt(x) решение от y до y ** 2 - x = 0 найдено с использованием метода Ньютона.

(строка документации np.exp не указывает, как это делается)

1 Ответ

0 голосов
/ 21 ноября 2018

(Немного обновлено, чтобы исправить исходный набор линий связи и добавить отдельный для первоначально связанных строк :) numpy связывается с реализацией библиотеки C exp, используя самоопределенный прокси, если вариант C99 соответствующей точности недоступен .Его производительность будет зависеть от производительности библиотеки.

Я не специалист по численным алгоритмам, но эти два вопроса StackOverflow выглядят так, как будто они имеют хорошие ответы: Эффективная реализация натурального логарифма (ln) и возведения в степень и Быстрое выполнение экспоненциальной функции с использованием SSE .Обратите внимание, что принятый ответ на первый вопрос (предполагающий простое расширение Тейлора) на практике не используется;вместо этого, поскольку этот ответ предполагает , мы находим полиномиальные расширения для определенных диапазонов и добавляем уменьшение диапазона и последующую коррекцию в реальных реализациях .

См. также Исходный код Python для математической функции экспоненты? и Эта статья написана Сушантом Сачдевой и Нишит К. Вишной .Подробнее см. Поиск Google .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...