\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\begin{array}{l}
\mathbf{if}\;u \le -27961452653556097000 \lor \neg \left(u \le 1.74032055719243231 \cdot 10^{-26}\right):\\
\;\;\;\;\frac{\left(-t1\right) \cdot \frac{v}{t1 + u}}{t1 + u}\\
\mathbf{else}:\\
\;\;\;\;\frac{-1 \cdot v}{\frac{t1 + u}{t1} \cdot \left(t1 + u\right)}\\
\end{array}double code(double u, double v, double t1) {
return ((-t1 * v) / ((t1 + u) * (t1 + u)));
}
double code(double u, double v, double t1) {
double VAR;
if (((u <= -2.7961452653556097e+19) || !(u <= 1.7403205571924323e-26))) {
VAR = ((-t1 * (v / (t1 + u))) / (t1 + u));
} else {
VAR = ((-1.0 * v) / (((t1 + u) / t1) * (t1 + u)));
}
return VAR;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
if u < -2.7961452653556097e+19 or 1.7403205571924323e-26 < u Initial program 14.3
rmApplied times-frac1.0
rmApplied associate-*r/1.0
Simplified0.2
if -2.7961452653556097e+19 < u < 1.7403205571924323e-26Initial program 21.3
rmApplied times-frac1.6
rmApplied neg-mul-11.6
Applied associate-/l*1.6
rmApplied frac-times0.1
Final simplification0.1
herbie shell --seed 2020100 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))