\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{z} \cdot \left(\frac{\sqrt[3]{x}}{z} \cdot \frac{y}{z + 1}\right)double f(double x, double y, double z) {
double r256880 = x;
double r256881 = y;
double r256882 = r256880 * r256881;
double r256883 = z;
double r256884 = r256883 * r256883;
double r256885 = 1.0;
double r256886 = r256883 + r256885;
double r256887 = r256884 * r256886;
double r256888 = r256882 / r256887;
return r256888;
}
double f(double x, double y, double z) {
double r256889 = x;
double r256890 = cbrt(r256889);
double r256891 = r256890 * r256890;
double r256892 = z;
double r256893 = r256891 / r256892;
double r256894 = r256890 / r256892;
double r256895 = y;
double r256896 = 1.0;
double r256897 = r256892 + r256896;
double r256898 = r256895 / r256897;
double r256899 = r256894 * r256898;
double r256900 = r256893 * r256899;
return r256900;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 4.0 |
| Herbie | 1.2 |
Initial program 15.2
rmApplied times-frac11.0
rmApplied add-cube-cbrt11.4
Applied times-frac6.3
Applied associate-*l*1.2
Final simplification1.2
herbie shell --seed 2020039 +o rules:numerics
(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))))