\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\left(\left(-t1\right) \cdot \frac{v}{t1 + u}\right) \cdot \frac{1}{t1 + u}double f(double u, double v, double t1) {
double r31549 = t1;
double r31550 = -r31549;
double r31551 = v;
double r31552 = r31550 * r31551;
double r31553 = u;
double r31554 = r31549 + r31553;
double r31555 = r31554 * r31554;
double r31556 = r31552 / r31555;
return r31556;
}
double f(double u, double v, double t1) {
double r31557 = t1;
double r31558 = -r31557;
double r31559 = v;
double r31560 = u;
double r31561 = r31557 + r31560;
double r31562 = r31559 / r31561;
double r31563 = r31558 * r31562;
double r31564 = 1.0;
double r31565 = r31564 / r31561;
double r31566 = r31563 * r31565;
return r31566;
}



Bits error versus u



Bits error versus v



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