\frac{x \cdot \left(y + z\right)}{z}\frac{y + z}{z} \cdot xdouble f(double x, double y, double z) {
double r20248533 = x;
double r20248534 = y;
double r20248535 = z;
double r20248536 = r20248534 + r20248535;
double r20248537 = r20248533 * r20248536;
double r20248538 = r20248537 / r20248535;
return r20248538;
}
double f(double x, double y, double z) {
double r20248539 = y;
double r20248540 = z;
double r20248541 = r20248539 + r20248540;
double r20248542 = r20248541 / r20248540;
double r20248543 = x;
double r20248544 = r20248542 * r20248543;
return r20248544;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 11.6 |
|---|---|
| Target | 3.1 |
| Herbie | 3.4 |
Initial program 11.6
rmApplied *-un-lft-identity11.6
Applied times-frac3.4
Simplified3.4
Final simplification3.4
herbie shell --seed 2019168
(FPCore (x y z)
:name "Numeric.SpecFunctions:choose from math-functions-0.1.5.2"
:herbie-target
(/ x (/ z (+ y z)))
(/ (* x (+ y z)) z))