Los números de punto flotante de precisión simple ocupan la mitad de la memoria y en máquinas modernas (incluso en GPU parece) las operaciones se pueden hacer con ellos a casi el doble de velocidad en comparación con la precisión doble. Muchos códigos FDTD que he encontrado utilizan exclusivamente aritmética y almacenamiento de precisión única. ¿Existe una regla general de cuándo es aceptable usar precisión única para resolver sistemas de ecuaciones dispersos a gran escala? Supongo que debe depender en gran medida del número de condición de la matriz.
Además, ¿existe alguna técnica efectiva que use doble precisión cuando sea necesario y única cuando no se requiera la precisión del doble? Por ejemplo, creo que para una multiplicación vectorial de matriz o un producto de puntos vectoriales, podría ser una buena idea acumular los resultados en una variable de doble precisión (para evitar errores de cancelación), pero que las entradas individuales se multipliquen entre sí se puede multiplicar con precisión simple.
¿Las FPU modernas permiten sin problemas la conversión de precisión simple (flotante) a precisión doble (doble) y viceversa? ¿O son estas operaciones costosas?