test(long double val,int * eval)1 void test(long double val, int *eval)
2 {
3   long double tmp = 1.0l;
4   int i = 0;
5 
6   if (val < 0.0l)
7     val = -val;
8 
9   if (val >= tmp)
10     while (tmp < val)
11       {
12 	tmp *= 2.0l;
13 	if (i++ >= 10)
14 	  abort ();
15       }
16   else if (val != 0.0l)
17     while (val < tmp)
18       {
19 	tmp /= 2.0l;
20 	if (i++ >= 10)
21 	  abort ();
22       }
23 
24   *eval = i;
25 }
26 
main(void)27 int main(void)
28 {
29   int eval;
30 
31   test(3.0, &eval);
32   test(3.5, &eval);
33   test(4.0, &eval);
34   test(5.0, &eval);
35   exit (0);
36 }
37