Fyrdubbelt nummer

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 1 januari 2020; kontroller kräver 7 redigeringar .

Antalet fyrfaldig precision ( eng.  Quadruple precision ) är ett datorformat för att representera flyttal, som upptar fyra på varandra följande celler i minnet (datorord; i fallet med en 32-bitars dator - 128 bitar eller 16 byte ). Betecknar typiskt IEEE 754 standard binary128 flyttalsformat .

Fyrdubbelt talformat

Tecken: 1 bit.
Ordning: 15 bitar [1] [2] .
Mantissa : 112 bitar (112 [1] [2] är explicit lagrade).

Ekvivalent antal signifikanta decimalsiffror (med samma genomsnittliga relativa representationsfel): 34 ( log 10 (2 113 ) ≈ 34,016 ).

Tecken
(15 bitar)
Beställ
(112 bitar)
Mantissa
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 femton åtta 7 0

Exempel på fyrdubbla precisionsnummer

Små konstanter: [2]

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

Högsta och lägsta (normala) quad-precision antal: [3] [4] [2]

0x 7FFE FFFFFFFFFFFFFF FFF FFFF ≈ 1.18973149535723176508575932662800702 × 10 4932 0X 0001 0000 0000 0000 0000 0000 0000 0000 315 201 0000 315 0000 0000 0000 0000 0000 0000 315

Fyrdubbla denormaliserade tal : maximalt och minst positivt: [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

Fyrdubbla nollor: [2]

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

Fyrdubbla oändligheter: [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

Support

Ett antal kompilatorer, inklusive GCC (sedan version 4.0, 2010 [5] ), IBM XL (10.1 [5] ), Intel, tillåter användning av "Quadruple" precisionsnummer i C/C++- och Fortran-program (till exempel som typen __float128 [6] , lång dubbel, REAL*16), implementerar beräkningar på dem i mjukvara, 1-2 storleksordningar långsammare än med hårdvarustödd precision [7] . Även om sådana beräkningar kan implementeras i system för bearbetning av godtyckliga precisionsnummer (t.ex. GMP ), finns det flera specialiserade bibliotek med en mjukvaruimplementering av "Quadruple" precision [8] [9] [10] . Metoder för hårdvaruimplementering utvecklas också [11] [12] , men från och med 2005 implementerades inte fyrdubbel precision i hårdvara i massprocessorer [13] .

För vissa lösningsmetoder tillåter fyrdubbel precision snabbare konvergens (antalet iterationer av metoden) jämfört med dubbel precision, där varje iteration blir längre på grund av användningen av mjukvaruimplementering av operationer på siffror [14] .

Det finns en "dubbel-dubbel" metod för att implementera siffror med nästan fyrdubblad precision men med ett kortare exponentformat (ibland implementerat i Fortran-kompilatorer för REAL*16-typ). Med detta tillvägagångssätt kräver till exempel att lägga till två "dubbel-dubbla" tal 8 additions- och subtraktionsoperationer och en jämförelse över dubblar [13] .

Se även

Anteckningar

  1. 1 2 Verklig, dubbel och fyrdubblad precision (FORTRAN 77 språkreferens)
  2. 1 2 3 4 5 6 7 IEEE Aritmetik
  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 Använd GCC:s långa dubbla representation för 128-bitars quad precision flyttalsvärden - USA
  6. Flytande typer - Använda GNU Compiler Collection (GCC)
  7. https://gcc.gnu.org/onlinedocs/gcc-6.2.0/libquadmath.pdf
  8. Utforskar fyrdubbla precisionsflyttal i GCC och ICC - Peter Larsson
  9. Arkiverad kopia (länk ej tillgänglig) . Hämtad 30 november 2016. Arkiverad från originalet 30 november 2016. 
  10. Berkeley SoftFloat
  11. Arkiverad kopia (länk ej tillgänglig) . Hämtad 30 november 2016. Arkiverad från originalet 20 augusti 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