Tengo un problema con la función "sin" de libc.g ++ opciones de optimización afectan el valor de la función sin
#include <cmath>
#include <stdio.h>
int main(int argc, char **argv)
{
double tt = 6.28318530717958620000; // 2 * M_PI
double yy = ::sin(tt);
printf("%.32f\n", yy);
return 0;
}
Al compilar el código anterior utilizando "g ++" sin ninguna opción de optimización, lo haría de salida "-0,00000000000000024492127076447545". Pero si con la opción "-O3", mostraría "-0.00000000000000024492935982947064".
¿Por qué no devuelve "-0.00000000000000024492935982947064" sin "-O3"? Gracias de antemano.
¿Puedo saber qué versión de g ++ y qué sistema operativo y hardware está utilizando? – Viet
g ++ 4.4.3, ubuntu 10.04, e Intel (R) Core (TM) i3-2310M CPU a 2.10 GHz. GRACIAS. –
Eche un vistazo a la opción '-ffast-math' tal vez. –