Как стать автором
Обновить
167
0.1

Человек

Отправить сообщение
Это было уточнение комментария «x87 все вычисления производит в 80-битном расширенном формате, и для double и для float».

Из этого следует, что при выполнении вычислений на FPU вы будете получать разные ответы в зависимости от того, в каком режиме точности он работает. Более того, вы будете получать различные результаты и в зависимости от того, как именно компилятор оптимизирует ваш код и в каком конкретно формате он хранит промежуточные вычисления.

Стек FPU ограничен восемью регистрами. Пока остаются свободные регистры для хранения промежуточных данных, очевидно, их точность остаётся неизменной. Но как только свободные регистры заканчиваются, компилятор вынужден сохранять их во внешней памяти — и обычно это делается в 64-х битном формате, с потерей 80-битной точности (как показало изучение ассемблерного кода от компиляторов Intel и Microsoft).
в FPU есть флаг точности с возможными режимами:

00 – 24 бита мантисса, 7 бит порядок;
10 – 53 бита мантисса, 10 бит порядок (двойная точность);
11 – 64 бита мантисса, 15 бит порядок (расширенная точность).
Стивен где-то упоминал, что в Mathematica для генерации случайных чисел используется клеточный автомат с правилом 30.
12 ...
188

Информация

В рейтинге
2 980-й
Откуда
Россия
Работает в
Зарегистрирован
Активность