\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 r112626 = e;
double r112627 = d;
double r112628 = r112626 + r112627;
double r112629 = c;
double r112630 = r112628 + r112629;
double r112631 = b;
double r112632 = r112630 + r112631;
double r112633 = a;
double r112634 = r112632 + r112633;
return r112634;
}
double f(double a, double b, double c, double d, double e) {
double r112635 = e;
double r112636 = d;
double r112637 = r112635 + r112636;
double r112638 = c;
double r112639 = r112637 + r112638;
double r112640 = b;
double r112641 = a;
double r112642 = r112640 + r112641;
double r112643 = r112639 + r112642;
return r112643;
}




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 2020081
(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))