\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\frac{\frac{-t1}{\frac{t1 + u}{v}}}{t1 + u}double f(double u, double v, double t1) {
double r23563 = t1;
double r23564 = -r23563;
double r23565 = v;
double r23566 = r23564 * r23565;
double r23567 = u;
double r23568 = r23563 + r23567;
double r23569 = r23568 * r23568;
double r23570 = r23566 / r23569;
return r23570;
}
double f(double u, double v, double t1) {
double r23571 = t1;
double r23572 = -r23571;
double r23573 = u;
double r23574 = r23571 + r23573;
double r23575 = v;
double r23576 = r23574 / r23575;
double r23577 = r23572 / r23576;
double r23578 = r23577 / r23574;
return r23578;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
Initial program 18.5
rmApplied times-frac1.4
rmApplied *-un-lft-identity1.4
Applied distribute-lft-neg-in1.4
Applied associate-/l*1.6
rmApplied pow11.6
Applied pow11.6
Applied pow-prod-down1.6
Simplified1.6
Final simplification1.6
herbie shell --seed 2019323 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))