@Pi-314

Как произвести быстрое вычисление функции exp(x)?

Cразу оговорюсь - не программист, но нужда в виде необходимости численного решения системы уравнений мат.физики столкнула с Free Pascal / Lazarus.

Код написал, численная схема работает, но задача ускорения выполнения программы осложнена медленной работой встроенной в FPC функции для вычисления exp(x).

Вопрос гуглил, для Pascal решений не нашел, просьба помочь.
  • Вопрос задан
  • 2781 просмотр
Пригласить эксперта
Ответы на вопрос 3
@Pi-314 Автор вопроса
Отвечаю сам себе:
Обнаружил статью по теме (www.rsdn.ru/?article/alg/fastpow.xml), изучаю вопрос,скорее всего, нужно расширить предложенное там решение на отрицательные значения аргумента, понятно как это сделать на Pasal, но может кто может доработать сразу ASM ? )) Ау, боги ассемблера!

Из статьи следует, что если Free Pascal в той или иной степени базировался на библиотеках Borland - проблема exp (x) - давняя болезнь Pascal/Delphi...
Ответ написан
Комментировать
icelaba
@icelaba
Знаю и умею всё
Бывает в уравнениях мат физики точность некоторых операций на большей части итераций не так уж и важна, так что может поместить в массив предрасчитанные значения e^x на достаточно мелких интервалах, и использовать их в алгоритме до какого то момента пока error_value > N

И только на последней части итераций пользовать "истинное" значение

(я к тому что неточное значение e^x будет как то увеличивать ошибку но это увеличение по сравнению с ошибкой на начальных итерациях вычисления незначительно)
Ответ написан
Комментировать
icelaba
@icelaba
Знаю и умею всё
Вобщем это не совсем шутка что в военное время Pi может равняться и трем и даже четырем, для некоторых задач такой точности достаточно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы