x - \frac{y \cdot \left(z - t\right)}{a}x - \frac{y \cdot \left(z - t\right)}{a}double f(double x, double y, double z, double t, double a) {
double r249212 = x;
double r249213 = y;
double r249214 = z;
double r249215 = t;
double r249216 = r249214 - r249215;
double r249217 = r249213 * r249216;
double r249218 = a;
double r249219 = r249217 / r249218;
double r249220 = r249212 - r249219;
return r249220;
}
double f(double x, double y, double z, double t, double a) {
double r249221 = x;
double r249222 = y;
double r249223 = z;
double r249224 = t;
double r249225 = r249223 - r249224;
double r249226 = r249222 * r249225;
double r249227 = a;
double r249228 = r249226 / r249227;
double r249229 = r249221 - r249228;
return r249229;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.4 |
|---|---|
| Target | 0.7 |
| Herbie | 6.4 |
if (* y (- z t)) < -inf.0 or 5.142235024197987e+223 < (* y (- z t)) Initial program 45.4
rmApplied associate-/l*0.4
if -inf.0 < (* y (- z t)) < 5.142235024197987e+223Initial program 0.3
Final simplification6.4
herbie shell --seed 2019308
(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)))