\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\frac{\frac{1}{x}}{\sqrt[3]{y} \cdot \sqrt{1 + z \cdot z}} \cdot \frac{\frac{\frac{1}{\sqrt[3]{y}}}{\sqrt[3]{y}}}{\sqrt{1 + z \cdot z}}double f(double x, double y, double z) {
double r309996 = 1.0;
double r309997 = x;
double r309998 = r309996 / r309997;
double r309999 = y;
double r310000 = z;
double r310001 = r310000 * r310000;
double r310002 = r309996 + r310001;
double r310003 = r309999 * r310002;
double r310004 = r309998 / r310003;
return r310004;
}
double f(double x, double y, double z) {
double r310005 = 1.0;
double r310006 = x;
double r310007 = r310005 / r310006;
double r310008 = y;
double r310009 = cbrt(r310008);
double r310010 = 1.0;
double r310011 = z;
double r310012 = r310011 * r310011;
double r310013 = r310010 + r310012;
double r310014 = sqrt(r310013);
double r310015 = r310009 * r310014;
double r310016 = r310007 / r310015;
double r310017 = r310010 / r310009;
double r310018 = r310017 / r310009;
double r310019 = r310018 / r310014;
double r310020 = r310016 * r310019;
return r310020;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.5 |
|---|---|
| Target | 5.7 |
| Herbie | 5.8 |
Initial program 6.5
Simplified6.7
rmApplied add-sqr-sqrt6.7
Applied add-cube-cbrt7.2
Applied div-inv7.2
Applied times-frac7.3
Applied times-frac6.1
Simplified6.1
Simplified5.8
Final simplification5.8
herbie shell --seed 2019174
(FPCore (x y z)
:name "Statistics.Distribution.CauchyLorentz:$cdensity from math-functions-0.1.5.2"
:herbie-target
(if (< (* y (+ 1.0 (* z z))) -inf.0) (/ (/ 1.0 y) (* (+ 1.0 (* z z)) x)) (if (< (* y (+ 1.0 (* z z))) 8.680743250567252e+305) (/ (/ 1.0 x) (* (+ 1.0 (* z z)) y)) (/ (/ 1.0 y) (* (+ 1.0 (* z z)) x))))
(/ (/ 1.0 x) (* y (+ 1.0 (* z z)))))