Os números de ponto flutuante de precisão única ocupam metade da memória e em máquinas modernas (mesmo nas GPUs, ao que parece), as operações podem ser feitas com eles quase duas vezes a velocidade em comparação com a precisão dupla. Muitos códigos FDTD que encontrei usam exclusivamente aritmética e armazenamento de precisão única. Existe uma regra prática quando é aceitável usar precisão única para resolver sistemas esparsos de equações em larga escala? Suponho que deve depender muito do número da condição da matriz.
Além disso, existe alguma técnica eficaz que utilize a precisão dupla, quando necessário, e única, onde a precisão da dupla não é necessária. Por exemplo, eu pensaria que, para uma multiplicação de vetores matriciais ou um produto de pontos vetoriais, pode ser uma boa idéia acumular os resultados em uma variável de precisão dupla (para evitar erros de cancelamento), mas que entradas individuais sejam multiplicadas entre si pode ser multiplicado usando precisão única.
Os FPU modernos permitem perfeitamente a conversão de precisão única (flutuante) para precisão dupla (dupla) e vice-versa? Ou são essas operações caras?