You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Число четверной точности

Материал из EverybodyWiki Bios & Wiki
Перейти к:навигация, поиск

Ошибка скрипта: Модуля «Unsubst» не существует. 

Число́ четверно́й то́чности (англ. Шаблон:Langi) — компьютерный формат представления чисел с плавающей запятой, занимающий в памяти четыре последовательных ячейки (компьютерных слова; в случае 32-битного компьютера — 128 бит или 16 байт). Как правило, обозначает формат числа с плавающей запятой binary128 стандарта IEEE 754.

Формат числа четверной точности[править]

Знак: 1 бит.
Порядок: 15 бит[1][2].
Мантисса: 112 бит (112[1][2] явно хранятся).

Эквивалентное количество значащих десятичных цифр (при одинаковой средней относительной погрешности представления): 34 (log10(2113) ≈ 34.016).

Знак
(15 бит)
Порядок
(112 бит)
Мантисса
127 120 119 112 111 104 103 96 95 88 87 80 79 72 71 64 63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0

Примеры чисел четверной точности[править]

Небольшие константы:[2]

0x 3fff 0000 0000 0000 0000 0000 0000 0000  = 1
0x c000 0000 0000 0000 0000 0000 0000 0000  = −2

Максимальное и минимальное (нормальное) число четверной точности:[3][4][2]

0x 7ffe ffff ffff ffff ffff ffff ffff ffff  ≈  1.18973149535723176508575932662800702 × 104932 
0x 0001 0000 0000 0000 0000 0000 0000 0000 ≈ 3.36210314311209350626267781732175260 * 10 -4932 

Денормализованные числа четверной точности: максимальное и минимальное положительное:[2]

0x 0000 ffff ffff ffff ffff ffff ffff ffff	≈ 3.3621031431120935062626778173217520 * 10 ^-4932
0x 0000 0000 0000 0000 0000 0000 0000 0001	≈ 6.4751751194380251109244389582276466 * 10 ^-4966

Нули четверной точности:[2]

0x 0000 0000 0000 0000 0000 0000 0000 0000  = 0
0x 8000 0000 0000 0000 0000 0000 0000 0000  = −0

Бесконечности четверной точности:[2]

0x 7fff 0000 0000 0000 0000 0000 0000 0000  = ∞
0x ffff 0000 0000 0000 0000 0000 0000 0000  = −∞
0x 3ffd 5555 5555 5555 5555 5555 5555 5555  ≈  1/3

Поддержка[править]

Ряд компиляторов, в том числе GCC (с версии 4.0, 2010[5]), IBM XL (10.1[5]), Intel, позволяет использовать числа точности "Quadruple" в программах на языках C/C++ и Fortran (например как тип __float128[6], long double, REAL*16), реализуя вычисления над ними программно, на 1-2 порядка более медленно, чем с точностью, поддерживаемой аппаратно[7]. Несмотря на то, что подобные вычисления можно реализовать в системах обработки чисел произвольной точности (например, GMP), существует несколько специализированных библиотек с программной реализацией "Quadruple" точности[8][9][10]. Также разрабатываются способы аппаратной реализации[11][12], но по состоянию на 2005 год в массовых процессорах четверная точность аппаратно не реализовывалась[13].

Для некоторых методов решения четверная точность позволяет ускорить сходимость (количество итераций метода) по сравнению с двойной точностью, при этом каждая итерация становится более долгой из-за использования программной реализации операций над числами[14].

Существует подход "double-double" к реализации чисел с точностью, приближенной к четверной, но использующих более короткий формат экспоненты (иногда реализуется в компиляторах Fortran для типа REAL*16). При таком подходе, например, для сложения двух чисел типа "double-double" требуется 8 операций сложения и вычитания и одно сравнение над числами двойной точности[13].

См. также[править]

Примечания[править]

  1. 1,0 1,1 Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  2. 2,0 2,1 2,2 2,3 2,4 2,5 2,6 Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  3. https://github.com/gcc-mirror/gcc/blob/03cb8c1ee6db41ed646eb37f164ba972abc6a87a/libquadmath/quadmath.h#L145 FLT128_MAX
  4. https://github.com/gcc-mirror/gcc/blob/03cb8c1ee6db41ed646eb37f164ba972abc6a87a/libquadmath/quadmath.h#L146 FLT128_MIN
  5. 5,0 5,1 Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  6. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  7. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  8. Exploring quadruple precision floating point numbers in GCC and ICC - Peter Larsson
  9. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  10. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  11. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  12. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  13. 13,0 13,1 Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.
  14. Ошибка Lua в package.lua на строке 80: module 'Module:Languages' not found.

Ошибка скрипта: Модуля «Unsubst» не существует.


This article "Число четверной точности" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Число четверной точности. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[править]