\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{1}{x}}{\sqrt{1 + z \cdot z}} \cdot \frac{\frac{1}{y}}{\sqrt{1 + z \cdot z}}double f(double x, double y, double z) {
double r302291 = 1.0;
double r302292 = x;
double r302293 = r302291 / r302292;
double r302294 = y;
double r302295 = z;
double r302296 = r302295 * r302295;
double r302297 = r302291 + r302296;
double r302298 = r302294 * r302297;
double r302299 = r302293 / r302298;
return r302299;
}
double f(double x, double y, double z) {
double r302300 = 1.0;
double r302301 = x;
double r302302 = r302300 / r302301;
double r302303 = 1.0;
double r302304 = z;
double r302305 = r302304 * r302304;
double r302306 = r302303 + r302305;
double r302307 = sqrt(r302306);
double r302308 = r302302 / r302307;
double r302309 = y;
double r302310 = r302303 / r302309;
double r302311 = r302310 / r302307;
double r302312 = r302308 * r302311;
return r302312;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.6 |
|---|---|
| Target | 6.0 |
| Herbie | 6.1 |
Initial program 6.6
rmApplied div-inv6.6
Applied times-frac6.5
rmApplied add-sqr-sqrt6.5
Applied *-un-lft-identity6.5
Applied add-cube-cbrt6.5
Applied times-frac6.5
Applied times-frac6.6
Applied associate-*r*6.1
Simplified6.1
Final simplification6.1
herbie shell --seed 2019306
(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))) -inf.bf) (/ (/ 1 y) (* (+ 1 (* z z)) x)) (if (< (* y (+ 1 (* z z))) 8.68074325056725162e305) (/ (/ 1 x) (* (+ 1 (* z z)) y)) (/ (/ 1 y) (* (+ 1 (* z z)) x))))
(/ (/ 1 x) (* y (+ 1 (* z z)))))