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 -1.413755424064657698863915119082769667116 \cdot 10^{-267} \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}:\\
\;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r140922 = x;
double r140923 = y;
double r140924 = z;
double r140925 = r140923 - r140924;
double r140926 = t;
double r140927 = r140926 - r140922;
double r140928 = a;
double r140929 = r140928 - r140924;
double r140930 = r140927 / r140929;
double r140931 = r140925 * r140930;
double r140932 = r140922 + r140931;
return r140932;
}
double f(double x, double y, double z, double t, double a) {
double r140933 = x;
double r140934 = y;
double r140935 = z;
double r140936 = r140934 - r140935;
double r140937 = t;
double r140938 = r140937 - r140933;
double r140939 = a;
double r140940 = r140939 - r140935;
double r140941 = r140938 / r140940;
double r140942 = r140936 * r140941;
double r140943 = r140933 + r140942;
double r140944 = -1.4137554240646577e-267;
bool r140945 = r140943 <= r140944;
double r140946 = 0.0;
bool r140947 = r140943 <= r140946;
double r140948 = !r140947;
bool r140949 = r140945 || r140948;
double r140950 = cbrt(r140938);
double r140951 = r140950 * r140950;
double r140952 = cbrt(r140940);
double r140953 = r140952 * r140952;
double r140954 = r140951 / r140953;
double r140955 = r140936 * r140954;
double r140956 = r140950 / r140952;
double r140957 = r140955 * r140956;
double r140958 = r140933 + r140957;
double r140959 = r140933 / r140935;
double r140960 = r140937 / r140935;
double r140961 = r140959 - r140960;
double r140962 = r140934 * r140961;
double r140963 = r140962 + r140937;
double r140964 = r140949 ? r140958 : r140963;
return r140964;
}



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)))) < -1.4137554240646577e-267 or 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.4
rmApplied add-cube-cbrt8.1
Applied add-cube-cbrt8.3
Applied times-frac8.3
Applied associate-*r*4.7
if -1.4137554240646577e-267 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 60.3
rmApplied add-cube-cbrt60.0
Applied add-cube-cbrt60.0
Applied times-frac60.1
Applied associate-*r*58.2
rmApplied add-cube-cbrt58.1
Taylor expanded around inf 24.6
Simplified19.6
Final simplification6.9
herbie shell --seed 2019303
(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)))))