\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\left(-\frac{v}{\frac{t1 + u}{t1}}\right) \cdot \frac{1}{t1 + u}double f(double u, double v, double t1) {
double r30674 = t1;
double r30675 = -r30674;
double r30676 = v;
double r30677 = r30675 * r30676;
double r30678 = u;
double r30679 = r30674 + r30678;
double r30680 = r30679 * r30679;
double r30681 = r30677 / r30680;
return r30681;
}
double f(double u, double v, double t1) {
double r30682 = v;
double r30683 = t1;
double r30684 = u;
double r30685 = r30683 + r30684;
double r30686 = r30685 / r30683;
double r30687 = r30682 / r30686;
double r30688 = -r30687;
double r30689 = 1.0;
double r30690 = r30689 / r30685;
double r30691 = r30688 * r30690;
return r30691;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
Initial program 18.2
rmApplied times-frac1.5
rmApplied *-un-lft-identity1.5
Applied distribute-lft-neg-in1.5
Applied associate-/l*1.7
rmApplied div-inv1.8
Applied associate-*r*1.6
Simplified1.5
Final simplification1.5
herbie shell --seed 2020033 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))