\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 r25149819 = x;
double r25149820 = y;
double r25149821 = r25149819 + r25149820;
double r25149822 = z;
double r25149823 = t;
double r25149824 = r25149822 - r25149823;
double r25149825 = r25149824 * r25149820;
double r25149826 = a;
double r25149827 = r25149826 - r25149823;
double r25149828 = r25149825 / r25149827;
double r25149829 = r25149821 - r25149828;
return r25149829;
}
double f(double x, double y, double z, double t, double a) {
double r25149830 = a;
double r25149831 = -2.1004557266615806e-151;
bool r25149832 = r25149830 <= r25149831;
double r25149833 = x;
double r25149834 = y;
double r25149835 = z;
double r25149836 = t;
double r25149837 = r25149835 - r25149836;
double r25149838 = cbrt(r25149837);
double r25149839 = r25149830 - r25149836;
double r25149840 = cbrt(r25149839);
double r25149841 = r25149840 * r25149840;
double r25149842 = cbrt(r25149841);
double r25149843 = r25149838 / r25149842;
double r25149844 = r25149838 / r25149840;
double r25149845 = r25149834 / r25149840;
double r25149846 = r25149844 * r25149845;
double r25149847 = cbrt(r25149840);
double r25149848 = r25149838 / r25149847;
double r25149849 = r25149846 * r25149848;
double r25149850 = r25149843 * r25149849;
double r25149851 = r25149834 - r25149850;
double r25149852 = r25149833 + r25149851;
double r25149853 = 7.050287584713671e-215;
bool r25149854 = r25149830 <= r25149853;
double r25149855 = r25149834 * r25149835;
double r25149856 = r25149855 / r25149836;
double r25149857 = r25149833 + r25149856;
double r25149858 = r25149854 ? r25149857 : r25149852;
double r25149859 = r25149832 ? r25149852 : r25149858;
return r25149859;
}




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))))