\frac{x \cdot \left(y - z\right)}{y}\left(x \cdot \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}\right) \cdot \frac{\sqrt[3]{y - z}}{\sqrt[3]{y}}double f(double x, double y, double z) {
double r825132 = x;
double r825133 = y;
double r825134 = z;
double r825135 = r825133 - r825134;
double r825136 = r825132 * r825135;
double r825137 = r825136 / r825133;
return r825137;
}
double f(double x, double y, double z) {
double r825138 = x;
double r825139 = y;
double r825140 = z;
double r825141 = r825139 - r825140;
double r825142 = cbrt(r825141);
double r825143 = r825142 * r825142;
double r825144 = cbrt(r825139);
double r825145 = r825144 * r825144;
double r825146 = r825143 / r825145;
double r825147 = r825138 * r825146;
double r825148 = r825142 / r825144;
double r825149 = r825147 * r825148;
return r825149;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.5 |
|---|---|
| Target | 3.1 |
| Herbie | 1.0 |
Initial program 12.5
rmApplied *-un-lft-identity12.5
Applied times-frac3.5
Simplified3.5
rmApplied add-cube-cbrt4.7
Applied add-cube-cbrt4.0
Applied times-frac4.0
Applied associate-*r*1.0
Final simplification1.0
herbie shell --seed 2019356
(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))