IEEE 754r

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

IEEE 754r este proiectul de revizuire a standardului de calcul IEEE 754 în virgulă mobilă . Scopul este de a revizui standardul în cazul în care a devenit depășit, de a defini unele zone gri lăsate de lucrarea anterioară și de a-l îmbina în IEEE 854 (standardul pentru calculul cu virgulă non-pozițională).

În cazul în care definițiile mai stricte sunt imposibil de adoptat cu aplicațiile vechi, acestea sunt grupate într-o nouă secțiune care are în vedere două niveluri de implementare.

Procesul de revizuire

Lucrările au continuat din 2000 , cu o țintă finalizată în decembrie 2006 . La 11 iunie 2008, standardul a fost aprobat în unanimitate de Comitetul de revizuire IEEE (RevCom) și a fost aprobat oficial de către Comitetul pentru standarde IEEE-SA la 12 iunie 2008. A fost publicat la 29 august 2008.

Lista modificărilor

Cea mai evidentă îmbunătățire a standardului este adăugarea standardului pe 128 de biți și zecimal și câteva operații noi; cu toate acestea, unele definiții cheie ale lexicului au fost, de asemenea, clarificate. Această listă evidențiază diferențele majore cu standardul pentru fiecare dintre secțiunile sale principale. Aceste modificări nu au fost încă aprobate, deci au în continuare valoarea unor simple propuneri .

Obiect

Subiectul acestui nou standard include numere în virgulă mobilă, de asemenea, în bază zecimală și 128 de biți .

Definiții

Multe definiții au fost clarificate și clarificate. Unii termeni au fost înlocuiți pentru claritate (de exemplu, numerele denormalizate sunt acum denumite subnormalizate ).

Formate

Au fost enumerate nivelurile de definiție a numerelor cu virgulă mobilă, pentru a evidenția diferențele dintre:

  1. setul matematic al numerelor reale;
  2. elemente care pot fi reprezentate cu formatul în virgulă mobilă (un număr finit și limitat, care include -0, infinit și „Nan”, nu un număr );
  3. metodele de reprezentare a acestor entități (de exemplu: semn-exponent- mantisă etc.);
  4. secvența de biți (codificare) utilizată.

Setul de entități reprezentabile este apoi examinat în detaliu, demonstrând că pot fi tratate atât considerând mantisa o fracție, cât și considerând-o un număr întreg.

„Precizia cvadruplă” (128 biți) este adăugată la formatul binar.

Sunt descrise noile formate zecimale, de lungimea formatelor binare: pot da mantise de 7, 16 sau 34 cifre și pot fi normalizate sau subnormalizate. Pentru o autonomie și o precizie maxime, acest format combină o parte din exponent și mantisă într-o zonă combinată și comprimă restul mantisei într-un cod zecimal foarte dens.

Rotunjire

S -a adăugat rotunjirea la cel mai apropiat, legături departe de modul de rotunjire zero , necesar doar pentru numerele zecimale.

Operațiuni

Această secțiune conține numeroase clarificări (în special în ceea ce privește comparațiile între numere) și multe operații recomandate anterior ( copiere silențioasă , negare , abs și copisign ) sunt acum necesare.

Noile operații includ FMA ( fused multiply-add ), predicate de clasificare, diverse funcții minime și maxime (care permit o ordine totală) și două operații specifice pentru zecimale ( samequantum și quantize ).

Minim și maxim ( min și max )

Aceste două instrucțiuni sunt definite ca fiind comutative (cu excepția cazului de intrare egal cu doi Nan):

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

Pentru a sprijini operațiunile în care un Nan ar trebui înlocuit cu un extrem, operațiunile minime și maxime sunt definite pentru a returna un număr x în preferință unui Nan:

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

În acest caz, cele două operații sunt numite minnum și maxnum pentru a evidenția această caracteristică.

Aritmetica zecimală

Această secțiune definește aritmetica zecimală, compatibilă cu cea adoptată în Java , C # , PL / I , COBOL , REXX și altele.

Conversie de bază

Spre deosebire de 754, 754r va necesita o conversie între baza zecimală și binară în funcție de o anumită rotunjire, în cadrul formatului.

Secțiunile 6-8

Conținutul acestor secțiuni a fost revizuit fără modificări substanțiale; unele aspecte sunt încă în discuție.

Extensii incompatibile

Această nouă secțiune definește un nivel mai înalt de conformitate cu standardul, specificând extensii care sunt încă compatibile cu IEEE 754 anterioară, dar care ar putea cauza probleme în aplicații mai vechi în anumite circumstanțe. Până la numire, va fi denumită „secțiunea N”.

Include:

  • poziție de rotunjire extinsă
  • definirea conținutului pentru NaN și modul în care acestea trebuie propagate
  • codarea binară a NaN-urilor
  • operațiuni extinse pe NaN.
  • restricționarea definiției subfluenței

Underflow

În standardul 754, definiția subfluenței este că rezultatul unei operații este suficient de mic pentru a provoca o pierdere de precizie. Au existat două condiții pentru a determina dacă s-a produs sau nu un subfluor: înainte sau după rotunjirea rezultatului la o precizie infinită cu exponent nelimitat. Au fost permise două condiții de pierdere a preciziei: rezultatul inexact sau pierderea din cauza denormalizării. Niciun sistem hardware cunoscut nu implementează acesta din urmă.

La cel mai înalt nivel de conformitate al modelului 754r, se propune ca doar micimea după rotunjire și imprecizia cauzată de pierderea preciziei să fie cauzele de deversare.

Dependențe

Anexele au suferit numeroase modificări: de exemplu, mecanismul de captare a fost mutat într-o anexă. IEEE 754-1985 nu a cerut capcane, deși mulți au presupus că sunt. Revizuirea încearcă să se concentreze mai mult pe funcțiile pe care o anumită implementare ar trebui să le ofere pentru a face față anumitor cazuri: capcanele sunt o posibilă soluție, dar există și altele.

  • Atașamentul "D" oferă un ghid pentru dezvoltatorii de depanare, pentru ai ajuta să ofere funcții dorite pentru oricine depanează codul în virgulă mobilă.
  • Anexa „L” oferă sfaturi dezvoltatorilor de limbi cu privire la modul de legare a obiectelor standardului la caracteristicile limbii lor.
  • Anexa „Z” introduce tipuri de date opționale pentru a suporta alte formate cu virgulă mobilă cu lățime fixă, precum și formate de precizie arbitrare (de exemplu, când precizia reprezentării și rotunjirii este determinată în timpul rulării) - deși un astfel de material este încorporat în caietul de sarcini principal.

Zonele încă în curs de dezvoltare

  • Reguli pentru evaluarea expresiilor și modalități de alegere între diferitele seturi de reguli.
  • Moștenirea și propagarea metodelor (gestionarea excepțiilor, pre-înlocuirea, rotunjirea) și semnalizatoarele (incorect, scurgere, depășire, împărțire la zero, invalid). Am dori ca modurile să fie moștenite dintr-o rutină apelată, dar să nu afecteze apelantul; și că, în schimb, steagurile se propagă de la apel la apelant.
  • NaN-urile de semnalizare sunt utilizate suficient pentru a-și garanta existența?
  • Definiția unui format de schimb pentru IEEE 754r / Anexa Z.

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT