x - \frac{y \cdot \left(z - t\right)}{a}x - \frac{y}{\frac{a}{z - t}}double f(double x, double y, double z, double t, double a) {
double r361283 = x;
double r361284 = y;
double r361285 = z;
double r361286 = t;
double r361287 = r361285 - r361286;
double r361288 = r361284 * r361287;
double r361289 = a;
double r361290 = r361288 / r361289;
double r361291 = r361283 - r361290;
return r361291;
}
double f(double x, double y, double z, double t, double a) {
double r361292 = x;
double r361293 = y;
double r361294 = a;
double r361295 = z;
double r361296 = t;
double r361297 = r361295 - r361296;
double r361298 = r361294 / r361297;
double r361299 = r361293 / r361298;
double r361300 = r361292 - r361299;
return r361300;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.2 |
|---|---|
| Target | 0.5 |
| Herbie | 5.7 |
if a < -7.251701340672362e+52 or 1.0576402916802115e-15 < a Initial program 10.0
rmApplied associate-/l*0.4
if -7.251701340672362e+52 < a < 1.0576402916802115e-15Initial program 0.8
rmApplied associate-/l*13.2
rmApplied div-inv13.3
Applied *-un-lft-identity13.3
Applied times-frac0.9
Simplified0.9
Final simplification5.7
herbie shell --seed 2019294
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, F"
:precision binary64
:herbie-target
(if (< y -1.07612662163899753e-10) (- x (/ 1 (/ (/ a (- z t)) y))) (if (< y 2.8944268627920891e-49) (- x (/ (* y (- z t)) a)) (- x (/ y (/ a (- z t))))))
(- x (/ (* y (- z t)) a)))