\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\frac{y}{z + 1} \cdot \frac{x}{z}}{z} \cdot \sqrt{1}double f(double x, double y, double z) {
double r428004 = x;
double r428005 = y;
double r428006 = r428004 * r428005;
double r428007 = z;
double r428008 = r428007 * r428007;
double r428009 = 1.0;
double r428010 = r428007 + r428009;
double r428011 = r428008 * r428010;
double r428012 = r428006 / r428011;
return r428012;
}
double f(double x, double y, double z) {
double r428013 = y;
double r428014 = z;
double r428015 = 1.0;
double r428016 = r428014 + r428015;
double r428017 = r428013 / r428016;
double r428018 = x;
double r428019 = r428018 / r428014;
double r428020 = r428017 * r428019;
double r428021 = r428020 / r428014;
double r428022 = 1.0;
double r428023 = sqrt(r428022);
double r428024 = r428021 * r428023;
return r428024;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.4 |
|---|---|
| Target | 4.1 |
| Herbie | 2.6 |
Initial program 14.4
rmApplied times-frac11.0
rmApplied *-un-lft-identity11.0
Applied times-frac5.9
Applied associate-*l*2.7
rmApplied *-un-lft-identity2.7
Applied add-sqr-sqrt2.7
Applied times-frac2.7
Applied associate-*l*2.7
Simplified2.6
Final simplification2.6
herbie shell --seed 2020046
(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))))