\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;a \le -0.1719272129792268344328221019168267957866:\\
\;\;\;\;\left(x + y\right) - \left(\sqrt[3]{\frac{z - t}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \sqrt[3]{\sqrt[3]{a - t}}}} \cdot \sqrt[3]{\frac{z - t}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \sqrt[3]{\sqrt[3]{a - t}}}}\right) \cdot \left(\sqrt[3]{\frac{z - t}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \sqrt[3]{\sqrt[3]{a - t}}}} \cdot \frac{y}{\sqrt[3]{a - t}}\right)\\
\mathbf{elif}\;a \le 9.681339001705814034487368068305981538246 \cdot 10^{-139}:\\
\;\;\;\;\frac{z \cdot y}{t} + x\\
\mathbf{else}:\\
\;\;\;\;\left(x + y\right) - \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{a - t} \cdot \sqrt[3]{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}} \cdot \left(\frac{\sqrt[3]{z - t}}{\sqrt[3]{\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 r479794 = x;
double r479795 = y;
double r479796 = r479794 + r479795;
double r479797 = z;
double r479798 = t;
double r479799 = r479797 - r479798;
double r479800 = r479799 * r479795;
double r479801 = a;
double r479802 = r479801 - r479798;
double r479803 = r479800 / r479802;
double r479804 = r479796 - r479803;
return r479804;
}
double f(double x, double y, double z, double t, double a) {
double r479805 = a;
double r479806 = -0.17192721297922683;
bool r479807 = r479805 <= r479806;
double r479808 = x;
double r479809 = y;
double r479810 = r479808 + r479809;
double r479811 = z;
double r479812 = t;
double r479813 = r479811 - r479812;
double r479814 = r479805 - r479812;
double r479815 = cbrt(r479814);
double r479816 = r479815 * r479815;
double r479817 = cbrt(r479816);
double r479818 = r479815 * r479817;
double r479819 = cbrt(r479815);
double r479820 = r479818 * r479819;
double r479821 = r479813 / r479820;
double r479822 = cbrt(r479821);
double r479823 = r479822 * r479822;
double r479824 = r479809 / r479815;
double r479825 = r479822 * r479824;
double r479826 = r479823 * r479825;
double r479827 = r479810 - r479826;
double r479828 = 9.681339001705814e-139;
bool r479829 = r479805 <= r479828;
double r479830 = r479811 * r479809;
double r479831 = r479830 / r479812;
double r479832 = r479831 + r479808;
double r479833 = cbrt(r479813);
double r479834 = r479833 * r479833;
double r479835 = r479834 / r479818;
double r479836 = r479833 / r479819;
double r479837 = r479836 * r479824;
double r479838 = r479835 * r479837;
double r479839 = r479810 - r479838;
double r479840 = r479829 ? r479832 : r479839;
double r479841 = r479807 ? r479827 : r479840;
return r479841;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.4 |
|---|---|
| Target | 8.4 |
| Herbie | 10.2 |
if a < -0.17192721297922683Initial program 14.4
rmApplied add-cube-cbrt14.5
Applied times-frac5.9
rmApplied add-cube-cbrt5.9
Applied cbrt-prod5.9
Applied associate-*r*5.9
rmApplied add-cube-cbrt5.9
Applied associate-*l*5.9
if -0.17192721297922683 < a < 9.681339001705814e-139Initial program 19.2
Taylor expanded around inf 14.3
if 9.681339001705814e-139 < a Initial program 15.2
rmApplied add-cube-cbrt15.3
Applied times-frac9.4
rmApplied add-cube-cbrt9.4
Applied cbrt-prod9.4
Applied associate-*r*9.4
rmApplied add-cube-cbrt9.5
Applied times-frac9.5
Applied associate-*l*9.2
Final simplification10.2
herbie shell --seed 2019350
(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))))