\frac{x \cdot \left(y - z\right)}{y}\frac{x \cdot \left(y - z\right)}{y}double f(double x, double y, double z) {
double r499385 = x;
double r499386 = y;
double r499387 = z;
double r499388 = r499386 - r499387;
double r499389 = r499385 * r499388;
double r499390 = r499389 / r499386;
return r499390;
}
double f(double x, double y, double z) {
double r499391 = x;
double r499392 = y;
double r499393 = z;
double r499394 = r499392 - r499393;
double r499395 = r499391 * r499394;
double r499396 = r499395 / r499392;
return r499396;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.7 |
|---|---|
| Target | 3.1 |
| Herbie | 12.7 |
Initial program 12.7
rmApplied *-un-lft-identity12.7
Applied times-frac3.2
Simplified3.2
rmApplied add-cube-cbrt4.4
Applied add-cube-cbrt3.7
Applied times-frac3.7
Applied associate-*r*1.1
Final simplification12.7
herbie shell --seed 2019297
(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))