Domanda

Sto cercando un'implementazione di riferimento delle operazioni IEEE-754. C'è una cosa del genere?

È stato utile?

Soluzione

Credo alle biblioteche C Flusso di soft e fdlibm sono adatti a quello che stai cercando. Altri includono Linux (GNU Libc, GLIBC) o *BSD Libc's funzioni matematiche. Infine, CRLIBM Dovrebbe anche essere di interesse per te.

Ulrich Drepper ha un interessante Guarda diverse biblioteche matematiche, potrebbe valere anche la pena leggere.

Altri suggerimenti

Devo deluderti: praticamente non ce n'è.

Mentre tecnicamente ci sono sistemi conformi IEEE-754 perché non implementano funzionalità non richieste descritte nello standard, un'implementazione di riferimento che consente

  • Accesso a tutte le modalità di arrotondamento
  • Support Segning NANS
  • Supporto di intrappolamento di tutte e cinque le trappole

non esiste nelle lingue standard. Ciò provoca guai ricorrenti di William Kahan, la forza principale dietro lo standard e il suo adattamento sui processori Intel.

Non so se ci sono alcune lingue esoteriche che fare Sostenerli, ma posso escludere Java, C#, C ++, Fortran.

EDIT: Sebbene manca il supporto del compilatore, consiglio l'implementazione di Hausers softfloat fornita da McTylr. Hauser sa cosa sta facendo.

http://portal.acm.org/citation.cfm?id=227699.227701&coll=portal&dl=ACM&cfid=77938829&cftoken=18578907

Una domanda piuttosto confusa; In C ++ si presume che questo tipo di dettaglio sia curato dall'hardware o dal compilatore. Quindi, nell'aggiunta del punto galleggiante C ++ sarebbe

float a = 1.0;
float b = 2.0;
float c = a + b;

Sono sicuro che questo non è quello che intendevi effettivamente; Forse ne trarresti beneficio questa pagina Quale cerca di emulare hardware conforme IEEE-754 in JavaScript?

Un lavoro in giro per te potrebbe Python. Python ha una funzione in grado di convertire IEEE-754 Point float esagonale a 32/64 bit

   import struct
   struct.unpack('!f', '41973333'.decode('hex'))[0]

Puoi scrivere l'app in Python o semplicemente creare una funzione Python e chiamarla in C/C ++

Non sono sicuro di come chiamare Python da C/C ++ ma è possibile. Chiamare le funzioni di Python da C ++

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top