\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{\sqrt[3]{x}}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{\left(\frac{\sqrt[3]{x}}{z} \cdot y\right) \cdot \frac{{\left(\sqrt[3]{\sqrt[3]{x}}\right)}^{3}}{\sqrt[3]{z}}}{z + 1}double f(double x, double y, double z) {
double r265144 = x;
double r265145 = y;
double r265146 = r265144 * r265145;
double r265147 = z;
double r265148 = r265147 * r265147;
double r265149 = 1.0;
double r265150 = r265147 + r265149;
double r265151 = r265148 * r265150;
double r265152 = r265146 / r265151;
return r265152;
}
double f(double x, double y, double z) {
double r265153 = x;
double r265154 = cbrt(r265153);
double r265155 = z;
double r265156 = cbrt(r265155);
double r265157 = r265156 * r265156;
double r265158 = r265154 / r265157;
double r265159 = r265154 / r265155;
double r265160 = y;
double r265161 = r265159 * r265160;
double r265162 = cbrt(r265154);
double r265163 = 3.0;
double r265164 = pow(r265162, r265163);
double r265165 = r265164 / r265156;
double r265166 = r265161 * r265165;
double r265167 = 1.0;
double r265168 = r265155 + r265167;
double r265169 = r265166 / r265168;
double r265170 = r265158 * r265169;
return r265170;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.2 |
|---|---|
| Target | 4.1 |
| Herbie | 1.3 |
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.6
Applied times-frac1.6
Applied associate-*l*1.4
Simplified1.3
Final simplification1.3
herbie shell --seed 2020045
(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))))