x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;a \le -1.80364094747130576584611116849255201802 \cdot 10^{-183}:\\
\;\;\;\;x + \left(\left(\left(y - z\right) \cdot \left(\sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \sqrt[3]{\frac{\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}\right)\right) \cdot \sqrt[3]{\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}\;a \le 4.148123673034126016993570331008942926337 \cdot 10^{-100}:\\
\;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\
\mathbf{else}:\\
\;\;\;\;x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r84389 = x;
double r84390 = y;
double r84391 = z;
double r84392 = r84390 - r84391;
double r84393 = t;
double r84394 = r84393 - r84389;
double r84395 = a;
double r84396 = r84395 - r84391;
double r84397 = r84394 / r84396;
double r84398 = r84392 * r84397;
double r84399 = r84389 + r84398;
return r84399;
}
double f(double x, double y, double z, double t, double a) {
double r84400 = a;
double r84401 = -1.8036409474713058e-183;
bool r84402 = r84400 <= r84401;
double r84403 = x;
double r84404 = y;
double r84405 = z;
double r84406 = r84404 - r84405;
double r84407 = t;
double r84408 = r84407 - r84403;
double r84409 = cbrt(r84408);
double r84410 = r84409 * r84409;
double r84411 = r84400 - r84405;
double r84412 = cbrt(r84411);
double r84413 = r84412 * r84412;
double r84414 = r84410 / r84413;
double r84415 = cbrt(r84414);
double r84416 = r84415 * r84415;
double r84417 = r84406 * r84416;
double r84418 = r84417 * r84415;
double r84419 = r84409 / r84412;
double r84420 = r84418 * r84419;
double r84421 = r84403 + r84420;
double r84422 = 4.148123673034126e-100;
bool r84423 = r84400 <= r84422;
double r84424 = r84403 / r84405;
double r84425 = r84407 / r84405;
double r84426 = r84424 - r84425;
double r84427 = r84404 * r84426;
double r84428 = r84427 + r84407;
double r84429 = r84406 / r84413;
double r84430 = r84408 / r84412;
double r84431 = r84429 * r84430;
double r84432 = r84403 + r84431;
double r84433 = r84423 ? r84428 : r84432;
double r84434 = r84402 ? r84421 : r84433;
return r84434;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if a < -1.8036409474713058e-183Initial program 12.6
rmApplied add-cube-cbrt13.1
Applied add-cube-cbrt13.2
Applied times-frac13.2
Applied associate-*r*10.3
rmApplied add-cube-cbrt10.4
Applied associate-*r*10.4
if -1.8036409474713058e-183 < a < 4.148123673034126e-100Initial program 24.5
rmApplied add-cube-cbrt25.2
Applied add-cube-cbrt25.4
Applied times-frac25.4
Applied associate-*r*19.6
rmApplied add-cube-cbrt19.8
Applied associate-*r*19.7
Taylor expanded around inf 14.2
Simplified12.2
if 4.148123673034126e-100 < a Initial program 10.2
rmApplied add-cube-cbrt10.7
Applied *-un-lft-identity10.7
Applied times-frac10.7
Applied associate-*r*8.4
Simplified8.4
Final simplification10.1
herbie shell --seed 2019323 +o rules:numerics
(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)))))