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 r233157 = x;
double r233158 = y;
double r233159 = z;
double r233160 = t;
double r233161 = r233159 - r233160;
double r233162 = r233158 * r233161;
double r233163 = a;
double r233164 = r233162 / r233163;
double r233165 = r233157 - r233164;
return r233165;
}
double f(double x, double y, double z, double t, double a) {
double r233166 = x;
double r233167 = y;
double r233168 = a;
double r233169 = z;
double r233170 = t;
double r233171 = r233169 - r233170;
double r233172 = r233168 / r233171;
double r233173 = r233167 / r233172;
double r233174 = r233166 - r233173;
return r233174;
}




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.8 |
| Herbie | 5.4 |
if y < -1.7842927315890493e+29Initial program 17.3
rmApplied associate-/l*1.1
rmApplied associate-/r/4.4
rmApplied add-cube-cbrt5.0
Applied associate-*r*5.0
Taylor expanded around 0 17.3
Simplified0.9
if -1.7842927315890493e+29 < y < 8.192485547752354e-59Initial program 0.6
rmApplied sub-neg0.6
Applied distribute-lft-in0.6
if 8.192485547752354e-59 < y Initial program 12.4
rmApplied associate-/l*1.1
Final simplification5.4
herbie shell --seed 1978988140
(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)))