x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le -7.37766926971836463 \cdot 10^{165} \lor \neg \left(z \le 8.49730539652018141 \cdot 10^{135}\right):\\
\;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\
\mathbf{else}:\\
\;\;\;\;x + \left(\sqrt[3]{\frac{y - z}{a - z} \cdot \left(t - x\right)} \cdot \sqrt[3]{\frac{y - z}{a - z} \cdot \left(t - x\right)}\right) \cdot \sqrt[3]{\frac{y - z}{a - z} \cdot \left(t - x\right)}\\
\end{array}double code(double x, double y, double z, double t, double a) {
return ((double) (x + ((double) (((double) (y - z)) * ((double) (((double) (t - x)) / ((double) (a - z))))))));
}
double code(double x, double y, double z, double t, double a) {
double VAR;
if (((z <= -7.377669269718365e+165) || !(z <= 8.497305396520181e+135))) {
VAR = ((double) (((double) (y * ((double) (((double) (x / z)) - ((double) (t / z)))))) + t));
} else {
VAR = ((double) (x + ((double) (((double) (((double) cbrt(((double) (((double) (((double) (y - z)) / ((double) (a - z)))) * ((double) (t - x)))))) * ((double) cbrt(((double) (((double) (((double) (y - z)) / ((double) (a - z)))) * ((double) (t - x)))))))) * ((double) cbrt(((double) (((double) (((double) (y - z)) / ((double) (a - z)))) * ((double) (t - x))))))))));
}
return VAR;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if z < -7.37766926971836463e165 or 8.49730539652018141e135 < z Initial program 28.5
rmApplied div-sub28.5
rmApplied div-inv28.5
Applied div-inv28.6
Applied distribute-rgt-out--28.6
Applied associate-*r*24.0
Simplified23.9
rmApplied add-cube-cbrt24.7
Taylor expanded around inf 25.7
Simplified16.2
if -7.37766926971836463e165 < z < 8.49730539652018141e135Initial program 9.5
rmApplied div-sub9.5
rmApplied div-inv9.5
Applied div-inv9.6
Applied distribute-rgt-out--9.6
Applied associate-*r*7.3
Simplified7.2
rmApplied add-cube-cbrt7.8
Final simplification10.2
herbie shell --seed 2020164
(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)))))