\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\begin{array}{l}
\mathbf{if}\;x \cdot y \le 1.196151169485302342273884046453796637229 \cdot 10^{-315}:\\
\;\;\;\;\frac{\sqrt[3]{x} \cdot \left(\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \sqrt[3]{\sqrt[3]{x}}\right)}{z} \cdot \left(\frac{\sqrt[3]{x}}{z} \cdot \frac{y}{z + 1}\right)\\
\mathbf{elif}\;x \cdot y \le 7.947895648765829788288380988796806250372 \cdot 10^{212}:\\
\;\;\;\;\frac{\frac{x \cdot y}{z}}{z \cdot \left(z + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{z} \cdot \frac{\sqrt[3]{x}}{z}\right) \cdot \frac{y}{z + 1}\\
\end{array}double f(double x, double y, double z) {
double r271367 = x;
double r271368 = y;
double r271369 = r271367 * r271368;
double r271370 = z;
double r271371 = r271370 * r271370;
double r271372 = 1.0;
double r271373 = r271370 + r271372;
double r271374 = r271371 * r271373;
double r271375 = r271369 / r271374;
return r271375;
}
double f(double x, double y, double z) {
double r271376 = x;
double r271377 = y;
double r271378 = r271376 * r271377;
double r271379 = 1.1961511694853e-315;
bool r271380 = r271378 <= r271379;
double r271381 = cbrt(r271376);
double r271382 = cbrt(r271381);
double r271383 = r271382 * r271382;
double r271384 = r271383 * r271382;
double r271385 = r271381 * r271384;
double r271386 = z;
double r271387 = r271385 / r271386;
double r271388 = r271381 / r271386;
double r271389 = 1.0;
double r271390 = r271386 + r271389;
double r271391 = r271377 / r271390;
double r271392 = r271388 * r271391;
double r271393 = r271387 * r271392;
double r271394 = 7.94789564876583e+212;
bool r271395 = r271378 <= r271394;
double r271396 = r271378 / r271386;
double r271397 = r271386 * r271390;
double r271398 = r271396 / r271397;
double r271399 = r271381 * r271381;
double r271400 = r271399 / r271386;
double r271401 = r271400 * r271388;
double r271402 = r271401 * r271391;
double r271403 = r271395 ? r271398 : r271402;
double r271404 = r271380 ? r271393 : r271403;
return r271404;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.6 |
|---|---|
| Target | 4.0 |
| Herbie | 1.1 |
if (* x y) < 1.1961511694853e-315Initial program 16.0
rmApplied times-frac11.6
rmApplied add-cube-cbrt11.9
Applied times-frac6.4
Applied associate-*l*1.2
rmApplied add-cube-cbrt1.4
if 1.1961511694853e-315 < (* x y) < 7.94789564876583e+212Initial program 6.9
rmApplied times-frac9.7
rmApplied add-cube-cbrt10.1
Applied times-frac7.6
Applied associate-*l*1.5
rmApplied associate-*r/1.4
Applied frac-times0.9
Simplified0.4
if 7.94789564876583e+212 < (* x y) Initial program 41.0
rmApplied times-frac13.3
rmApplied add-cube-cbrt13.7
Applied times-frac1.7
Final simplification1.1
herbie shell --seed 2019323
(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))))