\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\begin{array}{l}
\mathbf{if}\;x \le 455039715215592194048:\\
\;\;\;\;\frac{\frac{1}{z}}{z + 1} \cdot \left(\frac{x}{z} \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{z + 1} \cdot \sqrt[3]{z + 1}} \cdot \frac{\frac{\sqrt[3]{x}}{z}}{\sqrt[3]{z + 1} \cdot \frac{z}{y}}\\
\end{array}double f(double x, double y, double z) {
double r287849 = x;
double r287850 = y;
double r287851 = r287849 * r287850;
double r287852 = z;
double r287853 = r287852 * r287852;
double r287854 = 1.0;
double r287855 = r287852 + r287854;
double r287856 = r287853 * r287855;
double r287857 = r287851 / r287856;
return r287857;
}
double f(double x, double y, double z) {
double r287858 = x;
double r287859 = 4.550397152155922e+20;
bool r287860 = r287858 <= r287859;
double r287861 = 1.0;
double r287862 = z;
double r287863 = r287861 / r287862;
double r287864 = 1.0;
double r287865 = r287862 + r287864;
double r287866 = r287863 / r287865;
double r287867 = r287858 / r287862;
double r287868 = y;
double r287869 = r287867 * r287868;
double r287870 = r287866 * r287869;
double r287871 = cbrt(r287858);
double r287872 = r287871 * r287871;
double r287873 = cbrt(r287865);
double r287874 = r287873 * r287873;
double r287875 = r287872 / r287874;
double r287876 = r287871 / r287862;
double r287877 = r287862 / r287868;
double r287878 = r287873 * r287877;
double r287879 = r287876 / r287878;
double r287880 = r287875 * r287879;
double r287881 = r287860 ? r287870 : r287880;
return r287881;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 4.1 |
| Herbie | 3.8 |
if x < 4.550397152155922e+20Initial program 14.0
Simplified3.5
rmApplied *-un-lft-identity3.5
Applied div-inv3.5
Applied times-frac4.6
Applied associate-*r*4.4
Simplified4.0
if 4.550397152155922e+20 < x Initial program 20.3
Simplified3.5
rmApplied *-un-lft-identity3.5
Applied div-inv3.6
Applied times-frac8.0
Applied associate-*r*8.0
Simplified9.8
rmApplied associate-*r/5.4
Simplified5.3
rmApplied associate-/l*4.1
rmApplied add-cube-cbrt4.5
Applied *-un-lft-identity4.5
Applied *-un-lft-identity4.5
Applied times-frac4.5
Applied *-un-lft-identity4.5
Applied add-cube-cbrt4.7
Applied times-frac4.7
Applied times-frac2.4
Applied times-frac2.6
Simplified2.6
Simplified2.8
Final simplification3.8
herbie shell --seed 2019174
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
: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))))