x + \frac{y \cdot \left(z - x\right)}{t}x + \frac{z - x}{\frac{t}{y}}double f(double x, double y, double z, double t) {
double r348371 = x;
double r348372 = y;
double r348373 = z;
double r348374 = r348373 - r348371;
double r348375 = r348372 * r348374;
double r348376 = t;
double r348377 = r348375 / r348376;
double r348378 = r348371 + r348377;
return r348378;
}
double f(double x, double y, double z, double t) {
double r348379 = x;
double r348380 = z;
double r348381 = r348380 - r348379;
double r348382 = t;
double r348383 = y;
double r348384 = r348382 / r348383;
double r348385 = r348381 / r348384;
double r348386 = r348379 + r348385;
return r348386;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 6.6 |
|---|---|
| Target | 2.1 |
| Herbie | 2.0 |
Initial program 6.6
rmApplied associate-/l*6.1
rmApplied associate-/r/2.1
Taylor expanded around 0 6.6
Simplified2.0
Final simplification2.0
herbie shell --seed 2019325
(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)))