\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;a \le -5.0892061953826007 \cdot 10^{-142}:\\
\;\;\;\;x + \left(y - \left(\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t}} \cdot \sqrt[3]{\sqrt[3]{a - t}}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t}}}\right)\\
\mathbf{elif}\;a \le 1.6745009116298949 \cdot 10^{-272}:\\
\;\;\;\;x + \frac{z \cdot y}{t}\\
\mathbf{elif}\;a \le 2.475987323717541 \cdot 10^{-180}:\\
\;\;\;\;\left(x + y\right) - \left(z - t\right) \cdot \frac{y}{a - t}\\
\mathbf{elif}\;a \le 2.96691100945856406 \cdot 10^{-48}:\\
\;\;\;\;x + \frac{z \cdot y}{t}\\
\mathbf{else}:\\
\;\;\;\;x + \left(y - \left(\frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t}} \cdot \sqrt[3]{\sqrt[3]{a - t}}}\right) \cdot \frac{\left(\sqrt[3]{\sqrt[3]{y}} \cdot \sqrt[3]{\sqrt[3]{y}}\right) \cdot \sqrt[3]{\sqrt[3]{y}}}{\sqrt[3]{\sqrt[3]{a - t}}}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r655868 = x;
double r655869 = y;
double r655870 = r655868 + r655869;
double r655871 = z;
double r655872 = t;
double r655873 = r655871 - r655872;
double r655874 = r655873 * r655869;
double r655875 = a;
double r655876 = r655875 - r655872;
double r655877 = r655874 / r655876;
double r655878 = r655870 - r655877;
return r655878;
}
double f(double x, double y, double z, double t, double a) {
double r655879 = a;
double r655880 = -5.089206195382601e-142;
bool r655881 = r655879 <= r655880;
double r655882 = x;
double r655883 = y;
double r655884 = z;
double r655885 = t;
double r655886 = r655884 - r655885;
double r655887 = r655879 - r655885;
double r655888 = cbrt(r655887);
double r655889 = r655888 * r655888;
double r655890 = r655886 / r655889;
double r655891 = cbrt(r655883);
double r655892 = r655891 * r655891;
double r655893 = cbrt(r655888);
double r655894 = r655893 * r655893;
double r655895 = r655892 / r655894;
double r655896 = r655890 * r655895;
double r655897 = r655891 / r655893;
double r655898 = r655896 * r655897;
double r655899 = r655883 - r655898;
double r655900 = r655882 + r655899;
double r655901 = 1.674500911629895e-272;
bool r655902 = r655879 <= r655901;
double r655903 = r655884 * r655883;
double r655904 = r655903 / r655885;
double r655905 = r655882 + r655904;
double r655906 = 2.475987323717541e-180;
bool r655907 = r655879 <= r655906;
double r655908 = r655882 + r655883;
double r655909 = r655883 / r655887;
double r655910 = r655886 * r655909;
double r655911 = r655908 - r655910;
double r655912 = 2.966911009458564e-48;
bool r655913 = r655879 <= r655912;
double r655914 = cbrt(r655891);
double r655915 = r655914 * r655914;
double r655916 = r655915 * r655914;
double r655917 = r655916 / r655893;
double r655918 = r655896 * r655917;
double r655919 = r655883 - r655918;
double r655920 = r655882 + r655919;
double r655921 = r655913 ? r655905 : r655920;
double r655922 = r655907 ? r655911 : r655921;
double r655923 = r655902 ? r655905 : r655922;
double r655924 = r655881 ? r655900 : r655923;
return r655924;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.8 |
|---|---|
| Target | 8.6 |
| Herbie | 9.7 |
if a < -5.089206195382601e-142Initial program 15.2
rmApplied add-cube-cbrt15.3
Applied times-frac8.6
rmApplied associate--l+8.1
rmApplied add-cube-cbrt8.3
Applied add-cube-cbrt8.3
Applied times-frac8.3
Applied associate-*r*8.0
if -5.089206195382601e-142 < a < 1.674500911629895e-272 or 2.475987323717541e-180 < a < 2.966911009458564e-48Initial program 20.8
rmApplied add-cube-cbrt21.1
Applied times-frac20.4
rmApplied associate--l+19.0
Taylor expanded around inf 13.1
if 1.674500911629895e-272 < a < 2.475987323717541e-180Initial program 20.5
rmApplied *-un-lft-identity20.5
Applied times-frac17.5
Simplified17.5
if 2.966911009458564e-48 < a Initial program 14.8
rmApplied add-cube-cbrt14.9
Applied times-frac7.4
rmApplied associate--l+7.0
rmApplied add-cube-cbrt7.2
Applied add-cube-cbrt7.3
Applied times-frac7.3
Applied associate-*r*7.2
rmApplied add-cube-cbrt7.3
Final simplification9.7
herbie shell --seed 2020083
(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))))