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}:\\
\;\;\;\;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 r112983 = x;
double r112984 = y;
double r112985 = z;
double r112986 = r112984 - r112985;
double r112987 = t;
double r112988 = r112987 - r112983;
double r112989 = a;
double r112990 = r112989 - r112985;
double r112991 = r112988 / r112990;
double r112992 = r112986 * r112991;
double r112993 = r112983 + r112992;
return r112993;
}
double f(double x, double y, double z, double t, double a) {
double r112994 = x;
double r112995 = y;
double r112996 = z;
double r112997 = r112995 - r112996;
double r112998 = t;
double r112999 = r112998 - r112994;
double r113000 = a;
double r113001 = r113000 - r112996;
double r113002 = r112999 / r113001;
double r113003 = r112997 * r113002;
double r113004 = r112994 + r113003;
double r113005 = -1.4137554240646577e-267;
bool r113006 = r113004 <= r113005;
double r113007 = 0.0;
bool r113008 = r113004 <= r113007;
double r113009 = !r113008;
bool r113010 = r113006 || r113009;
double r113011 = cbrt(r112999);
double r113012 = r113011 * r113011;
double r113013 = cbrt(r113001);
double r113014 = r113013 * r113013;
double r113015 = r113012 / r113014;
double r113016 = r112997 * r113015;
double r113017 = r113011 / r113013;
double r113018 = r113016 * r113017;
double r113019 = r112994 + r113018;
double r113020 = r112994 / r112996;
double r113021 = r112998 / r112996;
double r113022 = r113020 - r113021;
double r113023 = r112995 * r113022;
double r113024 = r112998 + r113023;
double r113025 = r113010 ? r113019 : r113024;
return r113025;
}



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 +o rules:numerics
(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)))))