\left(a + \left(b + \left(c + d\right)\right)\right) \cdot 2
\sqrt[3]{\left(\left(\left(d + a\right) + \left(c + b\right)\right) \cdot \left(\left(d + a\right) + \left(c + b\right)\right)\right) \cdot \left(\left(d + a\right) + \left(c + b\right)\right)} \cdot 2double f(double a, double b, double c, double d) {
double r5670526 = a;
double r5670527 = b;
double r5670528 = c;
double r5670529 = d;
double r5670530 = r5670528 + r5670529;
double r5670531 = r5670527 + r5670530;
double r5670532 = r5670526 + r5670531;
double r5670533 = 2.0;
double r5670534 = r5670532 * r5670533;
return r5670534;
}
double f(double a, double b, double c, double d) {
double r5670535 = d;
double r5670536 = a;
double r5670537 = r5670535 + r5670536;
double r5670538 = c;
double r5670539 = b;
double r5670540 = r5670538 + r5670539;
double r5670541 = r5670537 + r5670540;
double r5670542 = r5670541 * r5670541;
double r5670543 = r5670542 * r5670541;
double r5670544 = cbrt(r5670543);
double r5670545 = 2.0;
double r5670546 = r5670544 * r5670545;
return r5670546;
}




Bits error versus a




Bits error versus b




Bits error versus c




Bits error versus d
Results
| Original | 3.7 |
|---|---|
| Target | 3.9 |
| Herbie | 0.6 |
Initial program 3.7
rmApplied associate-+r+2.8
rmApplied add-cbrt-cube2.9
rmApplied associate-+r+2.7
rmApplied add-cbrt-cube2.8
Simplified0.6
Final simplification0.6
herbie shell --seed 2019171
(FPCore (a b c d)
:name "Expression, p6"
:pre (and (<= -14.0 a -13.0) (<= -3.0 b -2.0) (<= 3.0 c 3.5) (<= 12.5 d 13.5))
:herbie-target
(+ (* (+ a b) 2.0) (* (+ c d) 2.0))
(* (+ a (+ b (+ c d))) 2.0))