\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;a \le -7.228876828185814212701565578115473709341 \cdot 10^{-183}:\\
\;\;\;\;x + \left(y - \left(\left(z - t\right) \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{a - t}}\right)\\
\mathbf{elif}\;a \le 3.206826751751319370953297038795426487923:\\
\;\;\;\;\frac{z \cdot y}{t} + x\\
\mathbf{else}:\\
\;\;\;\;x + \left(y - \frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r471756 = x;
double r471757 = y;
double r471758 = r471756 + r471757;
double r471759 = z;
double r471760 = t;
double r471761 = r471759 - r471760;
double r471762 = r471761 * r471757;
double r471763 = a;
double r471764 = r471763 - r471760;
double r471765 = r471762 / r471764;
double r471766 = r471758 - r471765;
return r471766;
}
double f(double x, double y, double z, double t, double a) {
double r471767 = a;
double r471768 = -7.228876828185814e-183;
bool r471769 = r471767 <= r471768;
double r471770 = x;
double r471771 = y;
double r471772 = z;
double r471773 = t;
double r471774 = r471772 - r471773;
double r471775 = cbrt(r471771);
double r471776 = r471775 * r471775;
double r471777 = r471767 - r471773;
double r471778 = cbrt(r471777);
double r471779 = r471778 * r471778;
double r471780 = r471776 / r471779;
double r471781 = r471774 * r471780;
double r471782 = r471775 / r471778;
double r471783 = r471781 * r471782;
double r471784 = r471771 - r471783;
double r471785 = r471770 + r471784;
double r471786 = 3.2068267517513194;
bool r471787 = r471767 <= r471786;
double r471788 = r471772 * r471771;
double r471789 = r471788 / r471773;
double r471790 = r471789 + r471770;
double r471791 = r471774 / r471779;
double r471792 = r471771 / r471778;
double r471793 = r471791 * r471792;
double r471794 = r471771 - r471793;
double r471795 = r471770 + r471794;
double r471796 = r471787 ? r471790 : r471795;
double r471797 = r471769 ? r471785 : r471796;
return r471797;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.1 |
|---|---|
| Target | 7.8 |
| Herbie | 9.8 |
if a < -7.228876828185814e-183Initial program 15.2
rmApplied *-un-lft-identity15.2
Applied times-frac10.5
Simplified10.5
rmApplied associate--l+8.7
rmApplied add-cube-cbrt10.3
Applied add-cube-cbrt10.5
Applied times-frac10.5
Applied associate-*r*9.2
if -7.228876828185814e-183 < a < 3.2068267517513194Initial program 19.1
Taylor expanded around inf 13.7
if 3.2068267517513194 < a Initial program 13.8
rmApplied *-un-lft-identity13.8
Applied times-frac6.6
Simplified6.6
rmApplied associate--l+5.7
rmApplied add-cube-cbrt6.6
Applied *-un-lft-identity6.6
Applied times-frac6.6
Applied associate-*r*5.9
Simplified5.9
Final simplification9.8
herbie shell --seed 2019362
(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))))