Completate la seguente analogia. L'addizione sta alla sottrazione come la moltiplicazione sta:
- alla divisione
- all'arrotondamento
- al caso
- usando un Pentium, tutte le precedenti
Il 24 ottobre 1994 Intel ricevette un'email da un certo professor Thomas Nicely del Lynchburg College e mi chiedo se qualcuno si accorse di quanto il fato fosse stato ironico e beffardo visto che nicely si può tradurre come piacevolmente, amabilmente.
Tuttavia, quello che il professore aveva scritto nell'email non era per nulla piacevole. Il 13 giugno 1994, pochi giorni dopo aver aggiunto un PC dotato di Pentium al suo gruppo di computer, il professor Thomas Nicely si accorse della presenza di errori nei risultati di un programma per trovare numeri primi, numeri primi gemelli, terzine e quadruple di numeri primi. Il problema fu identificato con certezza solo il 17 ottobre 1994 quando il professore riscontrò lo stesso tipo di errore su un'altra machina dotata di processore Pentium.
Il 19 ottobre 1994 il professor Nicely scrisse a Micron Inc., il fornitore del sistema, ma, non avendo ricevuto una risposta esauriente, cinque giorni dopo scrisse a Intel. Dopo sei giorni in attesa di una risposta mai pervenuta, il 30 ottobre il professor Nicely scrisse un'email (qui il testo originale) che iniziava così:
Da: Dr. Thomas Nicely
Professore di Matematica
Lynchburg College
1501 Lakeside Drive
Lynchburg, Virginia 24501-3199
A: Chiunque possa essere interessato
RE: Bug nell'unità FPU dei Pentium
Data: 30 ottobre 1994
Sembra che ci sia un bug nell'unità di calcolo a virgola mobile (coprocessore matematico) di molti, e forse tutti, i processori Pentium. In breve, la FPU de Pentium restituisce risultati errati in alcune operazioni di divisione. Per esempio,
1/824633702441.0
è calcolato in modo errato (tutti i numeri dopo l'ottavo decimale sono sbagliati). Questo può essere verificato sia compilando un codice ed eseguendolo, sia in un qualsiasi foglio di lavoro come Quattro Pro o Excel, o addirittura con la calcolatrice di Windows (usata in modalità scientifica), eseguendo il calcolo
(824633702441.0)*(1/824633702441.0)
il cui risultato dovrebbe essere 1 (con un piccolissimo margine di errore dovuto agli arrotondamenti; in generale, i risultati del coprocessore dovrebbero contenere 19 decimali significativa). Tuttavia, i Pentium provati hanno restituito il risultato
0.999999996274709702
per questa operazione.
La mail del professor Nicely continua portando altri esempi che vi invito a leggere nel testo originale. Il problema fu subito preso in considerazione dalla comunità e, visto che riguardava le operazioni di divisione svolte dall'unita in virgola mobile (FPU), venne presto ribattezzato FDIV (Floating-point Division) bug, un chiaro riferimento alla relativa istruzione in linguaggio assembly.

Come De André cantava già da molti anni, "una notizia un po' originale / non ha bisogno di alcun giornale / come una freccia dall'arco scocca / corre veloce di bocca in bocca". In questo caso, bastarono 8 giorni perché la notizia trapelasse all'esterno della comunità scientifica e trovasse posto sulla carta stampata. Era il 7 novembre 1994 quando sull'Electronic Engineering Times comparve l'articolo firmato da Alexander Wolfe in cui si diceva che Intel aveva corretto un errore della FPU dei Pentium.
Esattamente due settimane più tardi la notizia fu ripresa dalla CNN e diventò di pubblico dominio. Quello fu l'esatto momento in cui un piccolissimo 0,00000000372529 iniziò a moltiplicarsi a dismisura fino a diventare un enorme 475.000.000.