\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}\frac{v}{t1 + u} \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{-1}{t1 + u} \cdot t1\right)\right)double f(double u, double v, double t1) {
double r20561 = t1;
double r20562 = -r20561;
double r20563 = v;
double r20564 = r20562 * r20563;
double r20565 = u;
double r20566 = r20561 + r20565;
double r20567 = r20566 * r20566;
double r20568 = r20564 / r20567;
return r20568;
}
double f(double u, double v, double t1) {
double r20569 = v;
double r20570 = t1;
double r20571 = u;
double r20572 = r20570 + r20571;
double r20573 = r20569 / r20572;
double r20574 = -1.0;
double r20575 = r20574 / r20572;
double r20576 = r20575 * r20570;
double r20577 = expm1(r20576);
double r20578 = log1p(r20577);
double r20579 = r20573 * r20578;
return r20579;
}



Bits error versus u



Bits error versus v



Bits error versus t1
Results
Initial program 17.7
rmApplied times-frac1.2
rmApplied log1p-expm1-u1.2
rmApplied div-inv1.2
Final simplification1.2
herbie shell --seed 2019325 +o rules:numerics
(FPCore (u v t1)
:name "Rosa's DopplerBench"
:precision binary64
(/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))