IEEE 754r

IEEE 754r er revisjonsprosjektet til IEEE 754 flytende kommaberegningsstandard . Målet er å revidere standarden der den har blitt foreldet, å definere noen gråsoner som er igjen av det forrige arbeidet og å slå den sammen til IEEE 854 (standarden for ikke-posisjonell flyttallsberegning).

I tilfelle strengere definisjoner er umulig å vedta med de gamle applikasjonene, er disse gruppert i en ny seksjon som vurderer to nivåer av implementering.

Gjennomgangsprosess

Arbeidene har pågått siden 2000 , med mål om ferdigstillelse i desember 2006 . 11. juni 2008 ble standarden enstemmig godkjent av IEEE Review Committee (RevCom), og ble formelt godkjent av IEEE-SA Standards Board 12. juni 2008. Den ble publisert 29. august 2008.

Liste over endringer

Den mest åpenbare forbedringen til standarden er tillegget av 128-biters og desimalstandarden, og noen nye operasjoner; Noen sentrale definisjoner av leksikonet er imidlertid også avklart. Denne listen fremhever de store forskjellene med standarden for hver av hoveddelene. Disse endringene er ennå ikke godkjent, så de har fortsatt verdien av bare forslag .

Emne

Emnet for denne nye standarden inkluderer flyttallstall også i desimalbase og 128 biter .

Definisjoner

Mange definisjoner er avklart og presisert. Noen termer har blitt erstattet for klarhet (f.eks . kalles denormaliserte tall nå subnormaliserte ).

Formater

Definisjonsnivåene for flytende kommatall er oppført for å fremheve forskjellene mellom:

  1. det matematiske settet med reelle tall;
  2. elementer som kan representeres med flyttallformatet (et begrenset og begrenset tall, som inkluderer -0, uendelig og "Nan", ikke et tall );
  3. metodene for representasjon av disse enhetene (f.eks.: tegn-eksponent- mantisse , etc.);
  4. bitsekvensen (kodingen) som brukes.

Settet med representable enheter blir deretter undersøkt i detalj, og viser at de kan behandles både ved å betrakte mantissen som en brøk og ved å betrakte den som et heltall.

"Firedobbel presisjon" (128 bits) legges til det binære formatet.

De nye desimalformatene er beskrevet, av lengden på de binære formatene: de kan gi mantisser på 7, 16 eller 34 sifre, og de kan normaliseres eller subnormaliseres. For maksimal rekkevidde og nøyaktighet kombinerer dette formatet deler av eksponenten og mantissen til en kombinasjonssone , og komprimerer resten av mantissen til en veldig tett desimalkode.

Avrunding

Avrunding -til-nærmeste, bånd fra null -avrundingsmodus er lagt til , kun nødvendig for desimaltall.

Operasjoner

Denne delen inneholder en rekke avklaringer (spesielt angående sammenligninger mellom tall) og mange operasjoner som tidligere ble anbefalt ( stille kopi , negate , abs og copysign ) er nå nødvendige.

De nye operasjonene inkluderer FMA ( fused multiply-add ), klassifiseringspredikater, forskjellige minimums- og maksimumsfunksjoner (som tillater en total rekkefølge) og to spesifikke operasjoner for desimaler ( samequantum og quantize ).

Minimum og maksimum ( min og maks )

Disse to instruksjonene er definert til å være kommutative (bortsett fra når det er inndata lik to Nan):

  • min (+ 0, -0) = min (-0, + 0) = -0
  • maks (+ 0, -0) = maks (-0, + 0) = +0

For å støtte operasjoner der en Nan skal erstattes med en ekstrem, er minimums- og maksimumsoperasjonene definert for å returnere et tall x fremfor en Nan:

  • min (x, NaN) = min (Nan, x) = x
  • maks (x, NaN) = maks (Nan, x) = x

I dette tilfellet kalles de to operasjonene minnum og maxnum for å fremheve denne egenskapen.

Desimal aritmetikk

Denne delen definerer desimalaritmetikk, kompatibel med den som er tatt i bruk i Java , C # , PL / I , COBOL , REXX og andre.

Grunnkonvertering

I motsetning til 754, vil 754r kreve en konvertering mellom desimal og binær base i henhold til en viss avrunding, innenfor omfanget av formatet.

Seksjoner 6-8

Innholdet i disse avsnittene er revidert uten vesentlige endringer; enkelte aspekter er fortsatt under diskusjon.

Inkompatible utvidelser

Denne nye delen definerer et høyere nivå av samsvar med standarden, og spesifiserer utvidelser som fortsatt er kompatible med den tidligere IEEE 754, men som kan forårsake problemer i eldre applikasjoner under visse omstendigheter. Inntil den er navngitt, vil den bli referert til som "seksjon N".

Det inkluderer:

  • utvidet avrundingsposisjon
  • definisjonen av innholdet for NaN-ene og hvordan de skal forplantes
  • den binære kodingen av NaNs
  • utvidet operasjon på NaNs.
  • begrensning av definisjonen av underflyt

Underflyt

I standard 754 er definisjonen av underflyt at resultatet av en operasjon er lite nok til å forårsake tap av nøyaktighet. Det var to forhold for å avgjøre om et underløp hadde oppstått eller ikke: før eller etter avrunding av resultatet til uendelig presisjon med ubegrenset eksponent. To forhold for tap av nøyaktighet ble tillatt: unøyaktig resultat eller tap på grunn av denormalisering. Ingen kjente maskinvaresystemer implementerer sistnevnte.

Ved det høyeste samsvarsnivået til 754r foreslås det at bare småhet etter avrunding og unøyaktighet på grunn av tap av presisjon er årsaker til underflyt.

Vedlegg

Anneksene har gjennomgått mange endringer: for eksempel er fangstmekanismen flyttet til et anneks. Feller var ikke påkrevd av IEEE 754-1985, selv om mange antok at de var det. Gjennomgangen prøver å fokusere mer på funksjonene som en gitt implementering skal gi for å håndtere spesielle tilfeller: feller er en mulig løsning, men det finnes andre.

  • Vedlegg "D" gir en veiledning til debugger -utviklere for å hjelpe dem med å tilby ønskelige funksjoner for alle som feilsøker flyttallkode.
  • Vedlegget "L" gir råd til språkutviklere om hvordan man kobler objekter i standarden til egenskapene til språket deres.
  • Vedlegget "Z" introduserer valgfrie datatyper for å støtte andre flytende kommaformater med fast bredde, så vel som vilkårlige presisjonsformater (for eksempel når presisjonen til representasjonen og avrundingen bestemmes under kjøring) - selv om slikt materiale blir inkorporert i hovedspesifikasjon.

Områder som fortsatt er under utvikling

  • Regler for vurdering av uttrykk og måter å velge mellom de ulike regelsett.
  • Arv og utbredelse av metoder (håndtering av unntak, forhåndserstatning, avrunding) og flagg (unøyaktig, underflyt, overløp, divisjon med null, ugyldig). Vi ønsker at modusene skal arves fra en oppringt rutine, men ikke påvirke den som ringer; og at flaggene i stedet forplanter seg fra anropet til den som ringer.
  • Brukes signal-NaNs nok til å fortsette å garantere deres eksistens?
  • Definisjon av et utvekslingsformat for IEEE 754r / Annex Z.

Eksterne lenker