\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\left(\left(\sqrt[3]{\sqrt[3]{x}} \cdot \sqrt[3]{\sqrt[3]{x}}\right) \cdot \left(\left(\sqrt[3]{\sqrt[3]{\sqrt[3]{x}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt[3]{x}}}\right) \cdot \sqrt[3]{\sqrt[3]{\sqrt[3]{x}}}\right)\right) \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 r265693 = x;
double r265694 = y;
double r265695 = r265693 * r265694;
double r265696 = z;
double r265697 = r265696 * r265696;
double r265698 = 1.0;
double r265699 = r265696 + r265698;
double r265700 = r265697 * r265699;
double r265701 = r265695 / r265700;
return r265701;
}
double f(double x, double y, double z) {
double r265702 = x;
double r265703 = cbrt(r265702);
double r265704 = cbrt(r265703);
double r265705 = r265704 * r265704;
double r265706 = cbrt(r265704);
double r265707 = r265706 * r265706;
double r265708 = r265707 * r265706;
double r265709 = r265705 * r265708;
double r265710 = r265709 * r265703;
double r265711 = z;
double r265712 = r265710 / r265711;
double r265713 = r265703 / r265711;
double r265714 = y;
double r265715 = 1.0;
double r265716 = r265711 + r265715;
double r265717 = r265714 / r265716;
double r265718 = r265713 * r265717;
double r265719 = r265712 * r265718;
return r265719;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 4.1 |
| Herbie | 1.7 |
Initial program 15.2
rmApplied times-frac11.2
rmApplied add-cube-cbrt11.6
Applied times-frac6.6
Applied associate-*l*1.3
rmApplied add-cube-cbrt1.5
rmApplied add-cube-cbrt1.7
Final simplification1.7
herbie shell --seed 2020045 +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))))