\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;t \le -2.1392755824805588 \cdot 10^{116} \lor \neg \left(t \le 1.01062669764849681 \cdot 10^{51}\right):\\
\;\;\;\;\frac{z \cdot y}{t} + x\\
\mathbf{else}:\\
\;\;\;\;\left(x + y\right) - \left(\frac{1}{\sqrt[3]{a - t}} \cdot \left(\frac{z - t}{\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)\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{\sqrt[3]{a - t}}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r581746 = x;
double r581747 = y;
double r581748 = r581746 + r581747;
double r581749 = z;
double r581750 = t;
double r581751 = r581749 - r581750;
double r581752 = r581751 * r581747;
double r581753 = a;
double r581754 = r581753 - r581750;
double r581755 = r581752 / r581754;
double r581756 = r581748 - r581755;
return r581756;
}
double f(double x, double y, double z, double t, double a) {
double r581757 = t;
double r581758 = -2.1392755824805588e+116;
bool r581759 = r581757 <= r581758;
double r581760 = 1.0106266976484968e+51;
bool r581761 = r581757 <= r581760;
double r581762 = !r581761;
bool r581763 = r581759 || r581762;
double r581764 = z;
double r581765 = y;
double r581766 = r581764 * r581765;
double r581767 = r581766 / r581757;
double r581768 = x;
double r581769 = r581767 + r581768;
double r581770 = r581768 + r581765;
double r581771 = 1.0;
double r581772 = a;
double r581773 = r581772 - r581757;
double r581774 = cbrt(r581773);
double r581775 = r581771 / r581774;
double r581776 = r581764 - r581757;
double r581777 = r581776 / r581774;
double r581778 = cbrt(r581765);
double r581779 = r581778 * r581778;
double r581780 = cbrt(r581774);
double r581781 = r581780 * r581780;
double r581782 = r581779 / r581781;
double r581783 = r581777 * r581782;
double r581784 = r581775 * r581783;
double r581785 = r581778 / r581780;
double r581786 = r581784 * r581785;
double r581787 = r581770 - r581786;
double r581788 = r581763 ? r581769 : r581787;
return r581788;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.3 |
|---|---|
| Target | 8.6 |
| Herbie | 10.1 |
if t < -2.1392755824805588e+116 or 1.0106266976484968e+51 < t Initial program 29.5
Taylor expanded around inf 17.4
if -2.1392755824805588e+116 < t < 1.0106266976484968e+51Initial program 7.7
rmApplied add-cube-cbrt7.9
Applied times-frac6.1
rmApplied add-cube-cbrt6.2
Applied add-cube-cbrt6.2
Applied times-frac6.2
Applied associate-*r*5.9
rmApplied *-un-lft-identity5.9
Applied times-frac5.9
Applied associate-*l*5.3
Final simplification10.1
herbie shell --seed 2020024
(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))))