Comments 5
Вроде как суммирование Кагана (и вроде как он Кэхэн, но не суть) не предназначено для полного избавления от ошибок округления, а избавление от накопления ошибок, т. е. чтобы при суммировании произвольного количества чисел ошибка была ограничена, а не полностью отсутствовала.
А те, кто знаком с ассемблером, могут использовать расширенный 80-битный формат для промежуточных вычислений.
Да, это 8087, упомянутый автором. Но он относительно медленный, поэтому с момента появления SSE2 все пользуются им (и его потомками, включая использованный автором AVX). В любом случае, выбор заключается лишь в том, начнутся у вас ошибки на 52-м бите мантиссы или на 63-м.
Он не медленный, он не распараллеливается по конвеерам. И в интрисиках его нету. Ошибки на 52-м бите - ну это только когда одна операция. Когда их миллионы (в интегральных преобразованиях например), могут и до 2-го бита добраться. С нехваткой точности double сталкивался лично в алгоритме Блюстейна, пришлось FFT на FPU писать. Вместе с утилиткой, генерящей комментарии с содержанием стека.
Об ошибках округления и способах борьбы с ними