\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 r244235 = x;
double r244236 = y;
double r244237 = r244235 * r244236;
double r244238 = z;
double r244239 = r244238 * r244238;
double r244240 = 1.0;
double r244241 = r244238 + r244240;
double r244242 = r244239 * r244241;
double r244243 = r244237 / r244242;
return r244243;
}
double f(double x, double y, double z) {
double r244244 = x;
double r244245 = z;
double r244246 = 1.0;
double r244247 = r244245 + r244246;
double r244248 = r244245 * r244247;
double r244249 = r244244 / r244248;
double r244250 = y;
double r244251 = r244250 / r244245;
double r244252 = r244249 * r244251;
return r244252;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 15.0 |
|---|---|
| Target | 4.6 |
| Herbie | 5.3 |
Initial program 15.0
rmApplied times-frac11.3
rmApplied add-cube-cbrt11.7
Applied times-frac6.7
Applied associate-*l*1.2
Final simplification5.3
herbie shell --seed 2019291
(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))))