\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 \left(\frac{\sqrt[3]{x}}{\sqrt[3]{z}} \cdot \left(\frac{\sqrt[3]{x}}{z} \cdot \frac{y}{z + 1}\right)\right)double f(double x, double y, double z) {
double r236562 = x;
double r236563 = y;
double r236564 = r236562 * r236563;
double r236565 = z;
double r236566 = r236565 * r236565;
double r236567 = 1.0;
double r236568 = r236565 + r236567;
double r236569 = r236566 * r236568;
double r236570 = r236564 / r236569;
return r236570;
}
double f(double x, double y, double z) {
double r236571 = x;
double r236572 = cbrt(r236571);
double r236573 = z;
double r236574 = cbrt(r236573);
double r236575 = r236574 * r236574;
double r236576 = r236572 / r236575;
double r236577 = r236572 / r236574;
double r236578 = r236572 / r236573;
double r236579 = y;
double r236580 = 1.0;
double r236581 = r236573 + r236580;
double r236582 = r236579 / r236581;
double r236583 = r236578 * r236582;
double r236584 = r236577 * r236583;
double r236585 = r236576 * r236584;
return r236585;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.2 |
|---|---|
| Target | 3.8 |
| Herbie | 1.2 |
Initial program 14.2
rmApplied times-frac10.9
rmApplied add-cube-cbrt11.3
Applied times-frac6.5
Applied associate-*l*1.2
rmApplied add-cube-cbrt1.3
Applied times-frac1.3
Applied associate-*l*1.2
Final simplification1.2
herbie shell --seed 2019198
(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))))