\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 r342859 = 1.0;
double r342860 = x;
double r342861 = r342859 / r342860;
double r342862 = y;
double r342863 = z;
double r342864 = r342863 * r342863;
double r342865 = r342859 + r342864;
double r342866 = r342862 * r342865;
double r342867 = r342861 / r342866;
return r342867;
}
double f(double x, double y, double z) {
double r342868 = 1.0;
double r342869 = cbrt(r342868);
double r342870 = z;
double r342871 = r342870 * r342870;
double r342872 = r342868 + r342871;
double r342873 = sqrt(r342872);
double r342874 = r342873 / r342869;
double r342875 = r342869 / r342874;
double r342876 = y;
double r342877 = r342869 / r342876;
double r342878 = sqrt(r342873);
double r342879 = r342877 / r342878;
double r342880 = 1.0;
double r342881 = x;
double r342882 = r342880 / r342881;
double r342883 = r342882 / r342878;
double r342884 = r342879 * r342883;
double r342885 = r342875 * r342884;
return r342885;
}




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)))))