\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\begin{array}{l}
\mathbf{if}\;y \le -1.0361915026416111 \cdot 10^{98}:\\
\;\;\;\;\frac{\frac{1}{x}}{y} \cdot \frac{1}{1 + z \cdot z}\\
\mathbf{elif}\;y \le 7441646126.591238:\\
\;\;\;\;\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\\
\mathbf{else}:\\
\;\;\;\;1 \cdot \frac{\frac{1}{x \cdot y}}{z \cdot z + 1}\\
\end{array}double f(double x, double y, double z) {
double r286648 = 1.0;
double r286649 = x;
double r286650 = r286648 / r286649;
double r286651 = y;
double r286652 = z;
double r286653 = r286652 * r286652;
double r286654 = r286648 + r286653;
double r286655 = r286651 * r286654;
double r286656 = r286650 / r286655;
return r286656;
}
double f(double x, double y, double z) {
double r286657 = y;
double r286658 = -1.0361915026416111e+98;
bool r286659 = r286657 <= r286658;
double r286660 = 1.0;
double r286661 = x;
double r286662 = r286660 / r286661;
double r286663 = r286662 / r286657;
double r286664 = 1.0;
double r286665 = z;
double r286666 = r286665 * r286665;
double r286667 = r286660 + r286666;
double r286668 = r286664 / r286667;
double r286669 = r286663 * r286668;
double r286670 = 7441646126.591238;
bool r286671 = r286657 <= r286670;
double r286672 = r286657 * r286667;
double r286673 = r286662 / r286672;
double r286674 = r286661 * r286657;
double r286675 = r286664 / r286674;
double r286676 = r286666 + r286660;
double r286677 = r286675 / r286676;
double r286678 = r286660 * r286677;
double r286679 = r286671 ? r286673 : r286678;
double r286680 = r286659 ? r286669 : r286679;
return r286680;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.6 |
|---|---|
| Target | 5.8 |
| Herbie | 5.2 |
if y < -1.0361915026416111e+98Initial program 4.5
rmApplied add-cube-cbrt4.9
Applied times-frac1.1
rmApplied add-cbrt-cube1.1
Simplified1.1
rmApplied div-inv1.1
Applied associate-*r*1.1
Simplified0.6
if -1.0361915026416111e+98 < y < 7441646126.591238Initial program 8.4
rmApplied add-cube-cbrt9.1
Applied times-frac10.8
rmApplied add-cbrt-cube10.9
Simplified10.9
rmApplied frac-times9.2
Simplified8.4
if 7441646126.591238 < y Initial program 4.3
rmApplied add-cube-cbrt4.8
Applied times-frac1.8
rmApplied add-cbrt-cube1.8
Simplified1.8
rmApplied div-inv1.8
Applied associate-*r*1.8
Simplified1.3
rmApplied *-un-lft-identity1.3
Applied div-inv1.3
Applied times-frac1.3
Applied associate-*l*1.3
Simplified1.6
Final simplification5.2
herbie shell --seed 2019199
(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)))))