Comments 9
В процессе работы я наткнулся на этот пост на StackOverflow, из которого узнал об изящном алгоритме точного вычисления .
Читаю статью и вспоминаю курс прикладной математики и вычислительных методов (что то как то так называлось) на котором все это давали в институте. И лабы на которых эти методы проверялись. Давно… очень давно (С++ еще не было).
Однако базовые знания. Почему они становятся "я узнал об изящном алгоритме точного вычисления".
Насколько актуально использование float в вычисления (не хранении) в эпоху 64 бит и широких шин к памяти — отдельный вопрос.
«Насколько актуально использование float в вычисления (не хранении) в эпоху 64 бит и широких шин к памяти — отдельный вопрос.»
Если говорить о GPU, то в геймерских картах производительность операций над числами с плавающей запятой одинарной точности намного выше производительности с числами двойной точности.
В статье же речь идет о движке для рендеринга, где производительность явно не на последнем месте.
Если говорить о GPU, то в геймерских картах производительность операций над числами с плавающей запятой одинарной точности намного выше производительности с числами двойной точности.
В статье же речь идет о движке для рендеринга, где производительность явно не на последнем месте.
Точно. Как то упустил этот момент.
Спасибо что обратили внимание (под GPU не приходилось писать)
А на gpu есть fma?
В статье же написано, что уже давно как есть.
Инструкция FMA доступна в GPU уже больше десятка лет, а в большинстве ЦП — не менее пяти лет. На ЦП может потребоваться добавить флаги компилятора для их непосредственной генерации при использовании std::fma(); в gcc и clang работает -march=native.
Судя по сказанному в статье, в первую очередь именно там и есть:
Инструкция FMA доступна в GPU уже больше десятка лет, а в большинстве ЦП — не менее пяти лет.
upd: опоздал :)
TLDR: никак
Хоть бы кто-нибудь потрудился изучить вопрос — арифметические операции с переменными с плавающей точкой в общем случае не дают точных значений
Sign up to leave a comment.
Алгоритм Кэхэна: как получить точную разность произведений