\frac{\left(x \cdot 2\right) \cdot y}{x - y}\begin{array}{l}
\mathbf{if}\;y \le -11894198345334408230327762615508217626620:\\
\;\;\;\;\left(x \cdot 2\right) \cdot \frac{y}{x - y}\\
\mathbf{elif}\;y \le 3.827108002628365811088571233801504531292 \cdot 10^{68}:\\
\;\;\;\;\frac{x \cdot 2}{x - y} \cdot y\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot 2}{\frac{x - y}{y}}\\
\end{array}double f(double x, double y) {
double r578919 = x;
double r578920 = 2.0;
double r578921 = r578919 * r578920;
double r578922 = y;
double r578923 = r578921 * r578922;
double r578924 = r578919 - r578922;
double r578925 = r578923 / r578924;
return r578925;
}
double f(double x, double y) {
double r578926 = y;
double r578927 = -1.1894198345334408e+40;
bool r578928 = r578926 <= r578927;
double r578929 = x;
double r578930 = 2.0;
double r578931 = r578929 * r578930;
double r578932 = r578929 - r578926;
double r578933 = r578926 / r578932;
double r578934 = r578931 * r578933;
double r578935 = 3.827108002628366e+68;
bool r578936 = r578926 <= r578935;
double r578937 = r578931 / r578932;
double r578938 = r578937 * r578926;
double r578939 = r578932 / r578926;
double r578940 = r578931 / r578939;
double r578941 = r578936 ? r578938 : r578940;
double r578942 = r578928 ? r578934 : r578941;
return r578942;
}




Bits error versus x




Bits error versus y
Results
| Original | 14.9 |
|---|---|
| Target | 0.4 |
| Herbie | 0.2 |
if y < -1.1894198345334408e+40Initial program 18.3
rmApplied *-un-lft-identity18.3
Applied times-frac0.2
Simplified0.2
if -1.1894198345334408e+40 < y < 3.827108002628366e+68Initial program 11.9
rmApplied associate-/l*12.7
rmApplied associate-/r/0.3
if 3.827108002628366e+68 < y Initial program 20.2
rmApplied associate-/l*0.1
Final simplification0.2
herbie shell --seed 2020001
(FPCore (x y)
:name "Linear.Projection:perspective from linear-1.19.1.3, B"
:precision binary64
:herbie-target
(if (< x -1.7210442634149447e+81) (* (/ (* 2 x) (- x y)) y) (if (< x 83645045635564432) (/ (* x 2) (/ (- x y) y)) (* (/ (* 2 x) (- x y)) y)))
(/ (* (* x 2) y) (- x y)))