\left(\left(\left(e + d\right) + c\right) + b\right) + a
\log \left(e^{\log \left(e^{e} \cdot \left(e^{d} \cdot \left(e^{b} \cdot \left(e^{c} \cdot e^{a}\right)\right)\right)\right)}\right)double f(double a, double b, double c, double d, double e) {
double r25614265 = e;
double r25614266 = d;
double r25614267 = r25614265 + r25614266;
double r25614268 = c;
double r25614269 = r25614267 + r25614268;
double r25614270 = b;
double r25614271 = r25614269 + r25614270;
double r25614272 = a;
double r25614273 = r25614271 + r25614272;
return r25614273;
}
double f(double a, double b, double c, double d, double e) {
double r25614274 = e;
double r25614275 = exp(r25614274);
double r25614276 = d;
double r25614277 = exp(r25614276);
double r25614278 = b;
double r25614279 = exp(r25614278);
double r25614280 = c;
double r25614281 = exp(r25614280);
double r25614282 = a;
double r25614283 = exp(r25614282);
double r25614284 = r25614281 * r25614283;
double r25614285 = r25614279 * r25614284;
double r25614286 = r25614277 * r25614285;
double r25614287 = r25614275 * r25614286;
double r25614288 = log(r25614287);
double r25614289 = exp(r25614288);
double r25614290 = log(r25614289);
return r25614290;
}




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.0 |
Initial program 0.4
rmApplied add-log-exp0.4
Applied add-log-exp0.4
Applied add-log-exp0.4
Applied add-log-exp0.4
Applied sum-log0.4
Applied sum-log0.3
Applied sum-log0.2
Simplified0.3
rmApplied add-log-exp0.3
Applied add-log-exp0.3
Applied sum-log0.3
Simplified0.2
rmApplied add-log-exp0.2
Applied add-log-exp0.2
Applied sum-log0.2
Applied add-log-exp0.2
Applied sum-log0.2
Applied add-log-exp0.2
Applied sum-log0.2
Applied add-log-exp0.2
Applied sum-log0.0
Applied rem-exp-log0.0
Final simplification0.0
herbie shell --seed 2019104 +o rules:numerics
(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))