\frac{x \cdot \left(y - z\right)}{y}\begin{array}{l}
\mathbf{if}\;x \le -6.2854619819908728 \cdot 10^{-166}:\\
\;\;\;\;\frac{y - z}{y} \cdot x\\
\mathbf{elif}\;x \le 6.95759694615908471 \cdot 10^{-203}:\\
\;\;\;\;\frac{\sqrt[3]{1}}{\frac{y}{\sqrt[3]{1}}} \cdot \left(\sqrt[3]{1} \cdot \left(x \cdot \left(y - z\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{\frac{y}{y - z}}{x}}\\
\end{array}double f(double x, double y, double z) {
double r851448 = x;
double r851449 = y;
double r851450 = z;
double r851451 = r851449 - r851450;
double r851452 = r851448 * r851451;
double r851453 = r851452 / r851449;
return r851453;
}
double f(double x, double y, double z) {
double r851454 = x;
double r851455 = -6.285461981990873e-166;
bool r851456 = r851454 <= r851455;
double r851457 = y;
double r851458 = z;
double r851459 = r851457 - r851458;
double r851460 = r851459 / r851457;
double r851461 = r851460 * r851454;
double r851462 = 6.957596946159085e-203;
bool r851463 = r851454 <= r851462;
double r851464 = 1.0;
double r851465 = cbrt(r851464);
double r851466 = r851457 / r851465;
double r851467 = r851465 / r851466;
double r851468 = r851454 * r851459;
double r851469 = r851465 * r851468;
double r851470 = r851467 * r851469;
double r851471 = r851457 / r851459;
double r851472 = r851471 / r851454;
double r851473 = r851464 / r851472;
double r851474 = r851463 ? r851470 : r851473;
double r851475 = r851456 ? r851461 : r851474;
return r851475;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 12.4 |
|---|---|
| Target | 3.2 |
| Herbie | 3.5 |
if x < -6.285461981990873e-166Initial program 14.2
rmApplied associate-/l*1.6
rmApplied clear-num1.7
rmApplied div-inv1.7
Applied add-sqr-sqrt1.7
Applied times-frac1.8
Simplified1.8
Simplified1.7
if -6.285461981990873e-166 < x < 6.957596946159085e-203Initial program 8.4
rmApplied associate-/l*7.3
rmApplied clear-num7.4
rmApplied *-un-lft-identity7.4
Applied div-inv7.5
Applied times-frac9.1
Applied add-cube-cbrt9.1
Applied times-frac9.1
Simplified9.1
Simplified8.5
if 6.957596946159085e-203 < x Initial program 13.1
rmApplied associate-/l*2.2
rmApplied clear-num2.3
Final simplification3.5
herbie shell --seed 2020021
(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))