x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le -2.065198081982860996989152359302888484807 \cdot 10^{170}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{elif}\;z \le 8.311607488137995112797735677641661885277 \cdot 10^{178}:\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\
\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 r119024 = x;
double r119025 = y;
double r119026 = z;
double r119027 = r119025 - r119026;
double r119028 = t;
double r119029 = r119028 - r119024;
double r119030 = a;
double r119031 = r119030 - r119026;
double r119032 = r119029 / r119031;
double r119033 = r119027 * r119032;
double r119034 = r119024 + r119033;
return r119034;
}
double f(double x, double y, double z, double t, double a) {
double r119035 = z;
double r119036 = -2.065198081982861e+170;
bool r119037 = r119035 <= r119036;
double r119038 = x;
double r119039 = y;
double r119040 = r119038 * r119039;
double r119041 = r119040 / r119035;
double r119042 = t;
double r119043 = r119041 + r119042;
double r119044 = r119042 * r119039;
double r119045 = r119044 / r119035;
double r119046 = r119043 - r119045;
double r119047 = 8.311607488137995e+178;
bool r119048 = r119035 <= r119047;
double r119049 = r119039 - r119035;
double r119050 = cbrt(r119049);
double r119051 = r119050 * r119050;
double r119052 = a;
double r119053 = r119052 - r119035;
double r119054 = cbrt(r119053);
double r119055 = r119051 / r119054;
double r119056 = r119050 / r119054;
double r119057 = r119042 - r119038;
double r119058 = r119057 / r119054;
double r119059 = r119056 * r119058;
double r119060 = r119055 * r119059;
double r119061 = r119038 + r119060;
double r119062 = r119038 / r119035;
double r119063 = r119042 / r119035;
double r119064 = r119062 - r119063;
double r119065 = r119039 * r119064;
double r119066 = r119042 + r119065;
double r119067 = r119048 ? r119061 : r119066;
double r119068 = r119037 ? r119046 : r119067;
return r119068;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if z < -2.065198081982861e+170Initial program 28.4
Taylor expanded around inf 25.3
if -2.065198081982861e+170 < z < 8.311607488137995e+178Initial program 10.0
rmApplied add-cube-cbrt10.6
Applied *-un-lft-identity10.6
Applied times-frac10.6
Applied associate-*r*8.7
Simplified8.7
rmApplied add-cube-cbrt8.7
Applied times-frac8.7
Applied associate-*l*8.3
if 8.311607488137995e+178 < z Initial program 29.1
rmApplied add-cube-cbrt29.6
Applied *-un-lft-identity29.6
Applied times-frac29.6
Applied associate-*r*24.9
Simplified24.9
rmApplied add-cube-cbrt24.5
Applied times-frac24.5
Applied associate-*l*24.5
Taylor expanded around inf 23.9
Simplified14.5
Final simplification11.1
herbie shell --seed 2019306
(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)))))