x + \left(y - z\right) \cdot \frac{t - x}{a - z}\begin{array}{l}
\mathbf{if}\;z \le -3.32143684010780844 \cdot 10^{165} \lor \neg \left(z \le 1.7200626204721968 \cdot 10^{178}\right):\\
\;\;\;\;\frac{y}{\frac{a - z}{t - x}} - -1 \cdot t\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right)\right) \cdot \frac{\sqrt[3]{y}}{\frac{a - z}{\sqrt[3]{t - x}}} - \left(\frac{z}{\frac{a - z}{t - x}} - x\right)\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r145579 = x;
double r145580 = y;
double r145581 = z;
double r145582 = r145580 - r145581;
double r145583 = t;
double r145584 = r145583 - r145579;
double r145585 = a;
double r145586 = r145585 - r145581;
double r145587 = r145584 / r145586;
double r145588 = r145582 * r145587;
double r145589 = r145579 + r145588;
return r145589;
}
double f(double x, double y, double z, double t, double a) {
double r145590 = z;
double r145591 = -3.3214368401078084e+165;
bool r145592 = r145590 <= r145591;
double r145593 = 1.7200626204721968e+178;
bool r145594 = r145590 <= r145593;
double r145595 = !r145594;
bool r145596 = r145592 || r145595;
double r145597 = y;
double r145598 = a;
double r145599 = r145598 - r145590;
double r145600 = t;
double r145601 = x;
double r145602 = r145600 - r145601;
double r145603 = r145599 / r145602;
double r145604 = r145597 / r145603;
double r145605 = -1.0;
double r145606 = r145605 * r145600;
double r145607 = r145604 - r145606;
double r145608 = cbrt(r145597);
double r145609 = r145608 * r145608;
double r145610 = cbrt(r145602);
double r145611 = r145610 * r145610;
double r145612 = r145609 * r145611;
double r145613 = r145599 / r145610;
double r145614 = r145608 / r145613;
double r145615 = r145612 * r145614;
double r145616 = r145590 / r145603;
double r145617 = r145616 - r145601;
double r145618 = r145615 - r145617;
double r145619 = r145596 ? r145607 : r145618;
return r145619;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if z < -3.3214368401078084e+165 or 1.7200626204721968e+178 < z Initial program 28.7
Simplified28.6
rmApplied clear-num28.9
rmApplied fma-udef29.0
Simplified29.0
rmApplied div-sub29.0
Applied associate-+l-24.9
Taylor expanded around inf 14.8
if -3.3214368401078084e+165 < z < 1.7200626204721968e+178Initial program 10.0
Simplified10.0
rmApplied clear-num10.1
rmApplied fma-udef10.2
Simplified9.7
rmApplied div-sub9.7
Applied associate-+l-8.0
rmApplied add-cube-cbrt8.4
Applied *-un-lft-identity8.4
Applied times-frac8.4
Applied add-cube-cbrt8.5
Applied times-frac8.5
Simplified8.5
Final simplification10.1
herbie shell --seed 2020018 +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)))))