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 .
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 |
Kis állandók: [2]
0x 3fff 0000 0000 0000 0000 0000 0000 0000 = 1 0x c000 0000 0000 0000 0000 0000 0000 0000 = -2Maximá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 0000Né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^-4966Négyszeres nullák: [2]
0x 0000 0000 0000 0000 0000 0000 0000 0000 = 0 0x 8000 0000 0000 0000 0000 0000 0000 0000 = -0Né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/3Szá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] .