\left(\left(\left(e + d\right) + c\right) + b\right) + a
\log \left(\sqrt{\left(e^{e} \cdot e^{d}\right) \cdot \left(\left(e^{c} \cdot e^{b}\right) \cdot e^{a}\right)} \cdot \sqrt{\left(e^{e} \cdot e^{d}\right) \cdot \left(\left(e^{c} \cdot e^{b}\right) \cdot e^{a}\right)}\right)double f(double a, double b, double c, double d, double e) {
double r5191291 = e;
double r5191292 = d;
double r5191293 = r5191291 + r5191292;
double r5191294 = c;
double r5191295 = r5191293 + r5191294;
double r5191296 = b;
double r5191297 = r5191295 + r5191296;
double r5191298 = a;
double r5191299 = r5191297 + r5191298;
return r5191299;
}
double f(double a, double b, double c, double d, double e) {
double r5191300 = e;
double r5191301 = exp(r5191300);
double r5191302 = d;
double r5191303 = exp(r5191302);
double r5191304 = r5191301 * r5191303;
double r5191305 = c;
double r5191306 = exp(r5191305);
double r5191307 = b;
double r5191308 = exp(r5191307);
double r5191309 = r5191306 * r5191308;
double r5191310 = a;
double r5191311 = exp(r5191310);
double r5191312 = r5191309 * r5191311;
double r5191313 = r5191304 * r5191312;
double r5191314 = sqrt(r5191313);
double r5191315 = r5191314 * r5191314;
double r5191316 = log(r5191315);
return r5191316;
}




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 add-log-exp0.4
Applied sum-log0.4
Applied sum-log0.3
Applied sum-log0.3
Applied sum-log0.0
Simplified0.3
rmApplied add-log-exp0.3
Applied add-log-exp0.3
Applied sum-log0.3
Applied add-log-exp0.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
rmApplied add-sqr-sqrt0.0
Final simplification0.0
herbie shell --seed 2019165 +o rules:numerics
(FPCore (a b c d e)
:name "Expression 1, p15"
:pre (<= 1.0 a 2.0 b 4.0 c 8.0 d 16.0 e 32.0)
:herbie-target
(+ (+ d (+ c (+ a b))) e)
(+ (+ (+ (+ e d) c) b) a))