\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\frac{\left(-t1\right) \cdot \frac{v}{t1 + u}}{t1 + u}double f(double u, double v, double t1) {
double r19207 = t1;
double r19208 = -r19207;
double r19209 = v;
double r19210 = r19208 * r19209;
double r19211 = u;
double r19212 = r19207 + r19211;
double r19213 = r19212 * r19212;
double r19214 = r19210 / r19213;
return r19214;
}
double f(double u, double v, double t1) {
double r19215 = t1;
double r19216 = -r19215;
double r19217 = v;
double r19218 = u;
double r19219 = r19215 + r19218;
double r19220 = r19217 / r19219;
double r19221 = r19216 * r19220;
double r19222 = r19221 / r19219;
return r19222;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
Initial program 18.1
rmApplied times-frac1.3
rmApplied associate-*r/1.2
rmApplied div-inv1.2
Applied associate-*l*1.4
Simplified1.3
Final simplification1.3
herbie shell --seed 2019303 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))