x - \frac{y \cdot \left(z - t\right)}{a}\begin{array}{l}
\mathbf{if}\;a \le -1.0435501163087303 \cdot 10^{-16}:\\
\;\;\;\;x - \frac{y}{\frac{a}{z - t}}\\
\mathbf{elif}\;a \le 1.3920873544366965 \cdot 10^{-146}:\\
\;\;\;\;x - \frac{1}{\frac{a}{\left(z - t\right) \cdot y}}\\
\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 r19495005 = x;
double r19495006 = y;
double r19495007 = z;
double r19495008 = t;
double r19495009 = r19495007 - r19495008;
double r19495010 = r19495006 * r19495009;
double r19495011 = a;
double r19495012 = r19495010 / r19495011;
double r19495013 = r19495005 - r19495012;
return r19495013;
}
double f(double x, double y, double z, double t, double a) {
double r19495014 = a;
double r19495015 = -1.0435501163087303e-16;
bool r19495016 = r19495014 <= r19495015;
double r19495017 = x;
double r19495018 = y;
double r19495019 = z;
double r19495020 = t;
double r19495021 = r19495019 - r19495020;
double r19495022 = r19495014 / r19495021;
double r19495023 = r19495018 / r19495022;
double r19495024 = r19495017 - r19495023;
double r19495025 = 1.3920873544366965e-146;
bool r19495026 = r19495014 <= r19495025;
double r19495027 = 1.0;
double r19495028 = r19495021 * r19495018;
double r19495029 = r19495014 / r19495028;
double r19495030 = r19495027 / r19495029;
double r19495031 = r19495017 - r19495030;
double r19495032 = cbrt(r19495014);
double r19495033 = r19495032 * r19495032;
double r19495034 = r19495018 / r19495033;
double r19495035 = r19495021 / r19495032;
double r19495036 = r19495034 * r19495035;
double r19495037 = r19495017 - r19495036;
double r19495038 = r19495026 ? r19495031 : r19495037;
double r19495039 = r19495016 ? r19495024 : r19495038;
return r19495039;
}




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.3 |
if a < -1.0435501163087303e-16Initial program 8.9
rmApplied associate-/l*0.5
if -1.0435501163087303e-16 < a < 1.3920873544366965e-146Initial program 0.8
rmApplied clear-num0.9
if 1.3920873544366965e-146 < a Initial program 7.1
rmApplied add-cube-cbrt7.5
Applied times-frac2.1
Final simplification1.3
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 (/ (/ a (- z t)) y))) (if (< y 2.894426862792089e-49) (- x (/ (* y (- z t)) a)) (- x (/ y (/ a (- z t))))))
(- x (/ (* y (- z t)) a)))