\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}-\frac{\frac{t1}{t1 + u} \cdot v}{t1 + u}double f(double u, double v, double t1) {
double r16633 = t1;
double r16634 = -r16633;
double r16635 = v;
double r16636 = r16634 * r16635;
double r16637 = u;
double r16638 = r16633 + r16637;
double r16639 = r16638 * r16638;
double r16640 = r16636 / r16639;
return r16640;
}
double f(double u, double v, double t1) {
double r16641 = t1;
double r16642 = u;
double r16643 = r16641 + r16642;
double r16644 = r16641 / r16643;
double r16645 = v;
double r16646 = r16644 * r16645;
double r16647 = r16646 / r16643;
double r16648 = -r16647;
return r16648;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
Initial program 18.3
rmApplied times-frac1.4
rmApplied neg-sub01.4
Applied div-sub1.4
Simplified1.4
rmApplied div-inv1.5
rmApplied sub0-neg1.5
Applied distribute-lft-neg-out1.5
Simplified1.3
Final simplification1.3
herbie shell --seed 2020060 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))