Liczby zmiennoprzecinkowe pojedynczej precyzji zajmują połowę pamięci, a na nowoczesnych komputerach (nawet na GPU) operacje można wykonywać z nimi prawie dwukrotnie szybciej niż podwójna precyzja. Wiele kodów FDTD, które znalazłem, używa wyłącznie arytmetyki i pamięci o pojedynczej precyzji. Czy istnieje ogólna zasada, kiedy dopuszczalne jest stosowanie pojedynczej precyzji do rozwiązywania wielkoskalowych rzadkich układów równań? Zakładam, że musi to w dużej mierze zależeć od liczby warunków macierzy.
Ponadto, czy istnieje jakakolwiek skuteczna technika, która wykorzystuje podwójną precyzję tam, gdzie to konieczne i pojedynczą, gdy dokładność podwójnej nie jest wymagana. Myślę na przykład, że w przypadku mnożenia wektora macierzy lub iloczynu wektorowego dobrym pomysłem może być gromadzenie wyników w zmiennej o podwójnej precyzji (aby uniknąć błędu anulowania), ale poszczególne wpisy należy pomnożyć ze sobą można pomnożyć za pomocą pojedynczej precyzji.
Czy nowoczesne FPU bezproblemowo umożliwiają konwersję z pojedynczej precyzji (float) na podwójną precyzję (double) i odwrotnie? Czy są to kosztowne operacje?