\frac{x \cdot \left(y - z\right)}{y}\frac{x}{\frac{y}{y - z}}double f(double x, double y, double z) {
double r531800 = x;
double r531801 = y;
double r531802 = z;
double r531803 = r531801 - r531802;
double r531804 = r531800 * r531803;
double r531805 = r531804 / r531801;
return r531805;
}
double f(double x, double y, double z) {
double r531806 = x;
double r531807 = y;
double r531808 = z;
double r531809 = r531807 - r531808;
double r531810 = r531807 / r531809;
double r531811 = r531806 / r531810;
return r531811;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.7 |
|---|---|
| Target | 3.2 |
| Herbie | 3.0 |
if x < -2.580679840002735e-172Initial program 13.9
rmApplied associate-/l*1.2
Taylor expanded around 0 4.8
rmApplied *-un-lft-identity4.8
Applied times-frac1.4
Simplified1.4
if -2.580679840002735e-172 < x < 1.5245638983253773e-157Initial program 8.9
rmApplied associate-/l*7.2
Taylor expanded around 0 4.6
if 1.5245638983253773e-157 < x Initial program 14.3
rmApplied associate-/l*1.7
Final simplification3.0
herbie shell --seed 2019304
(FPCore (x y z)
:name "Diagrams.Backend.Cairo.Internal:setTexture from diagrams-cairo-1.3.0.3"
:precision binary64
:herbie-target
(if (< z -2.060202331921739e104) (- x (/ (* z x) y)) (if (< z 1.69397660138285259e213) (/ x (/ y (- y z))) (* (- y z) (/ x y))))
(/ (* x (- y z)) y))