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 -2.14280795298643451 \cdot 10^{-276}:\\
\;\;\;\;x + \frac{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{\frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{1} \cdot \left(\frac{\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r127075 = x;
double r127076 = y;
double r127077 = z;
double r127078 = r127076 - r127077;
double r127079 = t;
double r127080 = r127079 - r127075;
double r127081 = a;
double r127082 = r127081 - r127077;
double r127083 = r127080 / r127082;
double r127084 = r127078 * r127083;
double r127085 = r127075 + r127084;
return r127085;
}
double f(double x, double y, double z, double t, double a) {
double r127086 = x;
double r127087 = y;
double r127088 = z;
double r127089 = r127087 - r127088;
double r127090 = t;
double r127091 = r127090 - r127086;
double r127092 = a;
double r127093 = r127092 - r127088;
double r127094 = r127091 / r127093;
double r127095 = r127089 * r127094;
double r127096 = r127086 + r127095;
double r127097 = -2.1428079529864345e-276;
bool r127098 = r127096 <= r127097;
double r127099 = cbrt(r127093);
double r127100 = r127099 * r127099;
double r127101 = r127089 / r127100;
double r127102 = cbrt(r127100);
double r127103 = r127101 / r127102;
double r127104 = cbrt(r127099);
double r127105 = r127091 / r127104;
double r127106 = r127103 * r127105;
double r127107 = r127086 + r127106;
double r127108 = 0.0;
bool r127109 = r127096 <= r127108;
double r127110 = r127086 * r127087;
double r127111 = r127110 / r127088;
double r127112 = r127111 + r127090;
double r127113 = r127090 * r127087;
double r127114 = r127113 / r127088;
double r127115 = r127112 - r127114;
double r127116 = cbrt(r127089);
double r127117 = r127116 * r127116;
double r127118 = r127117 / r127099;
double r127119 = 1.0;
double r127120 = r127118 / r127119;
double r127121 = r127116 / r127099;
double r127122 = r127121 / r127102;
double r127123 = r127122 * r127105;
double r127124 = r127120 * r127123;
double r127125 = r127086 + r127124;
double r127126 = r127109 ? r127115 : r127125;
double r127127 = r127098 ? r127107 : r127126;
return r127127;
}



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)))) < -2.1428079529864345e-276Initial program 6.6
rmApplied add-cube-cbrt7.3
Applied *-un-lft-identity7.3
Applied times-frac7.3
Applied associate-*r*4.6
Simplified4.6
rmApplied add-cube-cbrt4.6
Applied cbrt-prod4.7
Applied *-un-lft-identity4.7
Applied times-frac4.7
Applied associate-*r*4.6
Simplified4.6
if -2.1428079529864345e-276 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 60.3
Taylor expanded around inf 25.5
if 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 8.5
rmApplied add-cube-cbrt9.2
Applied *-un-lft-identity9.2
Applied times-frac9.2
Applied associate-*r*5.5
Simplified5.5
rmApplied add-cube-cbrt5.5
Applied cbrt-prod5.6
Applied *-un-lft-identity5.6
Applied times-frac5.6
Applied associate-*r*5.2
Simplified5.2
rmApplied *-un-lft-identity5.2
Applied add-cube-cbrt5.1
Applied times-frac5.1
Applied times-frac5.1
Applied associate-*l*4.9
Final simplification7.6
herbie shell --seed 2020057
(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)))))