\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{\frac{1}{y}}{x}}{1 + z \cdot z}double f(double x, double y, double z) {
double r318108 = 1.0;
double r318109 = x;
double r318110 = r318108 / r318109;
double r318111 = y;
double r318112 = z;
double r318113 = r318112 * r318112;
double r318114 = r318108 + r318113;
double r318115 = r318111 * r318114;
double r318116 = r318110 / r318115;
return r318116;
}
double f(double x, double y, double z) {
double r318117 = 1.0;
double r318118 = y;
double r318119 = r318117 / r318118;
double r318120 = x;
double r318121 = r318119 / r318120;
double r318122 = z;
double r318123 = r318122 * r318122;
double r318124 = r318117 + r318123;
double r318125 = r318121 / r318124;
return r318125;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.4 |
|---|---|
| Target | 5.7 |
| Herbie | 6.4 |
Initial program 6.4
rmApplied associate-/r*6.4
Simplified6.4
Final simplification6.4
herbie shell --seed 2020039
(FPCore (x y z)
:name "Statistics.Distribution.CauchyLorentz:$cdensity from math-functions-0.1.5.2"
:precision binary64
:herbie-target
(if (< (* y (+ 1 (* z z))) #f) (/ (/ 1 y) (* (+ 1 (* z z)) x)) (if (< (* y (+ 1 (* z z))) 8.680743250567252e+305) (/ (/ 1 x) (* (+ 1 (* z z)) y)) (/ (/ 1 y) (* (+ 1 (* z z)) x))))
(/ (/ 1 x) (* y (+ 1 (* z z)))))