\left(\left(\left(e + d\right) + c\right) + b\right) + a
\log \left(\left(e^{e} \cdot e^{d}\right) \cdot \left(e^{b} \cdot \left(e^{c} \cdot e^{a}\right)\right)\right)double f(double a, double b, double c, double d, double e) {
double r28223727 = e;
double r28223728 = d;
double r28223729 = r28223727 + r28223728;
double r28223730 = c;
double r28223731 = r28223729 + r28223730;
double r28223732 = b;
double r28223733 = r28223731 + r28223732;
double r28223734 = a;
double r28223735 = r28223733 + r28223734;
return r28223735;
}
double f(double a, double b, double c, double d, double e) {
double r28223736 = e;
double r28223737 = exp(r28223736);
double r28223738 = d;
double r28223739 = exp(r28223738);
double r28223740 = r28223737 * r28223739;
double r28223741 = b;
double r28223742 = exp(r28223741);
double r28223743 = c;
double r28223744 = exp(r28223743);
double r28223745 = a;
double r28223746 = exp(r28223745);
double r28223747 = r28223744 * r28223746;
double r28223748 = r28223742 * r28223747;
double r28223749 = r28223740 * r28223748;
double r28223750 = log(r28223749);
return r28223750;
}




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 add-log-exp0.3
Applied sum-log0.3
Applied sum-log0.3
Applied add-log-exp0.3
Applied add-log-exp0.3
Applied sum-log0.3
Applied sum-log0.0
Applied rem-exp-log0.0
Final simplification0.0
herbie shell --seed 2019128
(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))