\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\frac{x}{z \cdot \left(z + 1\right)} \cdot \frac{y}{z}double f(double x, double y, double z) {
double r279406 = x;
double r279407 = y;
double r279408 = r279406 * r279407;
double r279409 = z;
double r279410 = r279409 * r279409;
double r279411 = 1.0;
double r279412 = r279409 + r279411;
double r279413 = r279410 * r279412;
double r279414 = r279408 / r279413;
return r279414;
}
double f(double x, double y, double z) {
double r279415 = x;
double r279416 = z;
double r279417 = 1.0;
double r279418 = r279416 + r279417;
double r279419 = r279416 * r279418;
double r279420 = r279415 / r279419;
double r279421 = y;
double r279422 = r279421 / r279416;
double r279423 = r279420 * r279422;
return r279423;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 14.8 |
|---|---|
| Target | 4.1 |
| Herbie | 4.9 |
Initial program 14.8
rmApplied times-frac10.9
rmApplied add-cube-cbrt11.3
Applied times-frac6.4
Applied associate-*l*1.2
Final simplification4.9
herbie shell --seed 2019304
(FPCore (x y z)
:name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< z 249.618281453230708) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))
(/ (* x y) (* (* z z) (+ z 1))))