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 -9.801367079089213 \cdot 10^{-275} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \leq 0\right):\\
\;\;\;\;x + \left(t \cdot \frac{y - z}{a - z} - x \cdot \frac{y - z}{a - z}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{y \cdot t}{z}\\
\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 (or (<= (+ x (* (- y z) (/ (- t x) (- a z)))) -9.801367079089213e-275)
(not (<= (+ x (* (- y z) (/ (- t x) (- a z)))) 0.0)))
(+ x (- (* t (/ (- y z) (- a z))) (* x (/ (- y z) (- a z)))))
(- (+ t (/ (* x y) z)) (/ (* y t) z))))double code(double x, double y, double z, double t, double a) {
return ((double) (x + ((double) (((double) (y - z)) * (((double) (t - x)) / ((double) (a - z)))))));
}
double code(double x, double y, double z, double t, double a) {
double tmp;
if (((((double) (x + ((double) (((double) (y - z)) * (((double) (t - x)) / ((double) (a - z))))))) <= -9.801367079089213e-275) || !(((double) (x + ((double) (((double) (y - z)) * (((double) (t - x)) / ((double) (a - z))))))) <= 0.0))) {
tmp = ((double) (x + ((double) (((double) (t * (((double) (y - z)) / ((double) (a - z))))) - ((double) (x * (((double) (y - z)) / ((double) (a - z)))))))));
} else {
tmp = ((double) (((double) (t + (((double) (x * y)) / z))) - (((double) (y * t)) / z)));
}
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)))) < -9.8013670790892127e-275 or 0.0 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) Initial program 7.7
rmApplied clear-num_binary648.0
rmApplied associate-/r/_binary647.7
Applied associate-*r*_binary644.1
Simplified4.1
rmApplied sub-neg_binary644.1
Applied distribute-lft-in_binary644.1
if -9.8013670790892127e-275 < (+.f64 x (*.f64 (-.f64 y z) (/.f64 (-.f64 t x) (-.f64 a z)))) < 0.0Initial program 60.2
rmApplied add-cube-cbrt_binary6459.9
Applied add-cube-cbrt_binary6459.9
Applied times-frac_binary6459.9
Applied associate-*r*_binary6458.4
Taylor expanded around inf 27.5
Simplified27.5
Final simplification7.3
herbie shell --seed 2020219
(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)))))