Ho un problema con la funzione "sin" di libc.Le opzioni di ottimizzazione g ++ hanno effetto sul valore della funzione 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;
}
Quando compilare il codice di cui sopra con "g ++", senza alcuna opzione di ottimizzazione, sarebbe uscita "-0,00000000000000024492127076447545". Ma se con l'opzione "-O3", emetterebbe "-0,00000000000000024492935982947064".
Perché non restituisce "-0,00000000000000024492935982947064" senza "-O3"? Grazie in anticipo.
Posso sapere quale versione di g ++ e quale sistema operativo e hardware utilizzi? – Viet
g ++ 4.4.3, ubuntu 10.04 e Intel (R) Core (TM) CPU i3-2310M @ 2.10GHz. GRAZIE. –
Controlla l'opzione '-ffast-math', forse. –