Processing math: 100%

5 votos

Buscando matemática optimizaciones cuando la traducción de fórmulas de código

Estoy escribiendo una aplicación que se traduce en fórmulas en código ejecutable. He estado experimentando con bastante obvio optimizaciones tales como factoring (reducir el número de multiplicaciones) con el fin de hacer que el código se ejecute más rápido. Puede alguien sugerir cualquier otra relacionada con el rendimiento de las optimizaciones que se podría realizar cuando la traducción de fórmulas de código? Gracias.

2voto

Knox Puntos 1543

El código

double x = a / b + c / d;

normalmente lleva el doble de tiempo de ejecución como el equivalente de la expresión

double x = (a * d + b * c) / (b * d);

debido a la división de punto flotante es muy lenta mientras que la adición y la multiplicación son rápidos.


Así como que hay cosas obvias que hacer como pre-computación en valores constantes, y la sustitución de

double x = a + 0.0; double y = b * 1.0; double z = c / 1.0;

con las expresiones equivalentes

double x = a; double y = b; double z = c;

Esto no es tan absurdo como pueda parecer: las constantes 1.0 y 0.0 podría no ser los valores originalmente escrito, sino más bien los resultados de algunos intermedios de computación.

También se podría optimizar pow(x, 2) a x * x y similares, aunque ninguna decente compilador debe hacer esto para usted.

1voto

lhf Puntos 83572

Creo que sería mejor que dejar tales optimizaciones del compilador. O ¿tiene usted pruebas de que el compilador no puede hacer justicia a sus fórmulas?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X