x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -8.40974200722042392 \cdot 10^{-79}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{\frac{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}}, \frac{y - z}{\frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}}}, x\right)\\
\mathbf{elif}\;a \le 2.7113534911240639 \cdot 10^{-219}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{x}{z} - \frac{t}{z}, t\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{a - z}{t - x}} - \left(\frac{z}{\frac{a - z}{t - x}} - x\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r68461 = x;
double r68462 = y;
double r68463 = z;
double r68464 = r68462 - r68463;
double r68465 = t;
double r68466 = r68465 - r68461;
double r68467 = a;
double r68468 = r68467 - r68463;
double r68469 = r68466 / r68468;
double r68470 = r68464 * r68469;
double r68471 = r68461 + r68470;
return r68471;
}
double f(double x, double y, double z, double t, double a) {
double r68472 = a;
double r68473 = -8.409742007220424e-79;
bool r68474 = r68472 <= r68473;
double r68475 = 1.0;
double r68476 = z;
double r68477 = r68472 - r68476;
double r68478 = cbrt(r68477);
double r68479 = r68478 * r68478;
double r68480 = t;
double r68481 = x;
double r68482 = r68480 - r68481;
double r68483 = cbrt(r68482);
double r68484 = r68483 * r68483;
double r68485 = r68479 / r68484;
double r68486 = r68475 / r68485;
double r68487 = y;
double r68488 = r68487 - r68476;
double r68489 = r68478 / r68483;
double r68490 = r68488 / r68489;
double r68491 = fma(r68486, r68490, r68481);
double r68492 = 2.711353491124064e-219;
bool r68493 = r68472 <= r68492;
double r68494 = r68481 / r68476;
double r68495 = r68480 / r68476;
double r68496 = r68494 - r68495;
double r68497 = fma(r68487, r68496, r68480);
double r68498 = r68477 / r68482;
double r68499 = r68487 / r68498;
double r68500 = r68476 / r68498;
double r68501 = r68500 - r68481;
double r68502 = r68499 - r68501;
double r68503 = r68493 ? r68497 : r68502;
double r68504 = r68474 ? r68491 : r68503;
return r68504;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -8.409742007220424e-79Initial program 10.1
Simplified10.1
rmApplied clear-num10.3
rmApplied fma-udef10.3
Simplified10.2
rmApplied add-cube-cbrt10.6
Applied add-cube-cbrt10.8
Applied times-frac10.8
Applied *-un-lft-identity10.8
Applied times-frac8.5
Applied fma-def8.5
if -8.409742007220424e-79 < a < 2.711353491124064e-219Initial program 24.5
Simplified24.5
Taylor expanded around inf 16.1
Simplified13.2
if 2.711353491124064e-219 < a Initial program 12.7
Simplified12.6
rmApplied clear-num12.9
rmApplied fma-udef12.9
Simplified12.8
rmApplied div-sub12.8
Applied associate-+l-10.8
Final simplification10.6
herbie shell --seed 2020034 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
:precision binary64
(+ x (* (- y z) (/ (- t x) (- a z)))))