\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\begin{array}{l}
\mathbf{if}\;z \le 2.145140342720879107448244448209964264379 \cdot 10^{-92}:\\
\;\;\;\;\frac{1}{z} \cdot \frac{\frac{x}{z}}{\frac{z + 1}{y}}\\
\mathbf{elif}\;z \le 1.657287012418471255626513760736376625879 \cdot 10^{87}:\\
\;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z}}{z + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{z} \cdot \frac{\frac{y}{z}}{z + 1}\\
\end{array}double f(double x, double y, double z) {
double r242761 = x;
double r242762 = y;
double r242763 = r242761 * r242762;
double r242764 = z;
double r242765 = r242764 * r242764;
double r242766 = 1.0;
double r242767 = r242764 + r242766;
double r242768 = r242765 * r242767;
double r242769 = r242763 / r242768;
return r242769;
}
double f(double x, double y, double z) {
double r242770 = z;
double r242771 = 2.145140342720879e-92;
bool r242772 = r242770 <= r242771;
double r242773 = 1.0;
double r242774 = r242773 / r242770;
double r242775 = x;
double r242776 = r242775 / r242770;
double r242777 = 1.0;
double r242778 = r242770 + r242777;
double r242779 = y;
double r242780 = r242778 / r242779;
double r242781 = r242776 / r242780;
double r242782 = r242774 * r242781;
double r242783 = 1.6572870124184713e+87;
bool r242784 = r242770 <= r242783;
double r242785 = r242775 * r242779;
double r242786 = r242785 / r242770;
double r242787 = r242786 / r242770;
double r242788 = r242787 / r242778;
double r242789 = r242779 / r242770;
double r242790 = r242789 / r242778;
double r242791 = r242776 * r242790;
double r242792 = r242784 ? r242788 : r242791;
double r242793 = r242772 ? r242782 : r242792;
return r242793;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.0 |
|---|---|
| Target | 3.9 |
| Herbie | 3.0 |
if z < 2.145140342720879e-92Initial program 18.3
rmApplied associate-/r*16.7
rmApplied *-un-lft-identity16.7
Applied times-frac3.1
Applied times-frac3.7
Simplified3.7
rmApplied *-un-lft-identity3.7
Applied *-un-lft-identity3.7
Applied times-frac3.7
Applied associate-/l*3.9
rmApplied associate-/r/3.9
Applied *-un-lft-identity3.9
Applied add-cube-cbrt3.9
Applied times-frac3.9
Applied times-frac3.8
Applied associate-*r*3.0
Simplified3.0
if 2.145140342720879e-92 < z < 1.6572870124184713e+87Initial program 5.3
rmApplied associate-/r*5.4
rmApplied associate-/r*5.4
if 1.6572870124184713e+87 < z Initial program 13.2
rmApplied associate-/r*9.4
rmApplied *-un-lft-identity9.4
Applied times-frac0.6
Applied times-frac1.5
Simplified1.5
Final simplification3.0
herbie shell --seed 2019208
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z 249.618281453230708) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1))))