\frac{\frac{1.0}{x}}{y \cdot \left(1.0 + z \cdot z\right)}\frac{\frac{-\frac{\sqrt{1.0}}{x}}{\left|\sqrt[3]{1.0 + z \cdot z}\right|} \cdot \frac{\sqrt{1.0}}{y}}{-\sqrt{1.0 + z \cdot z} \cdot \sqrt{\sqrt[3]{1.0 + z \cdot z}}}double f(double x, double y, double z) {
double r21599931 = 1.0;
double r21599932 = x;
double r21599933 = r21599931 / r21599932;
double r21599934 = y;
double r21599935 = z;
double r21599936 = r21599935 * r21599935;
double r21599937 = r21599931 + r21599936;
double r21599938 = r21599934 * r21599937;
double r21599939 = r21599933 / r21599938;
return r21599939;
}
double f(double x, double y, double z) {
double r21599940 = 1.0;
double r21599941 = sqrt(r21599940);
double r21599942 = x;
double r21599943 = r21599941 / r21599942;
double r21599944 = -r21599943;
double r21599945 = z;
double r21599946 = r21599945 * r21599945;
double r21599947 = r21599940 + r21599946;
double r21599948 = cbrt(r21599947);
double r21599949 = fabs(r21599948);
double r21599950 = r21599944 / r21599949;
double r21599951 = y;
double r21599952 = r21599941 / r21599951;
double r21599953 = r21599950 * r21599952;
double r21599954 = sqrt(r21599947);
double r21599955 = sqrt(r21599948);
double r21599956 = r21599954 * r21599955;
double r21599957 = -r21599956;
double r21599958 = r21599953 / r21599957;
return r21599958;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.9 |
|---|---|
| Target | 6.2 |
| Herbie | 6.5 |
Initial program 6.9
rmApplied add-sqr-sqrt6.9
Applied associate-*r*6.9
Applied *-un-lft-identity6.9
Applied add-sqr-sqrt6.9
Applied times-frac6.9
Applied times-frac6.6
Simplified6.6
rmApplied add-cube-cbrt6.6
Applied sqrt-prod6.6
Applied associate-/r*6.6
Applied frac-2neg6.6
Applied frac-times6.5
Simplified6.5
Final simplification6.5
herbie shell --seed 2019158
(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)))))