\frac{x \cdot \left(y + z\right)}{z}x \cdot \frac{y + z}{z}double f(double x, double y, double z) {
double r285558 = x;
double r285559 = y;
double r285560 = z;
double r285561 = r285559 + r285560;
double r285562 = r285558 * r285561;
double r285563 = r285562 / r285560;
return r285563;
}
double f(double x, double y, double z) {
double r285564 = x;
double r285565 = y;
double r285566 = z;
double r285567 = r285565 + r285566;
double r285568 = r285567 / r285566;
double r285569 = r285564 * r285568;
return r285569;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.2 |
|---|---|
| Target | 2.7 |
| Herbie | 3.0 |
if y < 8.331233029980697e+104 or 2.871906439667942e+163 < y Initial program 12.4
rmApplied *-un-lft-identity12.4
Applied times-frac2.8
Simplified2.8
if 8.331233029980697e+104 < y < 2.871906439667942e+163Initial program 7.8
Taylor expanded around 0 4.5
Final simplification3.0
herbie shell --seed 2019298
(FPCore (x y z)
:name "Numeric.SpecFunctions:choose from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(/ x (/ z (+ y z)))
(/ (* x (+ y z)) z))