\left(x + y\right) - \frac{\left(z - t\right) \cdot y}{a - t}\begin{array}{l}
\mathbf{if}\;t \le -1.0569496526028927 \cdot 10^{+52}:\\
\;\;\;\;\mathsf{fma}\left(\frac{z}{t}, y, x\right)\\
\mathbf{elif}\;t \le 2.83517124515135 \cdot 10^{+130}:\\
\;\;\;\;\left(t - z\right) \cdot \frac{y}{a - t} + \left(y + x\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{z}{t}, y, x\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r26282502 = x;
double r26282503 = y;
double r26282504 = r26282502 + r26282503;
double r26282505 = z;
double r26282506 = t;
double r26282507 = r26282505 - r26282506;
double r26282508 = r26282507 * r26282503;
double r26282509 = a;
double r26282510 = r26282509 - r26282506;
double r26282511 = r26282508 / r26282510;
double r26282512 = r26282504 - r26282511;
return r26282512;
}
double f(double x, double y, double z, double t, double a) {
double r26282513 = t;
double r26282514 = -1.0569496526028927e+52;
bool r26282515 = r26282513 <= r26282514;
double r26282516 = z;
double r26282517 = r26282516 / r26282513;
double r26282518 = y;
double r26282519 = x;
double r26282520 = fma(r26282517, r26282518, r26282519);
double r26282521 = 2.83517124515135e+130;
bool r26282522 = r26282513 <= r26282521;
double r26282523 = r26282513 - r26282516;
double r26282524 = a;
double r26282525 = r26282524 - r26282513;
double r26282526 = r26282518 / r26282525;
double r26282527 = r26282523 * r26282526;
double r26282528 = r26282518 + r26282519;
double r26282529 = r26282527 + r26282528;
double r26282530 = r26282522 ? r26282529 : r26282520;
double r26282531 = r26282515 ? r26282520 : r26282530;
return r26282531;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 16.0 |
|---|---|
| Target | 8.2 |
| Herbie | 8.7 |
if t < -1.0569496526028927e+52 or 2.83517124515135e+130 < t Initial program 28.8
Simplified20.8
Taylor expanded around inf 17.7
Simplified12.8
if -1.0569496526028927e+52 < t < 2.83517124515135e+130Initial program 8.2
Simplified6.2
rmApplied fma-udef6.2
Final simplification8.7
herbie shell --seed 2019168 +o rules:numerics
(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 (- 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))))