\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{y}{z + 1} \cdot \frac{\sqrt[3]{x}}{z}\right)double f(double x, double y, double z) {
double r14588504 = x;
double r14588505 = y;
double r14588506 = r14588504 * r14588505;
double r14588507 = z;
double r14588508 = r14588507 * r14588507;
double r14588509 = 1.0;
double r14588510 = r14588507 + r14588509;
double r14588511 = r14588508 * r14588510;
double r14588512 = r14588506 / r14588511;
return r14588512;
}
double f(double x, double y, double z) {
double r14588513 = x;
double r14588514 = cbrt(r14588513);
double r14588515 = r14588514 * r14588514;
double r14588516 = z;
double r14588517 = r14588515 / r14588516;
double r14588518 = y;
double r14588519 = 1.0;
double r14588520 = r14588516 + r14588519;
double r14588521 = r14588518 / r14588520;
double r14588522 = r14588514 / r14588516;
double r14588523 = r14588521 * r14588522;
double r14588524 = r14588517 * r14588523;
return r14588524;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.8 |
|---|---|
| Target | 4.2 |
| Herbie | 1.1 |
Initial program 14.8
rmApplied times-frac10.7
rmApplied add-cube-cbrt11.0
Applied times-frac6.2
Applied associate-*l*1.1
Final simplification1.1
herbie shell --seed 2019168
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:herbie-target
(if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1.0 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1.0))))