Número cuádruple

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 1 de enero de 2020; las comprobaciones requieren 7 ediciones .

El número de precisión cuádruple ( ing.  Precisión cuádruple ) es un formato de computadora para representar números de punto flotante, ocupando cuatro celdas consecutivas en la memoria (palabras de computadora; en el caso de una computadora de 32 bits - 128 bits o 16 bytes ). Por lo general, denota el formato de número de punto flotante binary128 estándar IEEE 754 .

Signo: 1 bit.
Orden: 15 bits [1] [2] .
Mantissa : 112 bits (112 [1] [2] se almacenan explícitamente).

Número equivalente de dígitos decimales significativos (con el mismo error de representación relativo promedio): 34 ( log 10 (2 113 ) ≈ 34.016 ).

Señal
(15 bits)
Orden
(112 bits)
Mantisa
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 dieciséis quince ocho 7 0

Ejemplos de números de precisión cuádruple

Pequeñas constantes: [2]

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

Número máximo y mínimo (normal) de precisión cuádruple: [3] [4] [2]

0x 7FFE FFFFFFFFFFFFFF FFFFFFFF ≈ 1,189731495357231765085757593262800702 × 10 4932 0X 0001 0000 0000 0000 0000 ≈ 3,36214311209350622677

Números desnormalizados cuádruples : máximo y mínimo positivo: [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

Ceros cuádruples: [2]

0x 0000 0000 0000 0000 0000 0000 0000 0000 = 0 0x 8000 0000 0000 0000 0000 0000 0000 0000 = -0

Infinitos cuádruples: [2]

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

Soporte

Varios compiladores, incluidos GCC (desde la versión 4.0, 2010 [5] ), IBM XL (10.1 [5] ), Intel, permiten el uso de números de precisión "Cuádruple" en programas C/C++ y Fortran (por ejemplo, como el tipo __float128 [6] , long double, REAL*16), implementando cálculos sobre ellos en software, 1-2 órdenes de magnitud más lentos que con precisión soportada por hardware [7] . Aunque tales cálculos se pueden implementar en sistemas de procesamiento de números de precisión arbitraria (por ejemplo , GMP ), existen varias bibliotecas especializadas con una implementación de software de precisión "Cuádruple" [8] [9] [10] . También se están desarrollando métodos para la implementación de hardware [11] [12] , pero a partir de 2005, la precisión cuádruple no se implementó en hardware en procesadores masivos [13] .

Para algunos métodos de solución, la precisión cuádruple permite una convergencia más rápida (el número de iteraciones del método) en comparación con la precisión doble, y cada iteración se vuelve más larga debido al uso de la implementación de software de operaciones con números [14] .

Existe un enfoque de "doble-doble" para implementar números con una precisión casi cuádruple pero usando un formato de exponente más corto (a veces implementado en compiladores Fortran para el tipo REAL*16). Con este enfoque, por ejemplo, sumar dos números "doble-doble" requiere 8 operaciones de suma y resta y una comparación entre dobles [13] .

Véase también

Notas

  1. 1 2 Precisión real, doble y cuádruple (Referencia del lenguaje FORTRAN 77)
  2. 1 2 3 4 5 6 7 Aritmética IEEE
  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. 1 2 IBM Use la representación doble larga de GCC para valores de punto flotante de precisión cuádruple de 128 bits - Estados Unidos
  6. Tipos flotantes: uso de la colección de compiladores GNU (GCC)
  7. https://gcc.gnu.org/onlinedocs/gcc-6.2.0/libquadmath.pdf
  8. Exploración de números de punto flotante de precisión cuádruple en GCC e ICC - Peter Larsson
  9. Copia archivada (enlace no disponible) . Consultado el 30 de noviembre de 2016. Archivado desde el original el 30 de noviembre de 2016. 
  10. Flotación suave de Berkeley
  11. Copia archivada (enlace no disponible) . Consultado el 30 de noviembre de 2016. Archivado desde el original el 20 de agosto de 2016. 
  12. http://www.atlantis-press.com/php/download_paper.php?id=4869
  13. 1 2 https://www-zeuthen.desy.de/acat05/talks/de_Dinechin.Florent.2/QuadAndMore.pdf
  14. http://www.siam.org/meetings/la03/proceedings/hhasegaw.pdf