\left(\left(\left(e + d\right) + c\right) + b\right) + a
\left(\left(e + d\right) + c\right) + \left(b + a\right)
double f(double a, double b, double c, double d, double e) {
double r121977 = e;
double r121978 = d;
double r121979 = r121977 + r121978;
double r121980 = c;
double r121981 = r121979 + r121980;
double r121982 = b;
double r121983 = r121981 + r121982;
double r121984 = a;
double r121985 = r121983 + r121984;
return r121985;
}
double f(double a, double b, double c, double d, double e) {
double r121986 = e;
double r121987 = d;
double r121988 = r121986 + r121987;
double r121989 = c;
double r121990 = r121988 + r121989;
double r121991 = b;
double r121992 = a;
double r121993 = r121991 + r121992;
double r121994 = r121990 + r121993;
return r121994;
}




Bits error versus a




Bits error versus b




Bits error versus c




Bits error versus d




Bits error versus e
Results
| Original | 0.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.4
rmApplied associate-+l+0.3
Final simplification0.3
herbie shell --seed 2020062
(FPCore (a b c d e)
:name "Expression 1, p15"
:precision binary64
:pre (<= 1 a 2 b 4 c 8 d 16 e 32)
:herbie-target
(+ (+ d (+ c (+ a b))) e)
(+ (+ (+ (+ e d) c) b) a))