\frac{x}{y} \cdot \left(z - t\right) + t\begin{array}{l}
\mathbf{if}\;x \le -2.2597023320458045 \cdot 10^{76} \lor \neg \left(x \le 685516672564733568\right):\\
\;\;\;\;t + \left(\frac{\sqrt[3]{x}}{y} \cdot \left(z - t\right)\right) \cdot \left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{x \cdot \left(z - t\right)}{y} + t\\
\end{array}double code(double x, double y, double z, double t) {
return ((double) (((double) ((x / y) * ((double) (z - t)))) + t));
}
double code(double x, double y, double z, double t) {
double VAR;
if (((x <= -2.2597023320458045e+76) || !(x <= 6.855166725647336e+17))) {
VAR = ((double) (t + ((double) (((double) ((((double) cbrt(x)) / y) * ((double) (z - t)))) * ((double) (((double) cbrt(x)) * ((double) cbrt(x))))))));
} else {
VAR = ((double) ((((double) (x * ((double) (z - t)))) / y) + t));
}
return VAR;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.2 |
|---|---|
| Target | 2.4 |
| Herbie | 1.7 |
if x < -2.2597023320458045e76 or 685516672564733568 < x Initial program 4.8
rmApplied *-un-lft-identity4.8
Applied add-cube-cbrt5.5
Applied times-frac5.5
Applied associate-*l*2.3
if -2.2597023320458045e76 < x < 685516672564733568Initial program 1.0
rmApplied associate-*l/1.4
Final simplification1.7
herbie shell --seed 2020182
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(if (< z 2.759456554562692e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))
(+ (* (/ x y) (- z t)) t))