void test(long double val, int *eval) | |
{ | |
long double tmp = 1.0l; | |
int i = 0; | |
if (val < 0.0l) | |
val = -val; | |
if (val >= tmp) | |
while (tmp < val) | |
{ | |
tmp *= 2.0l; | |
if (i++ >= 10) | |
abort (); | |
} | |
else if (val != 0.0l) | |
while (val < tmp) | |
{ | |
tmp /= 2.0l; | |
if (i++ >= 10) | |
abort (); | |
} | |
*eval = i; | |
} | |
int main(void) | |
{ | |
int eval; | |
test(3.0, &eval); | |
test(3.5, &eval); | |
test(4.0, &eval); | |
test(5.0, &eval); | |
exit (0); | |
} |