\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\left(\frac{t1}{t1 + u} \cdot v\right) \cdot \frac{-1}{t1 + u}double f(double u, double v, double t1) {
double r19711 = t1;
double r19712 = -r19711;
double r19713 = v;
double r19714 = r19712 * r19713;
double r19715 = u;
double r19716 = r19711 + r19715;
double r19717 = r19716 * r19716;
double r19718 = r19714 / r19717;
return r19718;
}
double f(double u, double v, double t1) {
double r19719 = t1;
double r19720 = u;
double r19721 = r19719 + r19720;
double r19722 = r19719 / r19721;
double r19723 = v;
double r19724 = r19722 * r19723;
double r19725 = -1.0;
double r19726 = r19725 / r19721;
double r19727 = r19724 * r19726;
return r19727;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
Initial program 18.6
rmApplied times-frac1.4
rmApplied div-inv1.5
Applied associate-*r*1.3
Final simplification1.3
herbie shell --seed 2019305 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))