x - \frac{y \cdot \left(z - t\right)}{a}\begin{array}{l}
\mathbf{if}\;a \le -1.7970758753613627 \cdot 10^{+105}:\\
\;\;\;\;x - y \cdot \frac{z - t}{a}\\
\mathbf{elif}\;a \le 1.2591825253525602 \cdot 10^{-146}:\\
\;\;\;\;x - \frac{\left(z - t\right) \cdot y}{a}\\
\mathbf{else}:\\
\;\;\;\;x - \frac{y}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{z - t}{\sqrt[3]{a}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r15949676 = x;
double r15949677 = y;
double r15949678 = z;
double r15949679 = t;
double r15949680 = r15949678 - r15949679;
double r15949681 = r15949677 * r15949680;
double r15949682 = a;
double r15949683 = r15949681 / r15949682;
double r15949684 = r15949676 - r15949683;
return r15949684;
}
double f(double x, double y, double z, double t, double a) {
double r15949685 = a;
double r15949686 = -1.7970758753613627e+105;
bool r15949687 = r15949685 <= r15949686;
double r15949688 = x;
double r15949689 = y;
double r15949690 = z;
double r15949691 = t;
double r15949692 = r15949690 - r15949691;
double r15949693 = r15949692 / r15949685;
double r15949694 = r15949689 * r15949693;
double r15949695 = r15949688 - r15949694;
double r15949696 = 1.2591825253525602e-146;
bool r15949697 = r15949685 <= r15949696;
double r15949698 = r15949692 * r15949689;
double r15949699 = r15949698 / r15949685;
double r15949700 = r15949688 - r15949699;
double r15949701 = cbrt(r15949685);
double r15949702 = r15949701 * r15949701;
double r15949703 = r15949689 / r15949702;
double r15949704 = r15949692 / r15949701;
double r15949705 = r15949703 * r15949704;
double r15949706 = r15949688 - r15949705;
double r15949707 = r15949697 ? r15949700 : r15949706;
double r15949708 = r15949687 ? r15949695 : r15949707;
return r15949708;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.5 |
|---|---|
| Target | 0.7 |
| Herbie | 1.8 |
if a < -1.7970758753613627e+105Initial program 11.8
rmApplied *-un-lft-identity11.8
Applied times-frac0.6
Simplified0.6
if -1.7970758753613627e+105 < a < 1.2591825253525602e-146Initial program 2.2
if 1.2591825253525602e-146 < a Initial program 7.5
rmApplied add-cube-cbrt7.9
Applied times-frac2.1
Final simplification1.8
herbie shell --seed 2019165
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, F"
: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)))