\frac{x \cdot \left(y - z\right)}{y}\frac{\frac{\frac{x}{\frac{\sqrt[3]{y}}{\sqrt[3]{y - z}}}}{\frac{\sqrt[3]{y}}{\sqrt[3]{y - z}}}}{\frac{\sqrt[3]{y}}{\sqrt[3]{y - z}}}double f(double x, double y, double z) {
double r39452471 = x;
double r39452472 = y;
double r39452473 = z;
double r39452474 = r39452472 - r39452473;
double r39452475 = r39452471 * r39452474;
double r39452476 = r39452475 / r39452472;
return r39452476;
}
double f(double x, double y, double z) {
double r39452477 = x;
double r39452478 = y;
double r39452479 = cbrt(r39452478);
double r39452480 = z;
double r39452481 = r39452478 - r39452480;
double r39452482 = cbrt(r39452481);
double r39452483 = r39452479 / r39452482;
double r39452484 = r39452477 / r39452483;
double r39452485 = r39452484 / r39452483;
double r39452486 = r39452485 / r39452483;
return r39452486;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.2 |
|---|---|
| Target | 2.9 |
| Herbie | 0.7 |
Initial program 12.2
rmApplied associate-/l*2.9
rmApplied add-cube-cbrt4.1
Applied add-cube-cbrt3.4
Applied times-frac3.4
Applied associate-/r*1.0
Simplified0.7
Final simplification0.7
herbie shell --seed 2019170
(FPCore (x y z)
:name "Diagrams.Backend.Cairo.Internal:setTexture from diagrams-cairo-1.3.0.3"
: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))