Počet čtyřnásobné přesnosti ( angl. Quadruple precision ) je počítačový formát pro reprezentaci čísel s pohyblivou řádovou čárkou, zabírající čtyři po sobě jdoucí buňky v paměti (počítačová slova; v případě 32bitového počítače - 128 bitů nebo 16 bajtů ). Obvykle označuje standardní binární 128 formát čísel s pohyblivou řádovou čárkou IEEE 754 .
Znamení: 1 bit.
Pořadí: 15 bitů [1] [2] .
Mantisa : 112 bitů (112 [1] [2] je výslovně uloženo).
Ekvivalentní počet platných desetinných míst (se stejnou průměrnou chybou relativního zastoupení): 34 ( log 10 (2 113 ) ≈ 34,016 ).
Podepsat | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(15 bitů) Objednávka |
(112 bit) 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 | 16 | patnáct | osm | 7 | 0 |
Malé konstanty: [2]
0x 3fff 0000 0000 0000 0000 0000 0000 0000 = 1 0x c000 0000 0000 0000 0000 0000 0000 0000 = −2Maximální a minimální (normální) číslo se čtyřnásobnou přesností: [3] [4] [2]
0x 7FFE FFFFFFFFFFFFFF FFFFFFFF ≈ 1,189731495357231765085757593262800702 × 10 4932 0X 0001 0000 0029 272 31 0000 00031 06Čtyřnásobná denormalizovaná čísla : maximum a minimum kladné: [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Čtyři nuly: [2]
0x 0000 0000 0000 0000 0000 0000 0000 0000 = 0 0x 8000 0000 0000 0000 0000 0000 0000 0000 = -0Čtyřnásobná nekonečna: [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Řada kompilátorů, včetně GCC (od verze 4.0, 2010 [5] ), IBM XL (10.1 [5] ), Intel umožňuje použití "čtyřnásobných" čísel s přesností v programech C/C++ a Fortran (např. typ __float128 [6] , long double, REAL*16), implementující výpočty na nich v softwaru, o 1-2 řády pomalejší než s přesností podporovanou hardwarem [7] . Ačkoli takové výpočty mohou být implementovány v libovolných systémech pro přesné zpracování čísel (např . GMP ), existuje několik specializovaných knihoven se softwarovou implementací "čtyřnásobné" přesnosti [8] [9] [10] . Metody pro hardwarovou implementaci jsou také vyvíjeny [11] [12] , ale od roku 2005 nebyla čtyřnásobná přesnost implementována v hardwaru v masových procesorech [13] .
U některých metod řešení umožňuje čtyřnásobná přesnost rychlejší konvergenci (počet iterací metody) ve srovnání s dvojnásobnou přesností, přičemž každá iterace se prodlužuje díky použití softwarové implementace operací s čísly [14] .
Existuje „dvojitý“ přístup k implementaci čísel s téměř čtyřnásobnou přesností, ale s použitím kratšího formátu exponentu (někdy implementovaného v kompilátorech Fortran pro typ REAL*16). S tímto přístupem například sčítání dvou „double-double“ čísel vyžaduje 8 operací sčítání a odčítání a jedno srovnání nad dvojnásobky [13] .