Одноточні цифри з плаваючою комою займають половину пам’яті, а на сучасних машинах (навіть на GPU, здається) операції з ними можна робити майже вдвічі швидше порівняно з подвійною точністю. У багатьох кодах FDTD, які я знайшов, використовується виключно арифметика одноточної точності та зберігання. Чи існує правило, коли прийнятно використовувати єдину точність для вирішення масштабних розріджених систем рівнянь? Я припускаю, що він повинен сильно залежати від числа умови матриці.
Крім того, чи існує якась ефективна методика, яка використовує подвійну точність, де це необхідно, та одинарну, коли точність подвійної не потрібна. Наприклад, я б подумав, що для множення матричного вектора або добутку векторної крапки може бути хорошою ідеєю накопичити результати в подвійній змінній точності (щоб уникнути помилки скасування), але щоб окремі записи потрібно помножити між собою можна множити за допомогою однієї точності.
Чи дозволяють сучасні ФПУ безперешкодно перетворювати з одноточної (поплавкової) на подвійну точну (подвійну) і навпаки? Або це дорогі операції?