#include #include const double TEMPOEXECUCAO = 300; float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; } int main(void){ time_t tStart, tActual; long int termosPorSegundo = 0l; // contador de termos gerados float i=1.f; // i-esimo termo double t1,t2; time(&tStart); time(&tActual); t1 = difftime(tActual, tStart); t2 = t1; printf("Tempo versus Termos Criados.\n"); while(t1 < TEMPOEXECUCAO){ InvSqrt(i++); if((int)t2 == (int)(t1+1)){ printf("%0.0f\t%ld\n",t1,termosPorSegundo); termosPorSegundo = 0; t1 = difftime(tActual, tStart); t2 = t1; }else{ termosPorSegundo++; t2 = difftime(tActual, tStart); } time(&tActual); } }