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} \le -1.28776030063432027 \cdot 10^{-300}:\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}\right)\\
\mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x + \frac{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\\
\end{array}double f(double x, double y, double z, double t, double a) {
double r134625 = x;
double r134626 = y;
double r134627 = z;
double r134628 = r134626 - r134627;
double r134629 = t;
double r134630 = r134629 - r134625;
double r134631 = a;
double r134632 = r134631 - r134627;
double r134633 = r134630 / r134632;
double r134634 = r134628 * r134633;
double r134635 = r134625 + r134634;
return r134635;
}
double f(double x, double y, double z, double t, double a) {
double r134636 = x;
double r134637 = y;
double r134638 = z;
double r134639 = r134637 - r134638;
double r134640 = t;
double r134641 = r134640 - r134636;
double r134642 = a;
double r134643 = r134642 - r134638;
double r134644 = r134641 / r134643;
double r134645 = r134639 * r134644;
double r134646 = r134636 + r134645;
double r134647 = -1.2877603006343203e-300;
bool r134648 = r134646 <= r134647;
double r134649 = cbrt(r134639);
double r134650 = r134649 * r134649;
double r134651 = cbrt(r134643);
double r134652 = r134650 / r134651;
double r134653 = r134649 / r134651;
double r134654 = r134641 / r134651;
double r134655 = r134653 * r134654;
double r134656 = r134652 * r134655;
double r134657 = r134636 + r134656;
double r134658 = 0.0;
bool r134659 = r134646 <= r134658;
double r134660 = r134636 * r134637;
double r134661 = r134660 / r134638;
double r134662 = r134661 + r134640;
double r134663 = r134640 * r134637;
double r134664 = r134663 / r134638;
double r134665 = r134662 - r134664;
double r134666 = r134651 * r134651;
double r134667 = r134639 / r134666;
double r134668 = cbrt(r134666);
double r134669 = r134667 / r134668;
double r134670 = cbrt(r134651);
double r134671 = r134641 / r134670;
double r134672 = r134669 * r134671;
double r134673 = r134636 + r134672;
double r134674 = r134659 ? r134665 : r134673;
double r134675 = r134648 ? r134657 : r134674;
return r134675;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t



Bits error versus a
Results
if (+ x (* (- y z) (/ (- t x) (- a z)))) < -1.2877603006343203e-300Initial program 8.2
rmApplied add-cube-cbrt8.9
Applied *-un-lft-identity8.9
Applied times-frac8.9
Applied associate-*r*5.6
Simplified5.6
rmApplied add-cube-cbrt5.5
Applied times-frac5.5
Applied associate-*l*5.1
if -1.2877603006343203e-300 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 0.0Initial program 61.5
Taylor expanded around inf 24.9
if 0.0 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.5
rmApplied add-cube-cbrt8.1
Applied *-un-lft-identity8.1
Applied times-frac8.1
Applied associate-*r*5.2
Simplified5.2
rmApplied add-cube-cbrt5.2
Applied cbrt-prod5.3
Applied *-un-lft-identity5.3
Applied times-frac5.3
Applied associate-*r*4.9
Simplified4.8
Final simplification7.7
herbie shell --seed 2020021
(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)))))