x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le -2.287307948013401567659190226383170782569 \cdot 10^{143}:\\
\;\;\;\;t + \left(\frac{x}{z} - \frac{t}{z}\right) \cdot y\\
\mathbf{elif}\;z \le 3.524544795988202684293854966832494307064 \cdot 10^{220}:\\
\;\;\;\;\frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\frac{\frac{\sqrt[3]{a - z}}{\sqrt[3]{\frac{t - x}{\sqrt[3]{a - z}}}} \cdot \frac{\sqrt[3]{a - z}}{\sqrt[3]{\frac{t - x}{\sqrt[3]{a - z}}}}}{\sqrt[3]{y - z}}} \cdot \sqrt[3]{\frac{t - x}{\sqrt[3]{a - z}}} + x\\
\mathbf{else}:\\
\;\;\;\;t + \left(\frac{x}{z} - \frac{t}{z}\right) \cdot y\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r5953615 = x;
double r5953616 = y;
double r5953617 = z;
double r5953618 = r5953616 - r5953617;
double r5953619 = t;
double r5953620 = r5953619 - r5953615;
double r5953621 = a;
double r5953622 = r5953621 - r5953617;
double r5953623 = r5953620 / r5953622;
double r5953624 = r5953618 * r5953623;
double r5953625 = r5953615 + r5953624;
return r5953625;
}
double f(double x, double y, double z, double t, double a) {
double r5953626 = z;
double r5953627 = -2.2873079480134016e+143;
bool r5953628 = r5953626 <= r5953627;
double r5953629 = t;
double r5953630 = x;
double r5953631 = r5953630 / r5953626;
double r5953632 = r5953629 / r5953626;
double r5953633 = r5953631 - r5953632;
double r5953634 = y;
double r5953635 = r5953633 * r5953634;
double r5953636 = r5953629 + r5953635;
double r5953637 = 3.5245447959882027e+220;
bool r5953638 = r5953626 <= r5953637;
double r5953639 = r5953634 - r5953626;
double r5953640 = cbrt(r5953639);
double r5953641 = r5953640 * r5953640;
double r5953642 = a;
double r5953643 = r5953642 - r5953626;
double r5953644 = cbrt(r5953643);
double r5953645 = r5953629 - r5953630;
double r5953646 = r5953645 / r5953644;
double r5953647 = cbrt(r5953646);
double r5953648 = r5953644 / r5953647;
double r5953649 = r5953648 * r5953648;
double r5953650 = r5953649 / r5953640;
double r5953651 = r5953641 / r5953650;
double r5953652 = r5953651 * r5953647;
double r5953653 = r5953652 + r5953630;
double r5953654 = r5953638 ? r5953653 : r5953636;
double r5953655 = r5953628 ? r5953636 : r5953654;
return r5953655;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if z < -2.2873079480134016e+143 or 3.5245447959882027e+220 < z Initial program 26.8
rmApplied add-cube-cbrt27.4
Applied *-un-lft-identity27.4
Applied times-frac27.4
Applied associate-*r*22.5
Simplified22.5
rmApplied add-cube-cbrt22.7
Applied associate-*l*22.7
Taylor expanded around inf 25.1
Simplified15.5
if -2.2873079480134016e+143 < z < 3.5245447959882027e+220Initial program 10.2
rmApplied add-cube-cbrt10.7
Applied *-un-lft-identity10.7
Applied times-frac10.7
Applied associate-*r*8.6
Simplified8.6
rmApplied add-cube-cbrt8.7
Applied associate-*r*8.7
Simplified8.8
rmApplied add-cube-cbrt8.8
Applied associate-/l*8.8
Final simplification10.4
herbie shell --seed 2019169
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))