\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t} \le -4.5495847408092521 \cdot 10^{-213}:\\
\;\;\;\;x + \left(y - \left(\left(z - t\right) \cdot \frac{\frac{\frac{1}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}}\right) \cdot \frac{\frac{\frac{y}{\sqrt[3]{\sqrt[3]{a - t}}}}{\sqrt[3]{\sqrt[3]{a - t}}}}{\sqrt[3]{\sqrt[3]{a - t}}}\right)\\
\mathbf{elif}\;\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t} \le 3.97803588627699 \cdot 10^{-275}:\\
\;\;\;\;\frac{z \cdot y}{t} + x\\
\mathbf{else}:\\
\;\;\;\;x + \left(y - \left(\left(z - t\right) \cdot \frac{\frac{\sqrt[3]{\frac{y}{\sqrt[3]{a - t}}} \cdot \sqrt[3]{\frac{y}{\sqrt[3]{a - t}}}}{\sqrt[3]{1}}}{\sqrt[3]{\sqrt[3]{a - t}} \cdot \sqrt[3]{\sqrt[3]{a - t}}}\right) \cdot \frac{\frac{\sqrt[3]{\frac{y}{\sqrt[3]{a - t}}}}{\sqrt[3]{a - t}}}{\sqrt[3]{\sqrt[3]{a - t}}}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r686393 = x;
double r686394 = y;
double r686395 = r686393 + r686394;
double r686396 = z;
double r686397 = t;
double r686398 = r686396 - r686397;
double r686399 = r686398 * r686394;
double r686400 = a;
double r686401 = r686400 - r686397;
double r686402 = r686399 / r686401;
double r686403 = r686395 - r686402;
return r686403;
}
double f(double x, double y, double z, double t, double a) {
double r686404 = x;
double r686405 = y;
double r686406 = r686404 + r686405;
double r686407 = z;
double r686408 = t;
double r686409 = r686407 - r686408;
double r686410 = r686409 * r686405;
double r686411 = a;
double r686412 = r686411 - r686408;
double r686413 = r686410 / r686412;
double r686414 = r686406 - r686413;
double r686415 = -4.549584740809252e-213;
bool r686416 = r686414 <= r686415;
double r686417 = 1.0;
double r686418 = cbrt(r686412);
double r686419 = r686418 * r686418;
double r686420 = cbrt(r686419);
double r686421 = r686417 / r686420;
double r686422 = r686421 / r686420;
double r686423 = r686422 / r686420;
double r686424 = r686409 * r686423;
double r686425 = cbrt(r686418);
double r686426 = r686405 / r686425;
double r686427 = r686426 / r686425;
double r686428 = r686427 / r686425;
double r686429 = r686424 * r686428;
double r686430 = r686405 - r686429;
double r686431 = r686404 + r686430;
double r686432 = 3.978035886276994e-275;
bool r686433 = r686414 <= r686432;
double r686434 = r686407 * r686405;
double r686435 = r686434 / r686408;
double r686436 = r686435 + r686404;
double r686437 = r686405 / r686418;
double r686438 = cbrt(r686437);
double r686439 = r686438 * r686438;
double r686440 = cbrt(r686417);
double r686441 = r686439 / r686440;
double r686442 = r686425 * r686425;
double r686443 = r686441 / r686442;
double r686444 = r686409 * r686443;
double r686445 = r686438 / r686418;
double r686446 = r686445 / r686425;
double r686447 = r686444 * r686446;
double r686448 = r686405 - r686447;
double r686449 = r686404 + r686448;
double r686450 = r686433 ? r686436 : r686449;
double r686451 = r686416 ? r686431 : r686450;
return r686451;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.9 |
|---|---|
| Target | 8.4 |
| Herbie | 8.5 |
if (- (+ x y) (/ (* (- z t) y) (- a t))) < -4.549584740809252e-213Initial program 12.9
rmApplied add-cube-cbrt13.1
Applied times-frac7.6
rmApplied associate--l+7.2
rmApplied div-inv7.3
Applied associate-*l*7.9
Simplified7.9
rmApplied add-cube-cbrt8.0
Applied cbrt-prod8.0
Applied add-cube-cbrt8.0
Applied cbrt-prod8.0
Applied add-cube-cbrt8.1
Applied cbrt-prod8.3
Applied *-un-lft-identity8.3
Applied times-frac8.2
Applied times-frac8.2
Applied times-frac8.2
Applied associate-*r*7.6
if -4.549584740809252e-213 < (- (+ x y) (/ (* (- z t) y) (- a t))) < 3.978035886276994e-275Initial program 55.5
Taylor expanded around inf 19.5
if 3.978035886276994e-275 < (- (+ x y) (/ (* (- z t) y) (- a t))) Initial program 12.8
rmApplied add-cube-cbrt13.0
Applied times-frac7.3
rmApplied associate--l+6.9
rmApplied div-inv6.9
Applied associate-*l*7.6
Simplified7.7
rmApplied add-cube-cbrt7.8
Applied *-un-lft-identity7.8
Applied cbrt-prod7.8
Applied add-cube-cbrt7.9
Applied times-frac7.9
Applied times-frac7.8
Applied associate-*r*7.1
Final simplification8.5
herbie shell --seed 2020035
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, B"
:precision binary64
:herbie-target
(if (< (- (+ x y) (/ (* (- z t) y) (- a t))) -1.3664970889390727e-07) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y)) (if (< (- (+ x y) (/ (* (- z t) y) (- a t))) 1.4754293444577233e-239) (/ (- (* y (- a z)) (* x t)) (- a t)) (- (+ y x) (* (* (- z t) (/ 1 (- a t))) y))))
(- (+ x y) (/ (* (- z t) y) (- a t))))