\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;a \le -1.215811501436430229517507639617501300283 \cdot 10^{-173}:\\
\;\;\;\;\left(y - \frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\right) + x\\
\mathbf{elif}\;a \le 8.001727821135775174949972331228956921041 \cdot 10^{-216}:\\
\;\;\;\;x + \frac{y \cdot z}{t}\\
\mathbf{else}:\\
\;\;\;\;\left(y - \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{a - t}} \cdot \left(\frac{\sqrt[3]{\sqrt[3]{z - t}} \cdot \left(\sqrt[3]{\sqrt[3]{z - t}} \cdot \sqrt[3]{\sqrt[3]{z - t}}\right)}{\sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\right)\right) + x\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r29120149 = x;
double r29120150 = y;
double r29120151 = r29120149 + r29120150;
double r29120152 = z;
double r29120153 = t;
double r29120154 = r29120152 - r29120153;
double r29120155 = r29120154 * r29120150;
double r29120156 = a;
double r29120157 = r29120156 - r29120153;
double r29120158 = r29120155 / r29120157;
double r29120159 = r29120151 - r29120158;
return r29120159;
}
double f(double x, double y, double z, double t, double a) {
double r29120160 = a;
double r29120161 = -1.2158115014364302e-173;
bool r29120162 = r29120160 <= r29120161;
double r29120163 = y;
double r29120164 = z;
double r29120165 = t;
double r29120166 = r29120164 - r29120165;
double r29120167 = r29120160 - r29120165;
double r29120168 = cbrt(r29120167);
double r29120169 = r29120168 * r29120168;
double r29120170 = r29120166 / r29120169;
double r29120171 = r29120163 / r29120168;
double r29120172 = r29120170 * r29120171;
double r29120173 = r29120163 - r29120172;
double r29120174 = x;
double r29120175 = r29120173 + r29120174;
double r29120176 = 8.001727821135775e-216;
bool r29120177 = r29120160 <= r29120176;
double r29120178 = r29120163 * r29120164;
double r29120179 = r29120178 / r29120165;
double r29120180 = r29120174 + r29120179;
double r29120181 = cbrt(r29120166);
double r29120182 = r29120181 * r29120181;
double r29120183 = r29120182 / r29120168;
double r29120184 = cbrt(r29120181);
double r29120185 = r29120184 * r29120184;
double r29120186 = r29120184 * r29120185;
double r29120187 = r29120186 / r29120168;
double r29120188 = r29120187 * r29120171;
double r29120189 = r29120183 * r29120188;
double r29120190 = r29120163 - r29120189;
double r29120191 = r29120190 + r29120174;
double r29120192 = r29120177 ? r29120180 : r29120191;
double r29120193 = r29120162 ? r29120175 : r29120192;
return r29120193;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.6 |
|---|---|
| Target | 8.7 |
| Herbie | 9.1 |
if a < -1.2158115014364302e-173Initial program 14.6
rmApplied add-cube-cbrt14.7
Applied times-frac9.2
rmApplied associate--l+8.8
if -1.2158115014364302e-173 < a < 8.001727821135775e-216Initial program 21.3
Taylor expanded around inf 7.7
if 8.001727821135775e-216 < a Initial program 16.5
rmApplied add-cube-cbrt16.6
Applied times-frac10.9
rmApplied associate--l+10.4
rmApplied add-cube-cbrt7.9
Applied times-frac8.0
Applied associate-*l*7.5
rmApplied add-cube-cbrt10.0
Final simplification9.1
herbie shell --seed 2019179
(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))))