\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\sqrt[3]{1}}{\frac{\sqrt{1 + z \cdot z}}{\sqrt[3]{1}}} \cdot \left(\frac{\frac{\sqrt[3]{1}}{y}}{\sqrt{\sqrt{1 + z \cdot z}}} \cdot \frac{\frac{1}{x}}{\sqrt{\sqrt{1 + z \cdot z}}}\right)double f(double x, double y, double z) {
double r294702 = 1.0;
double r294703 = x;
double r294704 = r294702 / r294703;
double r294705 = y;
double r294706 = z;
double r294707 = r294706 * r294706;
double r294708 = r294702 + r294707;
double r294709 = r294705 * r294708;
double r294710 = r294704 / r294709;
return r294710;
}
double f(double x, double y, double z) {
double r294711 = 1.0;
double r294712 = cbrt(r294711);
double r294713 = z;
double r294714 = r294713 * r294713;
double r294715 = r294711 + r294714;
double r294716 = sqrt(r294715);
double r294717 = r294716 / r294712;
double r294718 = r294712 / r294717;
double r294719 = y;
double r294720 = r294712 / r294719;
double r294721 = sqrt(r294716);
double r294722 = r294720 / r294721;
double r294723 = 1.0;
double r294724 = x;
double r294725 = r294723 / r294724;
double r294726 = r294725 / r294721;
double r294727 = r294722 * r294726;
double r294728 = r294718 * r294727;
return r294728;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.4 |
|---|---|
| Target | 5.8 |
| Herbie | 6.2 |
Initial program 6.4
rmApplied associate-/r*6.6
Simplified6.6
rmApplied add-sqr-sqrt6.6
Applied *-un-lft-identity6.6
Applied *-un-lft-identity6.6
Applied add-cube-cbrt6.6
Applied times-frac6.6
Applied times-frac6.6
Applied times-frac6.6
Simplified6.6
rmApplied add-sqr-sqrt6.6
Applied sqrt-prod6.6
Applied div-inv6.7
Applied times-frac6.2
Final simplification6.2
herbie shell --seed 2020062
(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)))))