\frac{x}{y} \cdot \left(z - t\right) + t\begin{array}{l}
\mathbf{if}\;t \le -2.429342480740140650041385945281389977987 \cdot 10^{-176} \lor \neg \left(t \le 3.038275486400102813641711171286818002615 \cdot 10^{-154}\right):\\
\;\;\;\;t + \left(z - t\right) \cdot \frac{x}{y}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{\frac{y}{z - t}} + t\\
\end{array}double f(double x, double y, double z, double t) {
double r359251 = x;
double r359252 = y;
double r359253 = r359251 / r359252;
double r359254 = z;
double r359255 = t;
double r359256 = r359254 - r359255;
double r359257 = r359253 * r359256;
double r359258 = r359257 + r359255;
return r359258;
}
double f(double x, double y, double z, double t) {
double r359259 = t;
double r359260 = -2.4293424807401407e-176;
bool r359261 = r359259 <= r359260;
double r359262 = 3.038275486400103e-154;
bool r359263 = r359259 <= r359262;
double r359264 = !r359263;
bool r359265 = r359261 || r359264;
double r359266 = z;
double r359267 = r359266 - r359259;
double r359268 = x;
double r359269 = y;
double r359270 = r359268 / r359269;
double r359271 = r359267 * r359270;
double r359272 = r359259 + r359271;
double r359273 = r359269 / r359267;
double r359274 = r359268 / r359273;
double r359275 = r359274 + r359259;
double r359276 = r359265 ? r359272 : r359275;
return r359276;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.1 |
|---|---|
| Target | 2.4 |
| Herbie | 1.8 |
if t < -2.4293424807401407e-176 or 3.038275486400103e-154 < t Initial program 0.9
if -2.4293424807401407e-176 < t < 3.038275486400103e-154Initial program 5.6
rmApplied *-un-lft-identity5.6
Applied *-un-lft-identity5.6
Applied times-frac5.6
Applied associate-*l*5.6
Simplified4.6
Final simplification1.8
herbie shell --seed 2019194
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
: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))