\frac{\frac{1}{x}}{y \cdot \left(1 + z \cdot z\right)}\begin{array}{l}
\mathbf{if}\;x \le -38289380947.143463:\\
\;\;\;\;\frac{\frac{1}{x}}{\left(y \cdot \sqrt{1 + z \cdot z}\right) \cdot \sqrt{1 + z \cdot z}}\\
\mathbf{elif}\;x \le 1.7144269134100035 \cdot 10^{68}:\\
\;\;\;\;\frac{\sqrt{1}}{y} \cdot \frac{\frac{\sqrt{1}}{x}}{1 + z \cdot z}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{1}{y}}{x}}{1 + z \cdot z}\\
\end{array}double f(double x, double y, double z) {
double r232674 = 1.0;
double r232675 = x;
double r232676 = r232674 / r232675;
double r232677 = y;
double r232678 = z;
double r232679 = r232678 * r232678;
double r232680 = r232674 + r232679;
double r232681 = r232677 * r232680;
double r232682 = r232676 / r232681;
return r232682;
}
double f(double x, double y, double z) {
double r232683 = x;
double r232684 = -38289380947.14346;
bool r232685 = r232683 <= r232684;
double r232686 = 1.0;
double r232687 = r232686 / r232683;
double r232688 = y;
double r232689 = z;
double r232690 = r232689 * r232689;
double r232691 = r232686 + r232690;
double r232692 = sqrt(r232691);
double r232693 = r232688 * r232692;
double r232694 = r232693 * r232692;
double r232695 = r232687 / r232694;
double r232696 = 1.7144269134100035e+68;
bool r232697 = r232683 <= r232696;
double r232698 = sqrt(r232686);
double r232699 = r232698 / r232688;
double r232700 = r232698 / r232683;
double r232701 = r232700 / r232691;
double r232702 = r232699 * r232701;
double r232703 = r232686 / r232688;
double r232704 = r232703 / r232683;
double r232705 = r232704 / r232691;
double r232706 = r232697 ? r232702 : r232705;
double r232707 = r232685 ? r232695 : r232706;
return r232707;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 6.4 |
|---|---|
| Target | 5.6 |
| Herbie | 5.0 |
if x < -38289380947.14346Initial program 1.3
rmApplied add-sqr-sqrt1.3
Applied associate-*r*1.3
if -38289380947.14346 < x < 1.7144269134100035e+68Initial program 11.1
rmApplied *-un-lft-identity11.1
Applied add-sqr-sqrt11.1
Applied times-frac11.1
Applied times-frac8.5
Simplified8.5
if 1.7144269134100035e+68 < x Initial program 0.7
rmApplied associate-/r*0.7
Simplified0.7
Final simplification5.0
herbie shell --seed 2020021
(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)))))