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 -6.297250090481523301886445910737257463116 \cdot 10^{-305} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\right):\\
\;\;\;\;x + \left(\left(y - z\right) \cdot \frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\
\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 r106073 = x;
double r106074 = y;
double r106075 = z;
double r106076 = r106074 - r106075;
double r106077 = t;
double r106078 = r106077 - r106073;
double r106079 = a;
double r106080 = r106079 - r106075;
double r106081 = r106078 / r106080;
double r106082 = r106076 * r106081;
double r106083 = r106073 + r106082;
return r106083;
}
double f(double x, double y, double z, double t, double a) {
double r106084 = x;
double r106085 = y;
double r106086 = z;
double r106087 = r106085 - r106086;
double r106088 = t;
double r106089 = r106088 - r106084;
double r106090 = a;
double r106091 = r106090 - r106086;
double r106092 = r106089 / r106091;
double r106093 = r106087 * r106092;
double r106094 = r106084 + r106093;
double r106095 = -6.297250090481523e-305;
bool r106096 = r106094 <= r106095;
double r106097 = 0.0;
bool r106098 = r106094 <= r106097;
double r106099 = !r106098;
bool r106100 = r106096 || r106099;
double r106101 = cbrt(r106089);
double r106102 = r106101 * r106101;
double r106103 = cbrt(r106091);
double r106104 = r106103 * r106103;
double r106105 = r106102 / r106104;
double r106106 = r106087 * r106105;
double r106107 = r106101 / r106103;
double r106108 = r106106 * r106107;
double r106109 = r106084 + r106108;
double r106110 = r106084 / r106086;
double r106111 = r106088 / r106086;
double r106112 = r106110 - r106111;
double r106113 = r106085 * r106112;
double r106114 = r106088 + r106113;
double r106115 = r106100 ? r106109 : r106114;
return r106115;
}



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)))) < -6.297250090481523e-305 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.2
rmApplied add-cube-cbrt7.9
Applied add-cube-cbrt8.0
Applied times-frac8.0
Applied associate-*r*4.4
if -6.297250090481523e-305 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.8
rmApplied add-cube-cbrt61.5
Applied add-cube-cbrt61.5
Applied times-frac61.5
Applied associate-*r*61.4
Taylor expanded around inf 24.8
Simplified18.9
Final simplification6.4
herbie shell --seed 2019356
(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)))))