\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\begin{array}{l}
\mathbf{if}\;u \leq -7.086882964238897 \cdot 10^{+112} \lor \neg \left(u \leq 2.0160755146411715 \cdot 10^{+39}\right):\\
\;\;\;\;\frac{\frac{v}{u + t1}}{-1 - \frac{u}{t1}}\\
\mathbf{else}:\\
\;\;\;\;\frac{v}{\left(u + t1\right) \cdot \left(-1 - \frac{u}{t1}\right)}\\
\end{array}(FPCore (u v t1) :precision binary64 (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))
(FPCore (u v t1) :precision binary64 (if (or (<= u -7.086882964238897e+112) (not (<= u 2.0160755146411715e+39))) (/ (/ v (+ u t1)) (- -1.0 (/ u t1))) (/ v (* (+ u t1) (- -1.0 (/ u t1))))))
double code(double u, double v, double t1) {
return (-t1 * v) / ((t1 + u) * (t1 + u));
}
double code(double u, double v, double t1) {
double tmp;
if ((u <= -7.086882964238897e+112) || !(u <= 2.0160755146411715e+39)) {
tmp = (v / (u + t1)) / (-1.0 - (u / t1));
} else {
tmp = v / ((u + t1) * (-1.0 - (u / t1)));
}
return tmp;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
if u < -7.086882964238897e112 or 2.01607551464117149e39 < u Initial program 15.8
Simplified1.3
if -7.086882964238897e112 < u < 2.01607551464117149e39Initial program 19.6
Simplified1.6
rmApplied associate-/l/_binary640.8
Simplified0.8
Final simplification1.0
herbie shell --seed 2020233
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))