\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 r215516 = x;
double r215517 = y;
double r215518 = r215516 * r215517;
double r215519 = z;
double r215520 = r215519 * r215519;
double r215521 = 1.0;
double r215522 = r215519 + r215521;
double r215523 = r215520 * r215522;
double r215524 = r215518 / r215523;
return r215524;
}
double f(double x, double y, double z) {
double r215525 = x;
double r215526 = z;
double r215527 = 1.0;
double r215528 = r215526 + r215527;
double r215529 = r215526 * r215528;
double r215530 = r215525 / r215529;
double r215531 = y;
double r215532 = r215531 / r215526;
double r215533 = r215530 * r215532;
return r215533;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.3 |
|---|---|
| Target | 4.2 |
| Herbie | 5.1 |
Initial program 15.3
rmApplied times-frac11.3
rmApplied add-cube-cbrt11.6
Applied times-frac6.4
Applied associate-*l*1.3
Final simplification5.1
herbie shell --seed 2019303
(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))))