\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;a \le -2.100455726661580592884813505585211088656 \cdot 10^{-151}:\\
\;\;\;\;x + \left(y - \frac{\sqrt[3]{z - t}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}} \cdot \left(\left(\frac{\sqrt[3]{z - t}}{\sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{\sqrt[3]{a - t}}}\right)\right)\\
\mathbf{elif}\;a \le 7.050287584713671167902036548554306331866 \cdot 10^{-215}:\\
\;\;\;\;x + \frac{y \cdot z}{t}\\
\mathbf{else}:\\
\;\;\;\;x + \left(y - \frac{\sqrt[3]{z - t}}{\sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}} \cdot \left(\left(\frac{\sqrt[3]{z - t}}{\sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{\sqrt[3]{a - t}}}\right)\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r26634516 = x;
double r26634517 = y;
double r26634518 = r26634516 + r26634517;
double r26634519 = z;
double r26634520 = t;
double r26634521 = r26634519 - r26634520;
double r26634522 = r26634521 * r26634517;
double r26634523 = a;
double r26634524 = r26634523 - r26634520;
double r26634525 = r26634522 / r26634524;
double r26634526 = r26634518 - r26634525;
return r26634526;
}
double f(double x, double y, double z, double t, double a) {
double r26634527 = a;
double r26634528 = -2.1004557266615806e-151;
bool r26634529 = r26634527 <= r26634528;
double r26634530 = x;
double r26634531 = y;
double r26634532 = z;
double r26634533 = t;
double r26634534 = r26634532 - r26634533;
double r26634535 = cbrt(r26634534);
double r26634536 = r26634527 - r26634533;
double r26634537 = cbrt(r26634536);
double r26634538 = r26634537 * r26634537;
double r26634539 = cbrt(r26634538);
double r26634540 = r26634535 / r26634539;
double r26634541 = r26634535 / r26634537;
double r26634542 = r26634531 / r26634537;
double r26634543 = r26634541 * r26634542;
double r26634544 = cbrt(r26634537);
double r26634545 = r26634535 / r26634544;
double r26634546 = r26634543 * r26634545;
double r26634547 = r26634540 * r26634546;
double r26634548 = r26634531 - r26634547;
double r26634549 = r26634530 + r26634548;
double r26634550 = 7.050287584713671e-215;
bool r26634551 = r26634527 <= r26634550;
double r26634552 = r26634531 * r26634532;
double r26634553 = r26634552 / r26634533;
double r26634554 = r26634530 + r26634553;
double r26634555 = r26634551 ? r26634554 : r26634549;
double r26634556 = r26634529 ? r26634549 : r26634555;
return r26634556;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.5 |
|---|---|
| Target | 8.1 |
| Herbie | 8.4 |
if a < -2.1004557266615806e-151 or 7.050287584713671e-215 < a Initial program 15.6
rmApplied add-cube-cbrt15.7
Applied times-frac9.7
rmApplied add-cube-cbrt9.8
Applied times-frac9.8
Applied associate-*l*9.4
rmApplied add-cube-cbrt9.4
Applied cbrt-prod9.4
Applied times-frac9.4
Applied associate-*l*9.4
rmApplied associate--l+8.4
if -2.1004557266615806e-151 < a < 7.050287584713671e-215Initial program 20.6
Taylor expanded around inf 8.4
Final simplification8.4
herbie shell --seed 2019172
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, B"
:herbie-target
(if (< (- (+ x y) (/ (* (- z t) y) (- a t))) -1.3664970889390727e-07) (- (+ y x) (* (* (- z t) (/ 1.0 (- 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.0 (- a t))) y))))
(- (+ x y) (/ (* (- z t) y) (- a t))))