\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 r740331 = x;
double r740332 = y;
double r740333 = z;
double r740334 = r740332 - r740333;
double r740335 = r740331 * r740334;
double r740336 = r740335 / r740332;
return r740336;
}
double f(double x, double y, double z) {
double r740337 = x;
double r740338 = y;
double r740339 = cbrt(r740338);
double r740340 = r740339 * r740339;
double r740341 = z;
double r740342 = r740338 - r740341;
double r740343 = cbrt(r740342);
double r740344 = r740343 * r740343;
double r740345 = r740340 / r740344;
double r740346 = r740337 / r740345;
double r740347 = r740339 / r740343;
double r740348 = r740346 / r740347;
return r740348;
}




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))