Абсолютная ошибка округления для субнормальных чисел IEEE binary32 (одинарная точность) - PullRequest
0 голосов
/ 08 октября 2018

Я пишу программу на C, которая тестирует операции с числами с плавающей запятой одинарной точности.В частности, я хочу знать, если абсолютная ошибка округления связана с x (число в пределах нормального диапазона binary32):

| round (x) - x |

также верно для субнормальных чисел.Я пришел к выводу, что да, но я не смог найти никакого вторичного источника, чтобы подтвердить, что я прав.

Правильно ли мое заключение?

1 Ответ

0 голосов
/ 08 октября 2018

Для субнормальных результатов максимальная потенциальная абсолютная ошибка от округления действительного числа до ближайшего представимого двоичного числа IEEE-754 с плавающей запятой равна максимальной потенциальной абсолютной ошибке для результатов с наименьшей нормальной бинарой.1002 * То есть и наименьший нормальный бинар, и субнормальные числа имеют одинаковый показатель степени в представлении с плавающей запятой, поэтому младший значащий бит их значений имеет одинаковое значение позиции.(«Тот же показатель», о котором здесь говорится, это математический показатель, –126 для базового 32-разрядного формата и –1022 для базового 64-разрядного формата. Это не кодировка показателя, равная 1 для наименьшего нормального значения).binade и 0 для субнормалей.) Значение позиции младшего значащего бита определяет максимально возможную ошибку.Так как для субнормальных значений оно такое же, как и для значений в наименьшем двоичном коде, они имеют одинаковую потенциальную ошибку.

Если E больше минимального показателя степени формата илиfloor (log 2 (| x |)), x - действительное число, округление ( x ) - результат преобразования x в формате с плавающей запятой, а ? - машинный эпсилон (единица наименьшей точности для 1), тогда:

| round ( x ) - x |<? 2 <sup> E

для любого режима округления и:

| round ( x ) - х |≤ ½ ? 2 E

для любого режима округления до ближайшего (например, округления до ближайшего связывания с четным).

Для режимов направленного округления, таких как округление к отрицательной бесконечности, ошибка удовлетворяет одному из следующих факторов:

0 ≤ round ( x ) - x <? 2 <sup> E

или:

−? 2 E <раунд (<em> x ) - x ≤ 0,

в зависимости от направления, конечно.(Округление к нулю не удовлетворяет ни одному из двух вышеуказанных соотношений для всех действительных чисел, но, конечно, удовлетворяет по крайней мере одному из них в зависимости от знака x .)

...