\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\left(\sqrt[3]{\left(\frac{\sqrt[3]{x}}{z} \cdot \sqrt[3]{x}\right) \cdot \frac{y \cdot {\left(\sqrt[3]{\frac{\sqrt[3]{x}}{z}}\right)}^{3}}{z + 1}} \cdot \sqrt[3]{\left(\frac{\sqrt[3]{x}}{z} \cdot \sqrt[3]{x}\right) \cdot \frac{y \cdot {\left(\sqrt[3]{\frac{\sqrt[3]{x}}{z}}\right)}^{3}}{z + 1}}\right) \cdot \sqrt[3]{\left(\frac{\sqrt[3]{x}}{z} \cdot \sqrt[3]{x}\right) \cdot \frac{y \cdot {\left(\sqrt[3]{\frac{\sqrt[3]{x}}{z}}\right)}^{3}}{z + 1}}double f(double x, double y, double z) {
double r264079 = x;
double r264080 = y;
double r264081 = r264079 * r264080;
double r264082 = z;
double r264083 = r264082 * r264082;
double r264084 = 1.0;
double r264085 = r264082 + r264084;
double r264086 = r264083 * r264085;
double r264087 = r264081 / r264086;
return r264087;
}
double f(double x, double y, double z) {
double r264088 = x;
double r264089 = cbrt(r264088);
double r264090 = z;
double r264091 = r264089 / r264090;
double r264092 = r264091 * r264089;
double r264093 = y;
double r264094 = cbrt(r264091);
double r264095 = 3.0;
double r264096 = pow(r264094, r264095);
double r264097 = r264093 * r264096;
double r264098 = 1.0;
double r264099 = r264090 + r264098;
double r264100 = r264097 / r264099;
double r264101 = r264092 * r264100;
double r264102 = cbrt(r264101);
double r264103 = r264102 * r264102;
double r264104 = r264103 * r264102;
return r264104;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.7 |
|---|---|
| Target | 4.4 |
| Herbie | 1.5 |
Initial program 15.7
rmApplied times-frac11.8
rmApplied add-cube-cbrt12.1
Applied times-frac7.0
Applied associate-*l*1.3
rmApplied add-cube-cbrt1.5
Applied associate-*l*1.5
rmApplied add-cube-cbrt1.6
Simplified1.6
Simplified1.5
Final simplification1.5
herbie shell --seed 2020047 +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))))