Négyszeres szám

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. január 1-jén felülvizsgált verziótól ; az ellenőrzések 7 szerkesztést igényelnek .

A négyes pontosság száma ( eng.  Quadruple precision ) egy számítógépes formátum lebegőpontos számok ábrázolására, amely négy egymást követő cellát foglal el a memóriában (számítógépes szavak; 32 bites számítógép esetén - 128 bit vagy 16 bájt ). Általában az IEEE 754 szabvány bináris128 lebegőpontos számformátumát jelöli .

Négyszeres számformátum

Jel: 1 bit.
Sorrend: 15 bit [1] [2] .
Mantisza : 112 bit (112 [1] [2] kifejezetten tárolva).

A szignifikáns decimális számjegyek egyenértékű száma (ugyanolyan átlagos relatív reprezentációs hibával): 34 ( log 10 (2 113 ) ≈ 34,016 ).

Jel
(15 bit)
Rend
(112 bites)
Mantisza
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 tizenöt nyolc 7 0

Példák négyszeres precíziós számokra

Kis állandók: [2]

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

Maximális és minimális (normál) négyes pontosságú szám: [3] [4] [2]

0x 7FFE FFFFFFFFFFFFFF FFF FFFF ≈ 1,18973149535723176508575932662800702 × 10 4932 0X 0001 0000 0001 0000 0001 0001 0000 000 000 000 000 30 30 267 2000 0000

Négyszeres denormalizált számok : maximum és minimum pozitív: [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

Négyszeres nullák: [2]

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

Négyszeres végtelen: [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

Támogatás

Számos fordítóprogram, köztük a GCC (4.0-s verzió óta, 2010 [5] ), az IBM XL (10.1 [5] ), az Intel, lehetővé teszi a "négyes" precíziós számok használatát C/C++ és Fortran programokban (pl. a __float128 típusú [6] , long double, REAL*16), a számításokat szoftveresen valósítja meg rajtuk, 1-2 nagyságrenddel lassabb, mint hardveresen támogatott precizitással [7] . Bár az ilyen számítások megvalósíthatók tetszőleges precíziós számfeldolgozó rendszerekben (pl . GMP ), számos speciális könyvtár létezik „négyszeres” pontosságú szoftveres megvalósítással [8] [9] [10] . A hardveres implementáció módszereit is fejlesztik [11] [12] , de 2005-től a négyszeres pontosság nem valósult meg a hardverben a tömegprocesszorokban [13] .

Egyes megoldási módszereknél a négyszeres pontosság gyorsabb konvergenciát tesz lehetővé (a módszer iterációinak száma) a kétszeres pontossághoz képest, mivel minden iteráció hosszabb lesz a számokon végzett műveletek szoftveres megvalósítása miatt [14] .

Létezik egy "dupla-dupla" megközelítés a számok közel négyszeres pontosságú megvalósítására, de rövidebb kitevő formátum használatával (néha a Fortran fordítóiban valósítják meg REAL*16 típushoz). Ezzel a megközelítéssel például két „dupla-dupla” szám összeadásához 8 összeadási és kivonási műveletre, valamint egy duplával való összehasonlításra van szükség [13] .

Lásd még

Jegyzetek

  1. 1 2 valódi, dupla és négyszeres pontosság (FORTRAN 77 nyelvi referencia)
  2. 1 2 3 4 5 6 7 IEEE aritmetika
  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 Az IBM a GCC hosszú kettős ábrázolását használja 128 bites, négyes pontosságú lebegőpontos értékekhez – Egyesült Államok
  6. Lebegő típusok – A GNU fordítógyűjtemény (GCC) használata
  7. https://gcc.gnu.org/onlinedocs/gcc-6.2.0/libquadmath.pdf
  8. Négyszeres pontosságú lebegőpontos számok felfedezése a GCC-ben és az ICC-ben - Peter Larsson
  9. Archivált másolat (a hivatkozás nem elérhető) . Letöltve: 2016. november 30. Az eredetiből archiválva : 2016. november 30. 
  10. Berkeley SoftFloat
  11. Archivált másolat (a hivatkozás nem elérhető) . Letöltve 2016. november 30. Az eredetiből archiválva : 2016. augusztus 20.. 
  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