x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -2.016722143479182721107069384915645128898 \cdot 10^{-79}:\\
\;\;\;\;x + \frac{\frac{y - z}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\\
\mathbf{elif}\;a \le 1.082916304047229047679075765793884594082 \cdot 10^{-175}:\\
\;\;\;\;\left(\frac{x}{z} - \frac{t}{z}\right) \cdot y + t\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}} \cdot \frac{y - z}{\frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}} \cdot \frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}}} + x\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r7265009 = x;
double r7265010 = y;
double r7265011 = z;
double r7265012 = r7265010 - r7265011;
double r7265013 = t;
double r7265014 = r7265013 - r7265009;
double r7265015 = a;
double r7265016 = r7265015 - r7265011;
double r7265017 = r7265014 / r7265016;
double r7265018 = r7265012 * r7265017;
double r7265019 = r7265009 + r7265018;
return r7265019;
}
double f(double x, double y, double z, double t, double a) {
double r7265020 = a;
double r7265021 = -2.0167221434791827e-79;
bool r7265022 = r7265020 <= r7265021;
double r7265023 = x;
double r7265024 = y;
double r7265025 = z;
double r7265026 = r7265024 - r7265025;
double r7265027 = r7265020 - r7265025;
double r7265028 = cbrt(r7265027);
double r7265029 = r7265028 * r7265028;
double r7265030 = cbrt(r7265029);
double r7265031 = r7265026 / r7265030;
double r7265032 = r7265031 / r7265029;
double r7265033 = t;
double r7265034 = r7265033 - r7265023;
double r7265035 = cbrt(r7265028);
double r7265036 = r7265034 / r7265035;
double r7265037 = r7265032 * r7265036;
double r7265038 = r7265023 + r7265037;
double r7265039 = 1.082916304047229e-175;
bool r7265040 = r7265020 <= r7265039;
double r7265041 = r7265023 / r7265025;
double r7265042 = r7265033 / r7265025;
double r7265043 = r7265041 - r7265042;
double r7265044 = r7265043 * r7265024;
double r7265045 = r7265044 + r7265033;
double r7265046 = cbrt(r7265034);
double r7265047 = r7265046 / r7265028;
double r7265048 = r7265028 / r7265046;
double r7265049 = r7265048 * r7265048;
double r7265050 = r7265026 / r7265049;
double r7265051 = r7265047 * r7265050;
double r7265052 = r7265051 + r7265023;
double r7265053 = r7265040 ? r7265045 : r7265052;
double r7265054 = r7265022 ? r7265038 : r7265053;
return r7265054;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -2.0167221434791827e-79Initial program 10.3
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.6
Applied cbrt-prod8.6
Applied *-un-lft-identity8.6
Applied times-frac8.7
Applied associate-*r*8.4
Simplified8.4
if -2.0167221434791827e-79 < a < 1.082916304047229e-175Initial program 24.6
rmApplied add-cube-cbrt25.3
Applied add-cube-cbrt25.5
Applied times-frac25.5
Applied associate-*r*19.8
Simplified19.8
Taylor expanded around inf 15.4
Simplified12.7
if 1.082916304047229e-175 < a Initial program 12.1
rmApplied add-cube-cbrt12.7
Applied add-cube-cbrt12.8
Applied times-frac12.8
Applied associate-*r*10.1
Simplified10.1
Final simplification10.2
herbie shell --seed 2019168
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))