x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -4.82516022252417878 \cdot 10^{-304} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\right):\\
\;\;\;\;x + \left(\sqrt[3]{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \sqrt[3]{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}\right) \cdot \left(\sqrt[3]{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\
\mathbf{else}:\\
\;\;\;\;t + y \cdot \left(\frac{x}{z} - \frac{t}{z}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r119720 = x;
double r119721 = y;
double r119722 = z;
double r119723 = r119721 - r119722;
double r119724 = t;
double r119725 = r119724 - r119720;
double r119726 = a;
double r119727 = r119726 - r119722;
double r119728 = r119725 / r119727;
double r119729 = r119723 * r119728;
double r119730 = r119720 + r119729;
return r119730;
}
double f(double x, double y, double z, double t, double a) {
double r119731 = x;
double r119732 = y;
double r119733 = z;
double r119734 = r119732 - r119733;
double r119735 = t;
double r119736 = r119735 - r119731;
double r119737 = a;
double r119738 = r119737 - r119733;
double r119739 = r119736 / r119738;
double r119740 = r119734 * r119739;
double r119741 = r119731 + r119740;
double r119742 = -4.825160222524179e-304;
bool r119743 = r119741 <= r119742;
double r119744 = 0.0;
bool r119745 = r119741 <= r119744;
double r119746 = !r119745;
bool r119747 = r119743 || r119746;
double r119748 = cbrt(r119738);
double r119749 = r119748 * r119748;
double r119750 = r119734 / r119749;
double r119751 = cbrt(r119750);
double r119752 = r119751 * r119751;
double r119753 = r119736 / r119748;
double r119754 = r119751 * r119753;
double r119755 = r119752 * r119754;
double r119756 = r119731 + r119755;
double r119757 = r119731 / r119733;
double r119758 = r119735 / r119733;
double r119759 = r119757 - r119758;
double r119760 = r119732 * r119759;
double r119761 = r119735 + r119760;
double r119762 = r119747 ? r119756 : r119761;
return r119762;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+ x (* (- y z) (/ (- t x) (- a z)))) < -4.825160222524179e-304 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.6
rmApplied add-cube-cbrt8.3
Applied *-un-lft-identity8.3
Applied times-frac8.3
Applied associate-*r*5.3
Simplified5.3
rmApplied add-cube-cbrt5.5
Applied associate-*l*5.5
if -4.825160222524179e-304 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.5
rmApplied add-cube-cbrt61.3
Applied *-un-lft-identity61.3
Applied times-frac61.3
Applied associate-*r*61.1
Simplified61.1
rmApplied add-cube-cbrt61.0
Applied associate-*l*61.0
Taylor expanded around inf 25.7
Simplified19.8
Final simplification7.5
herbie shell --seed 2020045
(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)))))