\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 r412336 = x;
double r412337 = y;
double r412338 = r412336 * r412337;
double r412339 = z;
double r412340 = r412339 * r412339;
double r412341 = 1.0;
double r412342 = r412339 + r412341;
double r412343 = r412340 * r412342;
double r412344 = r412338 / r412343;
return r412344;
}
double f(double x, double y, double z) {
double r412345 = x;
double r412346 = cbrt(r412345);
double r412347 = r412346 * r412346;
double r412348 = z;
double r412349 = r412347 / r412348;
double r412350 = r412346 / r412348;
double r412351 = y;
double r412352 = 1.0;
double r412353 = r412348 + r412352;
double r412354 = r412351 / r412353;
double r412355 = r412350 * r412354;
double r412356 = r412349 * r412355;
return r412356;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.4 |
|---|---|
| Target | 4.1 |
| Herbie | 1.3 |
Initial program 14.4
rmApplied times-frac11.0
rmApplied add-cube-cbrt11.3
Applied times-frac6.3
Applied associate-*l*1.3
Final simplification1.3
herbie shell --seed 2020046
(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))))