\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{y}}{\frac{x}{\frac{\sqrt[3]{1}}{1 + z \cdot z}}}double f(double x, double y, double z) {
double r338046 = 1.0;
double r338047 = x;
double r338048 = r338046 / r338047;
double r338049 = y;
double r338050 = z;
double r338051 = r338050 * r338050;
double r338052 = r338046 + r338051;
double r338053 = r338049 * r338052;
double r338054 = r338048 / r338053;
return r338054;
}
double f(double x, double y, double z) {
double r338055 = 1.0;
double r338056 = cbrt(r338055);
double r338057 = r338056 * r338056;
double r338058 = y;
double r338059 = r338057 / r338058;
double r338060 = x;
double r338061 = z;
double r338062 = r338061 * r338061;
double r338063 = r338055 + r338062;
double r338064 = r338056 / r338063;
double r338065 = r338060 / r338064;
double r338066 = r338059 / r338065;
return r338066;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.4 |
|---|---|
| Target | 5.8 |
| Herbie | 6.5 |
Initial program 6.4
rmApplied div-inv6.4
Applied associate-/l*6.7
Simplified6.7
rmApplied associate-/r*6.4
rmApplied add-cube-cbrt6.4
Applied times-frac6.3
Applied associate-/l*6.5
Final simplification6.5
herbie shell --seed 2020043
(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)))))