blob: bd744c611c426c131754d4d766638609835f5085 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
extern void abort (void);
__attribute__((noinline)) double
real_pow (double x, double pow_exp)
{
return __builtin_pow (x, pow_exp);
}
#define EPS (0.000000000000000000001)
#define SYNTH_POW(X, Y) __builtin_pow (X, Y)
volatile double arg;
int
main (void)
{
double i_arg = 0.1;
for (arg = i_arg; arg < 100.0; arg += 1.0)
{
double synth_res = SYNTH_POW (arg, EXPN);
double real_res = real_pow (arg, EXPN);
if (__builtin_abs (SYNTH_POW (arg, EXPN) - real_pow (arg, EXPN)) > EPS)
abort ();
}
return 0;
}
|