\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;\left(y + x\right) - \frac{\left(z - t\right) \cdot y}{a - t} = -\infty:\\
\;\;\;\;\frac{z \cdot y}{t} + x\\
\mathbf{elif}\;\left(y + x\right) - \frac{\left(z - t\right) \cdot y}{a - t} \le -2.959062809914101 \cdot 10^{-212}:\\
\;\;\;\;\left(y + x\right) - \frac{z - t}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{y}{\sqrt[3]{a - t}}\\
\mathbf{elif}\;\left(y + x\right) - \frac{\left(z - t\right) \cdot y}{a - t} \le 0.0:\\
\;\;\;\;\frac{z \cdot y}{t} + x\\
\mathbf{else}:\\
\;\;\;\;\left(y + x\right) - \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{a - t}} \cdot \left(\frac{\sqrt[3]{z - t}}{\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 r25754311 = x;
double r25754312 = y;
double r25754313 = r25754311 + r25754312;
double r25754314 = z;
double r25754315 = t;
double r25754316 = r25754314 - r25754315;
double r25754317 = r25754316 * r25754312;
double r25754318 = a;
double r25754319 = r25754318 - r25754315;
double r25754320 = r25754317 / r25754319;
double r25754321 = r25754313 - r25754320;
return r25754321;
}
double f(double x, double y, double z, double t, double a) {
double r25754322 = y;
double r25754323 = x;
double r25754324 = r25754322 + r25754323;
double r25754325 = z;
double r25754326 = t;
double r25754327 = r25754325 - r25754326;
double r25754328 = r25754327 * r25754322;
double r25754329 = a;
double r25754330 = r25754329 - r25754326;
double r25754331 = r25754328 / r25754330;
double r25754332 = r25754324 - r25754331;
double r25754333 = -inf.0;
bool r25754334 = r25754332 <= r25754333;
double r25754335 = r25754325 * r25754322;
double r25754336 = r25754335 / r25754326;
double r25754337 = r25754336 + r25754323;
double r25754338 = -2.959062809914101e-212;
bool r25754339 = r25754332 <= r25754338;
double r25754340 = cbrt(r25754330);
double r25754341 = r25754340 * r25754340;
double r25754342 = r25754327 / r25754341;
double r25754343 = r25754322 / r25754340;
double r25754344 = r25754342 * r25754343;
double r25754345 = r25754324 - r25754344;
double r25754346 = 0.0;
bool r25754347 = r25754332 <= r25754346;
double r25754348 = cbrt(r25754327);
double r25754349 = r25754348 * r25754348;
double r25754350 = r25754349 / r25754340;
double r25754351 = r25754348 / r25754340;
double r25754352 = r25754351 * r25754343;
double r25754353 = r25754350 * r25754352;
double r25754354 = r25754324 - r25754353;
double r25754355 = r25754347 ? r25754337 : r25754354;
double r25754356 = r25754339 ? r25754345 : r25754355;
double r25754357 = r25754334 ? r25754337 : r25754356;
return r25754357;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 16.7 |
|---|---|
| Target | 8.6 |
| Herbie | 9.2 |
if (- (+ x y) (/ (* (- z t) y) (- a t))) < -inf.0 or -2.959062809914101e-212 < (- (+ x y) (/ (* (- z t) y) (- a t))) < 0.0Initial program 59.9
Taylor expanded around inf 31.2
if -inf.0 < (- (+ x y) (/ (* (- z t) y) (- a t))) < -2.959062809914101e-212Initial program 1.2
rmApplied add-cube-cbrt1.5
Applied times-frac2.5
if 0.0 < (- (+ x y) (/ (* (- z t) y) (- a t))) Initial program 13.4
rmApplied add-cube-cbrt13.6
Applied times-frac7.2
rmApplied add-cube-cbrt7.3
Applied times-frac7.3
Applied associate-*l*6.7
Final simplification9.2
herbie shell --seed 2019165
(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))))