\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\begin{array}{l}
\mathbf{if}\;\left(z \cdot z\right) \cdot \left(z + 1\right) \le 9.1025958135814896 \cdot 10^{-267} \lor \neg \left(\left(z \cdot z\right) \cdot \left(z + 1\right) \le 9.98869995522394163 \cdot 10^{297}\right):\\
\;\;\;\;\left(\sqrt[3]{\frac{1}{z}} \cdot \sqrt[3]{\frac{1}{z}}\right) \cdot \left(\sqrt[3]{\frac{1}{z}} \cdot \left(\frac{x}{z} \cdot \frac{y}{z + 1}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{\left(z \cdot z\right) \cdot \left(z + 1\right)}{y}}\\
\end{array}double f(double x, double y, double z) {
double r399594 = x;
double r399595 = y;
double r399596 = r399594 * r399595;
double r399597 = z;
double r399598 = r399597 * r399597;
double r399599 = 1.0;
double r399600 = r399597 + r399599;
double r399601 = r399598 * r399600;
double r399602 = r399596 / r399601;
return r399602;
}
double f(double x, double y, double z) {
double r399603 = z;
double r399604 = r399603 * r399603;
double r399605 = 1.0;
double r399606 = r399603 + r399605;
double r399607 = r399604 * r399606;
double r399608 = 9.10259581358149e-267;
bool r399609 = r399607 <= r399608;
double r399610 = 9.988699955223942e+297;
bool r399611 = r399607 <= r399610;
double r399612 = !r399611;
bool r399613 = r399609 || r399612;
double r399614 = 1.0;
double r399615 = r399614 / r399603;
double r399616 = cbrt(r399615);
double r399617 = r399616 * r399616;
double r399618 = x;
double r399619 = r399618 / r399603;
double r399620 = y;
double r399621 = r399620 / r399606;
double r399622 = r399619 * r399621;
double r399623 = r399616 * r399622;
double r399624 = r399617 * r399623;
double r399625 = r399607 / r399620;
double r399626 = r399618 / r399625;
double r399627 = r399613 ? r399624 : r399626;
return r399627;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.9 |
|---|---|
| Target | 4.1 |
| Herbie | 3.3 |
if (* (* z z) (+ z 1.0)) < 9.10259581358149e-267 or 9.988699955223942e+297 < (* (* z z) (+ z 1.0)) Initial program 19.0
rmApplied times-frac13.6
rmApplied *-un-lft-identity13.6
Applied times-frac5.9
Applied associate-*l*1.8
rmApplied add-cube-cbrt2.1
Applied associate-*l*2.1
if 9.10259581358149e-267 < (* (* z z) (+ z 1.0)) < 9.988699955223942e+297Initial program 6.2
rmApplied associate-/l*5.7
Final simplification3.3
herbie shell --seed 2020027
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1))))