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} \leq -6.612935525843224 \cdot 10^{+41}:\\
\;\;\;\;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{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \leq -5.610859612894739 \cdot 10^{-299}:\\
\;\;\;\;\left(\frac{y \cdot t}{a - z} + \left(x + \frac{x \cdot z}{a - z}\right)\right) - \left(\frac{x \cdot y}{a - z} + \frac{z \cdot t}{a - z}\right)\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \leq 0:\\
\;\;\;\;\left(\frac{a \cdot \left(x \cdot y\right)}{z \cdot z} + \left(\frac{t \cdot \left(a \cdot a\right)}{z \cdot z} + \left(\frac{t \cdot a}{z} + \left(\frac{a \cdot \left(a \cdot \left(x \cdot y\right)\right)}{{z}^{3}} + \left(\left(t + \frac{x \cdot y}{z}\right) + \frac{t}{{\left(\frac{z}{a}\right)}^{3}}\right)\right)\right)\right)\right) - \left(\frac{x \cdot a}{z} + \left(\frac{x \cdot \left(a \cdot a\right)}{z \cdot z} + \left(\frac{y \cdot t}{z} + \left(\frac{a \cdot \left(a \cdot \left(y \cdot t\right)\right)}{{z}^{3}} + \left(\frac{a \cdot \left(y \cdot t\right)}{z \cdot z} + \frac{x}{{\left(\frac{z}{a}\right)}^{3}}\right)\right)\right)\right)\right)\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \leq 4.523655801934687 \cdot 10^{-23}:\\
\;\;\;\;\left(\frac{y \cdot t}{a - z} + \left(x + \frac{x \cdot z}{a - z}\right)\right) - \left(\frac{x \cdot y}{a - z} + \frac{z \cdot t}{a - z}\right)\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \leq 1.9006975675827603 \cdot 10^{+208}:\\
\;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - z}{a - z} \cdot \frac{1}{\frac{1}{t - x}}\\
\end{array}(FPCore (x y z t a) :precision binary64 (+ x (* (- y z) (/ (- t x) (- a z)))))
(FPCore (x y z t a)
:precision binary64
(if (<= (+ x (* (- y z) (/ (- t x) (- a z)))) -6.612935525843224e+41)
(+
x
(*
(*
(- y z)
(/ (* (cbrt (- t x)) (cbrt (- t x))) (* (cbrt (- a z)) (cbrt (- a z)))))
(/ (cbrt (- t x)) (cbrt (- a z)))))
(if (<= (+ x (* (- y z) (/ (- t x) (- a z)))) -5.610859612894739e-299)
(-
(+ (/ (* y t) (- a z)) (+ x (/ (* x z) (- a z))))
(+ (/ (* x y) (- a z)) (/ (* z t) (- a z))))
(if (<= (+ x (* (- y z) (/ (- t x) (- a z)))) 0.0)
(-
(+
(/ (* a (* x y)) (* z z))
(+
(/ (* t (* a a)) (* z z))
(+
(/ (* t a) z)
(+
(/ (* a (* a (* x y))) (pow z 3.0))
(+ (+ t (/ (* x y) z)) (/ t (pow (/ z a) 3.0)))))))
(+
(/ (* x a) z)
(+
(/ (* x (* a a)) (* z z))
(+
(/ (* y t) z)
(+
(/ (* a (* a (* y t))) (pow z 3.0))
(+ (/ (* a (* y t)) (* z z)) (/ x (pow (/ z a) 3.0))))))))
(if (<= (+ x (* (- y z) (/ (- t x) (- a z)))) 4.523655801934687e-23)
(-
(+ (/ (* y t) (- a z)) (+ x (/ (* x z) (- a z))))
(+ (/ (* x y) (- a z)) (/ (* z t) (- a z))))
(if (<= (+ x (* (- y z) (/ (- t x) (- a z)))) 1.9006975675827603e+208)
(+ x (* (- y z) (/ (- t x) (- a z))))
(+ x (* (/ (- y z) (- a z)) (/ 1.0 (/ 1.0 (- t x)))))))))))double code(double x, double y, double z, double t, double a) {
return x + ((y - z) * ((t - x) / (a - z)));
}
double code(double x, double y, double z, double t, double a) {
double tmp;
if ((x + ((y - z) * ((t - x) / (a - z)))) <= -6.612935525843224e+41) {
tmp = x + (((y - z) * ((cbrt(t - x) * cbrt(t - x)) / (cbrt(a - z) * cbrt(a - z)))) * (cbrt(t - x) / cbrt(a - z)));
} else if ((x + ((y - z) * ((t - x) / (a - z)))) <= -5.610859612894739e-299) {
tmp = (((y * t) / (a - z)) + (x + ((x * z) / (a - z)))) - (((x * y) / (a - z)) + ((z * t) / (a - z)));
} else if ((x + ((y - z) * ((t - x) / (a - z)))) <= 0.0) {
tmp = (((a * (x * y)) / (z * z)) + (((t * (a * a)) / (z * z)) + (((t * a) / z) + (((a * (a * (x * y))) / pow(z, 3.0)) + ((t + ((x * y) / z)) + (t / pow((z / a), 3.0))))))) - (((x * a) / z) + (((x * (a * a)) / (z * z)) + (((y * t) / z) + (((a * (a * (y * t))) / pow(z, 3.0)) + (((a * (y * t)) / (z * z)) + (x / pow((z / a), 3.0)))))));
} else if ((x + ((y - z) * ((t - x) / (a - z)))) <= 4.523655801934687e-23) {
tmp = (((y * t) / (a - z)) + (x + ((x * z) / (a - z)))) - (((x * y) / (a - z)) + ((z * t) / (a - z)));
} else if ((x + ((y - z) * ((t - x) / (a - z)))) <= 1.9006975675827603e+208) {
tmp = x + ((y - z) * ((t - x) / (a - z)));
} else {
tmp = x + (((y - z) / (a - z)) * (1.0 / (1.0 / (t - x))));
}
return tmp;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < -6.61293552584322434e41Initial program 5.9
rmApplied add-cube-cbrt_binary64_31826.7
Applied add-cube-cbrt_binary64_31826.9
Applied times-frac_binary64_31536.9
Applied associate-*r*_binary64_30873.9
if -6.61293552584322434e41 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < -5.6108596128947389e-299 or 0.0 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < 4.523655801934687e-23Initial program 12.5
Taylor expanded around 0 2.5
if -5.6108596128947389e-299 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < 0.0Initial program 61.6
Taylor expanded around inf 18.3
Simplified16.9
if 4.523655801934687e-23 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < 1.9006975675827603e208Initial program 2.0
if 1.9006975675827603e208 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) Initial program 10.9
rmApplied add-cube-cbrt_binary64_318211.6
Applied *-un-lft-identity_binary64_314711.6
Applied times-frac_binary64_315311.6
Applied associate-*r*_binary64_30877.0
Simplified7.0
rmApplied div-inv_binary64_31447.0
Applied associate-*l*_binary64_308811.6
Simplified11.0
rmApplied div-inv_binary64_314411.0
Applied *-un-lft-identity_binary64_314711.0
Applied times-frac_binary64_315311.0
Applied associate-*r*_binary64_30873.9
Simplified3.8
Final simplification4.9
herbie shell --seed 2021098
(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)))))