\frac{x \cdot \left(y + z\right)}{z}x \cdot \frac{y + z}{z}double f(double x, double y, double z) {
double r438641 = x;
double r438642 = y;
double r438643 = z;
double r438644 = r438642 + r438643;
double r438645 = r438641 * r438644;
double r438646 = r438645 / r438643;
return r438646;
}
double f(double x, double y, double z) {
double r438647 = x;
double r438648 = y;
double r438649 = z;
double r438650 = r438648 + r438649;
double r438651 = r438650 / r438649;
double r438652 = r438647 * r438651;
return r438652;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.6 |
|---|---|
| Target | 3.2 |
| Herbie | 3.5 |
Initial program 12.6
rmApplied *-un-lft-identity12.6
Applied times-frac3.5
Simplified3.5
Final simplification3.5
herbie shell --seed 2020025
(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))