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 r15842822 = x;
double r15842823 = y;
double r15842824 = z;
double r15842825 = t;
double r15842826 = r15842824 - r15842825;
double r15842827 = r15842823 * r15842826;
double r15842828 = a;
double r15842829 = r15842827 / r15842828;
double r15842830 = r15842822 + r15842829;
return r15842830;
}
double f(double x, double y, double z, double t, double a) {
double r15842831 = y;
double r15842832 = -1.7432637471506773e-180;
bool r15842833 = r15842831 <= r15842832;
double r15842834 = x;
double r15842835 = z;
double r15842836 = t;
double r15842837 = r15842835 - r15842836;
double r15842838 = a;
double r15842839 = cbrt(r15842838);
double r15842840 = r15842837 / r15842839;
double r15842841 = r15842839 * r15842839;
double r15842842 = r15842831 / r15842841;
double r15842843 = r15842840 * r15842842;
double r15842844 = r15842834 + r15842843;
double r15842845 = 1.593765271222455e-09;
bool r15842846 = r15842831 <= r15842845;
double r15842847 = 1.0;
double r15842848 = r15842831 * r15842837;
double r15842849 = r15842838 / r15842848;
double r15842850 = r15842847 / r15842849;
double r15842851 = r15842834 + r15842850;
double r15842852 = r15842838 / r15842837;
double r15842853 = r15842831 / r15842852;
double r15842854 = r15842834 + r15842853;
double r15842855 = r15842846 ? r15842851 : r15842854;
double r15842856 = r15842833 ? r15842844 : r15842855;
return r15842856;
}




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)))