\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 0.0:\\
\;\;\;\;\frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{\frac{x}{z} \cdot \frac{y}{z + 1}}{\sqrt[3]{z}}\\
\mathbf{elif}\;\left(z \cdot z\right) \cdot \left(z + 1\right) \le 2.1309296694278641 \cdot 10^{214}:\\
\;\;\;\;\frac{\frac{x}{z}}{z} \cdot \frac{y}{z + 1}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{1}{z}} \cdot \left(\sqrt{\frac{1}{z}} \cdot \left(\frac{x}{z} \cdot \frac{y}{z + 1}\right)\right)\\
\end{array}double code(double x, double y, double z) {
return ((double) (((double) (x * y)) / ((double) (((double) (z * z)) * ((double) (z + 1.0))))));
}
double code(double x, double y, double z) {
double VAR;
if ((((double) (((double) (z * z)) * ((double) (z + 1.0)))) <= 0.0)) {
VAR = ((double) (((double) (1.0 / ((double) (((double) cbrt(z)) * ((double) cbrt(z)))))) * ((double) (((double) (((double) (x / z)) * ((double) (y / ((double) (z + 1.0)))))) / ((double) cbrt(z))))));
} else {
double VAR_1;
if ((((double) (((double) (z * z)) * ((double) (z + 1.0)))) <= 2.130929669427864e+214)) {
VAR_1 = ((double) (((double) (((double) (x / z)) / z)) * ((double) (y / ((double) (z + 1.0))))));
} else {
VAR_1 = ((double) (((double) sqrt(((double) (1.0 / z)))) * ((double) (((double) sqrt(((double) (1.0 / z)))) * ((double) (((double) (x / z)) * ((double) (y / ((double) (z + 1.0))))))))));
}
VAR = VAR_1;
}
return VAR;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 4.2 |
| Herbie | 3.5 |
if (* (* z z) (+ z 1.0)) < 0.0Initial program 22.4
rmApplied times-frac17.9
rmApplied *-un-lft-identity17.9
Applied times-frac7.6
Applied associate-*l*1.9
rmApplied add-cube-cbrt2.3
Applied *-un-lft-identity2.3
Applied times-frac2.4
Applied associate-*l*2.4
Simplified2.4
if 0.0 < (* (* z z) (+ z 1.0)) < 2.1309296694278641e214Initial program 7.4
rmApplied times-frac7.3
rmApplied associate-/r*6.8
if 2.1309296694278641e214 < (* (* z z) (+ z 1.0)) Initial program 13.0
rmApplied times-frac5.7
rmApplied *-un-lft-identity5.7
Applied times-frac1.9
Applied associate-*l*1.2
rmApplied add-sqr-sqrt1.2
Applied associate-*l*1.2
Final simplification3.5
herbie shell --seed 2020169
(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.0 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1.0))))