x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\begin{array}{l}
\mathbf{if}\;t \le 6.764694878676553378102467614993236358418 \cdot 10^{198}:\\
\;\;\;\;x + \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{y - x}{\frac{\sqrt[3]{a - t}}{\sqrt[3]{z - t}}}\\
\mathbf{else}:\\
\;\;\;\;y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r1051444 = x;
double r1051445 = y;
double r1051446 = r1051445 - r1051444;
double r1051447 = z;
double r1051448 = t;
double r1051449 = r1051447 - r1051448;
double r1051450 = r1051446 * r1051449;
double r1051451 = a;
double r1051452 = r1051451 - r1051448;
double r1051453 = r1051450 / r1051452;
double r1051454 = r1051444 + r1051453;
return r1051454;
}
double f(double x, double y, double z, double t, double a) {
double r1051455 = t;
double r1051456 = 6.764694878676553e+198;
bool r1051457 = r1051455 <= r1051456;
double r1051458 = x;
double r1051459 = z;
double r1051460 = r1051459 - r1051455;
double r1051461 = cbrt(r1051460);
double r1051462 = r1051461 * r1051461;
double r1051463 = a;
double r1051464 = r1051463 - r1051455;
double r1051465 = cbrt(r1051464);
double r1051466 = r1051465 * r1051465;
double r1051467 = r1051462 / r1051466;
double r1051468 = y;
double r1051469 = r1051468 - r1051458;
double r1051470 = r1051465 / r1051461;
double r1051471 = r1051469 / r1051470;
double r1051472 = r1051467 * r1051471;
double r1051473 = r1051458 + r1051472;
double r1051474 = r1051457 ? r1051473 : r1051468;
return r1051474;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 25.0 |
|---|---|
| Target | 9.2 |
| Herbie | 11.4 |
if t < 6.764694878676553e+198Initial program 22.1
rmApplied associate-/l*10.0
rmApplied add-cube-cbrt10.7
Applied add-cube-cbrt10.6
Applied times-frac10.6
Applied *-un-lft-identity10.6
Applied times-frac9.9
Simplified9.9
if 6.764694878676553e+198 < t Initial program 49.4
rmApplied associate-/l*24.0
Taylor expanded around 0 23.6
Final simplification11.4
herbie shell --seed 2019209
(FPCore (x y z t a)
:name "Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3"
:precision binary64
:herbie-target
(if (< a -1.6153062845442575e-142) (+ x (* (/ (- y x) 1) (/ (- z t) (- a t)))) (if (< a 3.7744031700831742e-182) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1) (/ (- z t) (- a t))))))
(+ x (/ (* (- y x) (- z t)) (- a t))))