\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{\frac{1}{x}}{y}}{1 + z \cdot z}double f(double x, double y, double z) {
double r15704818 = 1.0;
double r15704819 = x;
double r15704820 = r15704818 / r15704819;
double r15704821 = y;
double r15704822 = z;
double r15704823 = r15704822 * r15704822;
double r15704824 = r15704818 + r15704823;
double r15704825 = r15704821 * r15704824;
double r15704826 = r15704820 / r15704825;
return r15704826;
}
double f(double x, double y, double z) {
double r15704827 = 1.0;
double r15704828 = x;
double r15704829 = r15704827 / r15704828;
double r15704830 = y;
double r15704831 = r15704829 / r15704830;
double r15704832 = z;
double r15704833 = r15704832 * r15704832;
double r15704834 = r15704827 + r15704833;
double r15704835 = r15704831 / r15704834;
return r15704835;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.5 |
|---|---|
| Target | 5.7 |
| Herbie | 6.7 |
Initial program 6.5
rmApplied associate-/r*6.7
Final simplification6.7
herbie shell --seed 2019174
(FPCore (x y z)
:name "Statistics.Distribution.CauchyLorentz:$cdensity from math-functions-0.1.5.2"
:herbie-target
(if (< (* y (+ 1.0 (* z z))) -inf.0) (/ (/ 1.0 y) (* (+ 1.0 (* z z)) x)) (if (< (* y (+ 1.0 (* z z))) 8.680743250567252e+305) (/ (/ 1.0 x) (* (+ 1.0 (* z z)) y)) (/ (/ 1.0 y) (* (+ 1.0 (* z z)) x))))
(/ (/ 1.0 x) (* y (+ 1.0 (* z z)))))