x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.7262808088606156 \cdot 10^{-120}:\\
\;\;\;\;\frac{y}{\frac{a - z}{t - x}} - \left(\frac{z}{a - z} \cdot \left(t - x\right) - x\right)\\
\mathbf{elif}\;a \le 1.5453516653821514 \cdot 10^{-152}:\\
\;\;\;\;\mathsf{fma}\left(y, \frac{x}{z} - \frac{t}{z}, t\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{a - z}{t - x}} - \left(\frac{z}{a - z} \cdot \left(t - x\right) - x\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r6412091 = x;
double r6412092 = y;
double r6412093 = z;
double r6412094 = r6412092 - r6412093;
double r6412095 = t;
double r6412096 = r6412095 - r6412091;
double r6412097 = a;
double r6412098 = r6412097 - r6412093;
double r6412099 = r6412096 / r6412098;
double r6412100 = r6412094 * r6412099;
double r6412101 = r6412091 + r6412100;
return r6412101;
}
double f(double x, double y, double z, double t, double a) {
double r6412102 = a;
double r6412103 = -1.7262808088606156e-120;
bool r6412104 = r6412102 <= r6412103;
double r6412105 = y;
double r6412106 = z;
double r6412107 = r6412102 - r6412106;
double r6412108 = t;
double r6412109 = x;
double r6412110 = r6412108 - r6412109;
double r6412111 = r6412107 / r6412110;
double r6412112 = r6412105 / r6412111;
double r6412113 = r6412106 / r6412107;
double r6412114 = r6412113 * r6412110;
double r6412115 = r6412114 - r6412109;
double r6412116 = r6412112 - r6412115;
double r6412117 = 1.5453516653821514e-152;
bool r6412118 = r6412102 <= r6412117;
double r6412119 = r6412109 / r6412106;
double r6412120 = r6412108 / r6412106;
double r6412121 = r6412119 - r6412120;
double r6412122 = fma(r6412105, r6412121, r6412108);
double r6412123 = r6412118 ? r6412122 : r6412116;
double r6412124 = r6412104 ? r6412116 : r6412123;
return r6412124;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if a < -1.7262808088606156e-120 or 1.5453516653821514e-152 < a Initial program 11.6
Simplified11.6
rmApplied div-inv11.6
rmApplied fma-udef11.7
Simplified11.7
rmApplied div-sub11.7
Applied associate-+l-10.5
rmApplied associate-/r/9.0
if -1.7262808088606156e-120 < a < 1.5453516653821514e-152Initial program 25.4
Simplified25.4
Taylor expanded around inf 15.1
Simplified12.1
Final simplification9.7
herbie shell --seed 2019165 +o rules:numerics
(FPCore (x y z t a)
:name "Numeric.Signal:interpolate from hsignal-0.2.7.1"
(+ x (* (- y z) (/ (- t x) (- a z)))))