Efectivamente, premio para el caballero:
De la forma clásica serían: 3 sumas, 3 multiplicaciones y 2 potencias
usando la propiedad distributiva (para que veáis que lo que enseñaban en la escuela servía para algo :p) serían: 3 sumas y 3 multiplicaciones. Por lo que nos ahorramos las potencias.
Cuando estamos dentro de bucles grandes, se nota
Genial.. porque tengo unas cuantas más dentro del mismo bucle.. asi que más deberes ( Google search "propiedad distributiva").
Porque a ver.. aplicando eso a 'mi' propuesta de ejercicio, que esta implementada asi*:
float IOR = 1.3; // (1)
float Fdr = -1.440 / (IOR*IOR)+ 0.710 / IOR + 0.668 + 0.0636 * IOR;
*No la implementé yo, si no un estudiante chino, en el GSOC 2010.
(1) este es un valor introducido por el usuario, pero que pongo aqui para saber el valor de IOR dentro de la operación.
Veamos.. Realmente la función Fdr ( Fressnel diffuse reflection ) se resuelve matematicamente, pero aqui han introducido los valores ponderados de algunas variables, para optimizar un poco el código dentro del loop.
Deberes: estudiar como aplicar las propiedades distributivas a Fdr.. y a otras por el estilo.
Saludos