\frac{x \cdot \left(y - z\right)}{y}\frac{\frac{x}{\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}}}{\frac{\sqrt[3]{y}}{\sqrt[3]{y - z}}}double f(double x, double y, double z) {
double r832439 = x;
double r832440 = y;
double r832441 = z;
double r832442 = r832440 - r832441;
double r832443 = r832439 * r832442;
double r832444 = r832443 / r832440;
return r832444;
}
double f(double x, double y, double z) {
double r832445 = x;
double r832446 = y;
double r832447 = cbrt(r832446);
double r832448 = r832447 * r832447;
double r832449 = z;
double r832450 = r832446 - r832449;
double r832451 = cbrt(r832450);
double r832452 = r832451 * r832451;
double r832453 = r832448 / r832452;
double r832454 = r832445 / r832453;
double r832455 = r832447 / r832451;
double r832456 = r832454 / r832455;
return r832456;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 13.0 |
|---|---|
| Target | 2.9 |
| Herbie | 1.0 |
Initial program 13.0
rmApplied associate-/l*2.7
rmApplied add-cube-cbrt3.9
Applied add-cube-cbrt3.3
Applied times-frac3.3
Applied associate-/r*1.0
Final simplification1.0
herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z)
:name "Diagrams.Backend.Cairo.Internal:setTexture from diagrams-cairo-1.3.0.3"
:precision binary64
:herbie-target
(if (< z -2.060202331921739e+104) (- x (/ (* z x) y)) (if (< z 1.6939766013828526e+213) (/ x (/ y (- y z))) (* (- y z) (/ x y))))
(/ (* x (- y z)) y))