x + \frac{y \cdot \left(z - t\right)}{a}\begin{array}{l}
\mathbf{if}\;y \cdot \left(z - t\right) \le -1.091631506502542157480520102888531476655 \cdot 10^{305}:\\
\;\;\;\;x + y \cdot \frac{z - t}{a}\\
\mathbf{elif}\;y \cdot \left(z - t\right) \le 7.843751749471894793264472097780927032588 \cdot 10^{196}:\\
\;\;\;\;x + \frac{y \cdot \left(z - t\right)}{a}\\
\mathbf{else}:\\
\;\;\;\;x + 1 \cdot \frac{z - t}{\frac{a}{y}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r360213 = x;
double r360214 = y;
double r360215 = z;
double r360216 = t;
double r360217 = r360215 - r360216;
double r360218 = r360214 * r360217;
double r360219 = a;
double r360220 = r360218 / r360219;
double r360221 = r360213 + r360220;
return r360221;
}
double f(double x, double y, double z, double t, double a) {
double r360222 = y;
double r360223 = z;
double r360224 = t;
double r360225 = r360223 - r360224;
double r360226 = r360222 * r360225;
double r360227 = -1.0916315065025422e+305;
bool r360228 = r360226 <= r360227;
double r360229 = x;
double r360230 = a;
double r360231 = r360225 / r360230;
double r360232 = r360222 * r360231;
double r360233 = r360229 + r360232;
double r360234 = 7.843751749471895e+196;
bool r360235 = r360226 <= r360234;
double r360236 = r360226 / r360230;
double r360237 = r360229 + r360236;
double r360238 = 1.0;
double r360239 = r360230 / r360222;
double r360240 = r360225 / r360239;
double r360241 = r360238 * r360240;
double r360242 = r360229 + r360241;
double r360243 = r360235 ? r360237 : r360242;
double r360244 = r360228 ? r360233 : r360243;
return r360244;
}




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.7 |
| Herbie | 0.5 |
if (* y (- z t)) < -1.0916315065025422e+305Initial program 61.4
rmApplied *-un-lft-identity61.4
Applied times-frac0.3
Simplified0.3
if -1.0916315065025422e+305 < (* y (- z t)) < 7.843751749471895e+196Initial program 0.4
if 7.843751749471895e+196 < (* y (- z t)) Initial program 27.8
rmApplied clear-num27.8
rmApplied associate-/r*0.8
rmApplied *-un-lft-identity0.8
Applied *-un-lft-identity0.8
Applied *-un-lft-identity0.8
Applied times-frac0.8
Applied times-frac0.8
Applied add-cube-cbrt0.8
Applied times-frac0.8
Simplified0.8
Simplified0.8
Final simplification0.5
herbie shell --seed 2019356
(FPCore (x y z t a)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, E"
:precision binary64
: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)))