x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le 4.414999570783422340397446628721574989275 \cdot 10^{213}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{a - z} \cdot \left(t - x\right), y - z, x\right)\\
\mathbf{else}:\\
\;\;\;\;t\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r118197 = x;
double r118198 = y;
double r118199 = z;
double r118200 = r118198 - r118199;
double r118201 = t;
double r118202 = r118201 - r118197;
double r118203 = a;
double r118204 = r118203 - r118199;
double r118205 = r118202 / r118204;
double r118206 = r118200 * r118205;
double r118207 = r118197 + r118206;
return r118207;
}
double f(double x, double y, double z, double t, double a) {
double r118208 = z;
double r118209 = 4.4149995707834223e+213;
bool r118210 = r118208 <= r118209;
double r118211 = 1.0;
double r118212 = a;
double r118213 = r118212 - r118208;
double r118214 = r118211 / r118213;
double r118215 = t;
double r118216 = x;
double r118217 = r118215 - r118216;
double r118218 = r118214 * r118217;
double r118219 = y;
double r118220 = r118219 - r118208;
double r118221 = fma(r118218, r118220, r118216);
double r118222 = r118210 ? r118221 : r118215;
return r118222;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
if z < 4.4149995707834223e+213Initial program 12.9
Simplified12.8
rmApplied div-inv12.9
if 4.4149995707834223e+213 < z Initial program 32.1
Simplified32.0
Taylor expanded around 0 23.6
Final simplification13.9
herbie shell --seed 2019174 +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)))))