I numeri in virgola mobile a precisione singola occupano metà della memoria e su macchine moderne (anche su GPU sembra) le operazioni possono essere eseguite con loro a quasi il doppio della velocità rispetto alla doppia precisione. Molti codici FDTD che ho trovato utilizzano esclusivamente l'aritmetica e la memorizzazione a precisione singola. Esiste una regola empirica di quando è accettabile usare la precisione singola per risolvere sistemi di equazioni sparse su larga scala? Presumo che debba dipendere fortemente dal numero di condizione della matrice.
Inoltre, esiste una tecnica efficace che utilizza la doppia precisione laddove necessario e unica dove non è richiesta la precisione del doppio. Ad esempio, penso che per una moltiplicazione di matrici vettoriali o un prodotto a punti vettoriali, potrebbe essere una buona idea accumulare i risultati in una variabile a doppia precisione (per evitare errori di annullamento), ma che le singole voci vengano moltiplicate tra loro può essere moltiplicato usando una precisione singola.
Le moderne FPU consentono la conversione da precisione singola (float) a precisione doppia (doppia) e viceversa? O sono queste operazioni costose?