\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 1.58735393053565291 \cdot 10^{-279}:\\
\;\;\;\;\frac{\frac{\frac{{\left(\sqrt[3]{x}\right)}^{3}}{z}}{\frac{z}{y}}}{z + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left({\left(\sqrt[3]{\sqrt[3]{x}}\right)}^{3} \cdot \sqrt[3]{x}\right) \cdot \left(\frac{\sqrt[3]{x}}{z} \cdot y\right)}{z}}{z + 1}\\
\end{array}double f(double x, double y, double z) {
double r319385 = x;
double r319386 = y;
double r319387 = r319385 * r319386;
double r319388 = z;
double r319389 = r319388 * r319388;
double r319390 = 1.0;
double r319391 = r319388 + r319390;
double r319392 = r319389 * r319391;
double r319393 = r319387 / r319392;
return r319393;
}
double f(double x, double y, double z) {
double r319394 = z;
double r319395 = r319394 * r319394;
double r319396 = 1.0;
double r319397 = r319394 + r319396;
double r319398 = r319395 * r319397;
double r319399 = 1.587353930535653e-279;
bool r319400 = r319398 <= r319399;
double r319401 = x;
double r319402 = cbrt(r319401);
double r319403 = 3.0;
double r319404 = pow(r319402, r319403);
double r319405 = r319404 / r319394;
double r319406 = y;
double r319407 = r319394 / r319406;
double r319408 = r319405 / r319407;
double r319409 = r319408 / r319397;
double r319410 = cbrt(r319402);
double r319411 = pow(r319410, r319403);
double r319412 = r319411 * r319402;
double r319413 = r319402 / r319394;
double r319414 = r319413 * r319406;
double r319415 = r319412 * r319414;
double r319416 = r319415 / r319394;
double r319417 = r319416 / r319397;
double r319418 = r319400 ? r319409 : r319417;
return r319418;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 4.1 |
| Herbie | 3.0 |
if (* (* z z) (+ z 1.0)) < 1.587353930535653e-279Initial program 22.5
rmApplied times-frac17.8
rmApplied add-cube-cbrt18.0
Applied times-frac8.8
Applied associate-*l*1.4
rmApplied associate-*r/1.3
Applied associate-*r/1.4
Simplified2.9
if 1.587353930535653e-279 < (* (* z z) (+ z 1.0)) Initial program 9.4
rmApplied times-frac5.9
rmApplied add-cube-cbrt6.4
Applied times-frac4.8
Applied associate-*l*1.2
rmApplied add-cube-cbrt1.4
rmApplied associate-*r/1.4
Applied associate-*r/1.4
Simplified3.1
Final simplification3.0
herbie shell --seed 2020045
(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))))