\left(\left(\left(e + d\right) + c\right) + b\right) + a
\left(b + a\right) + \left(\left(d + c\right) + e\right)
double f(double a, double b, double c, double d, double e) {
double r5244902 = e;
double r5244903 = d;
double r5244904 = r5244902 + r5244903;
double r5244905 = c;
double r5244906 = r5244904 + r5244905;
double r5244907 = b;
double r5244908 = r5244906 + r5244907;
double r5244909 = a;
double r5244910 = r5244908 + r5244909;
return r5244910;
}
double f(double a, double b, double c, double d, double e) {
double r5244911 = b;
double r5244912 = a;
double r5244913 = r5244911 + r5244912;
double r5244914 = d;
double r5244915 = c;
double r5244916 = r5244914 + r5244915;
double r5244917 = e;
double r5244918 = r5244916 + r5244917;
double r5244919 = r5244913 + r5244918;
return r5244919;
}




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
rmApplied associate-+l+0.3
Final simplification0.3
herbie shell --seed 2019165
(FPCore (a b c d e)
:name "Expression 1, p15"
:pre (<= 1 a 2 b 4 c 8 d 16 e 32)
:herbie-target
(+ (+ d (+ c (+ a b))) e)
(+ (+ (+ (+ e d) c) b) a))