x + \frac{y \cdot \left(z - x\right)}{t}x + \frac{y}{t} \cdot \left(z - x\right)double f(double x, double y, double z, double t) {
double r233032 = x;
double r233033 = y;
double r233034 = z;
double r233035 = r233034 - r233032;
double r233036 = r233033 * r233035;
double r233037 = t;
double r233038 = r233036 / r233037;
double r233039 = r233032 + r233038;
return r233039;
}
double f(double x, double y, double z, double t) {
double r233040 = x;
double r233041 = y;
double r233042 = t;
double r233043 = r233041 / r233042;
double r233044 = z;
double r233045 = r233044 - r233040;
double r233046 = r233043 * r233045;
double r233047 = r233040 + r233046;
return r233047;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.8 |
|---|---|
| Target | 2.1 |
| Herbie | 2.1 |
if x < -3.9907489930006894e-129 or 4.674838803392881e-172 < x Initial program 7.3
rmApplied associate-/l*6.3
rmApplied associate-/r/0.9
if -3.9907489930006894e-129 < x < 4.674838803392881e-172Initial program 5.5
rmApplied associate-/l*4.9
rmApplied div-inv4.9
Taylor expanded around 0 5.5
Simplified4.9
Final simplification2.1
herbie shell --seed 2019308
(FPCore (x y z t)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, D"
:precision binary64
:herbie-target
(- x (+ (* x (/ y t)) (* (- z) (/ y t))))
(+ x (/ (* y (- z x)) t)))