L'uso dell'aritmetica in virgola fissa può essere appropriato in determinate circostanze. Generalmente per il calcolo scientifico (almeno nel senso che la maggior parte delle persone ci pensa) non è appropriato a causa della necessità di esprimere le ampie gamme dinamiche incontrate. Si citano i problemi di autovalori come esempio, ma molto spesso nella scienza si è interessati ai più piccoli autovalori di una matrice (diciamo, nel calcolare lo stato fondamentale di un sistema quantistico). L'accuratezza di piccoli autovalori sarà generalmente piuttosto peggiorata rispetto a grandi autovalori se si utilizza il punto fisso. Se la matrice contiene voci che variano in base al rapporto, gli autovalori piccoli potrebbero essere del tutto inesprimibili nella precisione di lavoro. Questo è un problema con la rappresentazione dei numeri; questi argomenti valgono indipendentemente da come si eseguono i calcoli intermedi. Potresti eventualmente elaborare un ridimensionamento da applicare ai risultati calcolati, ma ora hai appena inventato il virgola mobile. È facile costruire matrici i cui elementi sono ben educati, ma i cui autovalori sono estremamente mal comportati (comeMatrici di Wilkinson , o anche matrici con voci interamente intere ). Questi esempi non sono così patologici come potrebbero sembrare, e molti problemi all'avanguardia della scienza coinvolgono matrici molto mal comportate, quindi usare un punto fisso in questo contesto è una Bad Idea (TM).
Potresti sostenere che conosci l'entità dei risultati e non vuoi sprecare bit sull'esponente, quindi parliamo degli intermedi. L'uso del punto fisso generalmente aggraverà gli effetti di cancellazioni e rotondità catastrofiche, a meno che non si faccia davvero molta fatica per lavorare con maggiore precisione. La penalità delle prestazioni sarebbe enorme e suppongo che l'uso di una rappresentazione in virgola mobile con la stessa larghezza di bit della mantissa sarebbe più veloce e più preciso.
Un'area in cui il punto fisso può brillare è in alcune aree del calcolo geometrico. Soprattutto se hai bisogno di un'aritmetica esatta o conosci in anticipo l'intervallo dinamico di tutti i numeri, il punto fisso ti consente di sfruttare tutti i bit della tua rappresentazione. Ad esempio, supponete di voler calcolare l'intersezione di due linee e in qualche modo i punti finali delle due linee sono normalizzati per stare nel quadrato dell'unità. In questo caso, il punto di intersezione può essere rappresentato con più bit di precisione rispetto all'uso di un numero in virgola mobile equivalente (che sprecherà i bit sull'esponente). Ora, quasi certamente, i numeri intermedi richiesti in questo calcolo devono essere calcolati con maggiore precisione, o almeno eseguiti con molta attenzione (come quando si divide il prodotto di due numeri per un altro numero, è necessario fare molta attenzione al riguardo ). A questo proposito, il punto fisso è più vantaggioso dal punto di vista della rappresentazione piuttosto che dal punto di vista computazionale, e vorrei andare fino al punto di dire che questo è generalmente vero quando è possibile stabilire limiti superiori e inferiori definiti sulla gamma dinamica dei risultati dell'algoritmo . Questo succede raramente.
Pensavo che le rappresentazioni in virgola mobile fossero rozze o imprecise (perché sprecare bit su un esponente ?!). Ma col tempo ho capito che è davvero una delle migliori rappresentazioni possibili per numeri reali. Le cose in natura si presentano su scale log, quindi i dati reali finiscono per coprire una vasta gamma di esponenti. Inoltre, per ottenere la massima precisione relativa possibile, è necessario lavorare sulle scale dei registri, rendendo più naturale la localizzazione di un esponente. L'unico altro contendente per una rappresentazione "naturale" è l' indice di livello simmetrico . Tuttavia, l'addizione e la sottrazione sono molto più lente in quella rappresentazione e manca il supporto hardware di IEEE 754. Una quantità enorme di pensiero è stata messa negli standard in virgola mobile, da un pilastro di algebra lineare numerica. Penserei che sappia qual è la "giusta" rappresentazione dei numeri.