\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{1}{1 + z \cdot z}}{y \cdot x}double f(double x, double y, double z) {
double r260362 = 1.0;
double r260363 = x;
double r260364 = r260362 / r260363;
double r260365 = y;
double r260366 = z;
double r260367 = r260366 * r260366;
double r260368 = r260362 + r260367;
double r260369 = r260365 * r260368;
double r260370 = r260364 / r260369;
return r260370;
}
double f(double x, double y, double z) {
double r260371 = 1.0;
double r260372 = z;
double r260373 = r260372 * r260372;
double r260374 = r260371 + r260373;
double r260375 = r260371 / r260374;
double r260376 = y;
double r260377 = x;
double r260378 = r260376 * r260377;
double r260379 = r260375 / r260378;
return r260379;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.1 |
|---|---|
| Target | 5.5 |
| Herbie | 6.2 |
Initial program 6.1
rmApplied *-un-lft-identity6.1
Applied add-sqr-sqrt6.1
Applied times-frac6.1
Applied times-frac6.0
Simplified6.0
rmApplied associate-*l/6.0
Simplified6.0
rmApplied *-un-lft-identity6.0
Applied add-sqr-sqrt6.0
Applied div-inv6.0
Applied times-frac6.0
Applied times-frac5.7
Simplified5.7
Final simplification6.2
herbie shell --seed 2019294
(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)))))