\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{\sqrt[3]{x}}{z} \cdot \frac{y}{z + 1}\right)double f(double x, double y, double z) {
double r326448 = x;
double r326449 = y;
double r326450 = r326448 * r326449;
double r326451 = z;
double r326452 = r326451 * r326451;
double r326453 = 1.0;
double r326454 = r326451 + r326453;
double r326455 = r326452 * r326454;
double r326456 = r326450 / r326455;
return r326456;
}
double f(double x, double y, double z) {
double r326457 = x;
double r326458 = cbrt(r326457);
double r326459 = r326458 * r326458;
double r326460 = z;
double r326461 = r326459 / r326460;
double r326462 = r326458 / r326460;
double r326463 = y;
double r326464 = 1.0;
double r326465 = r326460 + r326464;
double r326466 = r326463 / r326465;
double r326467 = r326462 * r326466;
double r326468 = r326461 * r326467;
return r326468;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.0 |
|---|---|
| Target | 3.9 |
| Herbie | 1.2 |
Initial program 15.0
rmApplied times-frac10.8
rmApplied add-cube-cbrt11.2
Applied times-frac6.0
Applied associate-*l*1.2
Final simplification1.2
herbie shell --seed 2020018
(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))))