x + \frac{y \cdot \left(z - t\right)}{a}\begin{array}{l}
\mathbf{if}\;y \le -1.7432637471506773 \cdot 10^{-180}:\\
\;\;\;\;x + \frac{z - t}{\sqrt[3]{a}} \cdot \frac{y}{\sqrt[3]{a} \cdot \sqrt[3]{a}}\\
\mathbf{elif}\;y \le 1.593765271222455 \cdot 10^{-09}:\\
\;\;\;\;x + \frac{1}{\frac{a}{y \cdot \left(z - t\right)}}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y}{\frac{a}{z - t}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r19014477 = x;
double r19014478 = y;
double r19014479 = z;
double r19014480 = t;
double r19014481 = r19014479 - r19014480;
double r19014482 = r19014478 * r19014481;
double r19014483 = a;
double r19014484 = r19014482 / r19014483;
double r19014485 = r19014477 + r19014484;
return r19014485;
}
double f(double x, double y, double z, double t, double a) {
double r19014486 = y;
double r19014487 = -1.7432637471506773e-180;
bool r19014488 = r19014486 <= r19014487;
double r19014489 = x;
double r19014490 = z;
double r19014491 = t;
double r19014492 = r19014490 - r19014491;
double r19014493 = a;
double r19014494 = cbrt(r19014493);
double r19014495 = r19014492 / r19014494;
double r19014496 = r19014494 * r19014494;
double r19014497 = r19014486 / r19014496;
double r19014498 = r19014495 * r19014497;
double r19014499 = r19014489 + r19014498;
double r19014500 = 1.593765271222455e-09;
bool r19014501 = r19014486 <= r19014500;
double r19014502 = 1.0;
double r19014503 = r19014486 * r19014492;
double r19014504 = r19014493 / r19014503;
double r19014505 = r19014502 / r19014504;
double r19014506 = r19014489 + r19014505;
double r19014507 = r19014493 / r19014492;
double r19014508 = r19014486 / r19014507;
double r19014509 = r19014489 + r19014508;
double r19014510 = r19014501 ? r19014506 : r19014509;
double r19014511 = r19014488 ? r19014499 : r19014510;
return r19014511;
}




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 | 1.1 |
if y < -1.7432637471506773e-180Initial program 8.4
rmApplied add-cube-cbrt8.9
Applied times-frac2.1
if -1.7432637471506773e-180 < y < 1.593765271222455e-09Initial program 0.4
rmApplied clear-num0.5
if 1.593765271222455e-09 < y Initial program 14.4
rmApplied associate-/l*0.7
Final simplification1.1
herbie shell --seed 2019163
(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 (/ (/ a (- z t)) y))) (if (< y 2.894426862792089e-49) (+ x (/ (* y (- z t)) a)) (+ x (/ y (/ a (- z t))))))
(+ x (/ (* y (- z t)) a)))