x + \frac{y \cdot \left(z - t\right)}{a}\begin{array}{l}
\mathbf{if}\;y \le -2.1598157602590286 \cdot 10^{43} \lor \neg \left(y \le 7.79103133515010313 \cdot 10^{41}\right):\\
\;\;\;\;x + \frac{z - t}{a} \cdot y\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y \cdot \left(z - t\right)}{a}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r299444 = x;
double r299445 = y;
double r299446 = z;
double r299447 = t;
double r299448 = r299446 - r299447;
double r299449 = r299445 * r299448;
double r299450 = a;
double r299451 = r299449 / r299450;
double r299452 = r299444 + r299451;
return r299452;
}
double f(double x, double y, double z, double t, double a) {
double r299453 = y;
double r299454 = -2.1598157602590286e+43;
bool r299455 = r299453 <= r299454;
double r299456 = 7.791031335150103e+41;
bool r299457 = r299453 <= r299456;
double r299458 = !r299457;
bool r299459 = r299455 || r299458;
double r299460 = x;
double r299461 = z;
double r299462 = t;
double r299463 = r299461 - r299462;
double r299464 = a;
double r299465 = r299463 / r299464;
double r299466 = r299465 * r299453;
double r299467 = r299460 + r299466;
double r299468 = r299453 * r299463;
double r299469 = r299468 / r299464;
double r299470 = r299460 + r299469;
double r299471 = r299459 ? r299467 : r299470;
return r299471;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.1 |
|---|---|
| Target | 0.6 |
| Herbie | 0.6 |
if y < -2.1598157602590286e+43 or 7.791031335150103e+41 < y Initial program 18.1
rmApplied div-inv18.2
rmApplied pow118.2
Applied pow118.2
Applied pow118.2
Applied pow-prod-down18.2
Applied pow-prod-down18.2
Simplified0.9
if -2.1598157602590286e+43 < y < 7.791031335150103e+41Initial program 0.5
Final simplification0.6
herbie shell --seed 2019199
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, E"
:herbie-target
(if (< y -1.0761266216389975e-10) (+ x (/ 1.0 (/ (/ a (- z t)) y))) (if (< y 2.894426862792089e-49) (+ x (/ (* y (- z t)) a)) (+ x (/ y (/ a (- z t))))))
(+ x (/ (* y (- z t)) a)))