\left(\left(\left(e + d\right) + c\right) + b\right) + a
\frac{\left(\left(e + d\right) + \left(c + b\right)\right) \cdot \left(\left(e + d\right) + \left(c + b\right)\right) - a \cdot a}{\left(\left(e + d\right) + \left(c + b\right)\right) - a}double f(double a, double b, double c, double d, double e) {
double r102189 = e;
double r102190 = d;
double r102191 = r102189 + r102190;
double r102192 = c;
double r102193 = r102191 + r102192;
double r102194 = b;
double r102195 = r102193 + r102194;
double r102196 = a;
double r102197 = r102195 + r102196;
return r102197;
}
double f(double a, double b, double c, double d, double e) {
double r102198 = e;
double r102199 = d;
double r102200 = r102198 + r102199;
double r102201 = c;
double r102202 = b;
double r102203 = r102201 + r102202;
double r102204 = r102200 + r102203;
double r102205 = r102204 * r102204;
double r102206 = a;
double r102207 = r102206 * r102206;
double r102208 = r102205 - r102207;
double r102209 = r102204 - r102206;
double r102210 = r102208 / r102209;
return r102210;
}




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.5 |
Initial program 0.4
rmApplied associate-+l+0.3
rmApplied flip-+0.5
Final simplification0.5
herbie shell --seed 2020018
(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))