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 -4.036071025291867476784689347765133690589 \cdot 10^{-301}:\\
\;\;\;\;x + \left(\left(y - z\right) \cdot \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}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 6.763639978793038629839735165330597510699 \cdot 10^{-273}:\\
\;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\
\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 r102692 = x;
double r102693 = y;
double r102694 = z;
double r102695 = r102693 - r102694;
double r102696 = t;
double r102697 = r102696 - r102692;
double r102698 = a;
double r102699 = r102698 - r102694;
double r102700 = r102697 / r102699;
double r102701 = r102695 * r102700;
double r102702 = r102692 + r102701;
return r102702;
}
double f(double x, double y, double z, double t, double a) {
double r102703 = x;
double r102704 = y;
double r102705 = z;
double r102706 = r102704 - r102705;
double r102707 = t;
double r102708 = r102707 - r102703;
double r102709 = a;
double r102710 = r102709 - r102705;
double r102711 = r102708 / r102710;
double r102712 = r102706 * r102711;
double r102713 = r102703 + r102712;
double r102714 = -4.0360710252918675e-301;
bool r102715 = r102713 <= r102714;
double r102716 = cbrt(r102708);
double r102717 = r102716 * r102716;
double r102718 = cbrt(r102710);
double r102719 = r102718 * r102718;
double r102720 = r102717 / r102719;
double r102721 = r102706 * r102720;
double r102722 = r102716 / r102718;
double r102723 = r102721 * r102722;
double r102724 = r102703 + r102723;
double r102725 = 6.763639978793039e-273;
bool r102726 = r102713 <= r102725;
double r102727 = r102703 * r102704;
double r102728 = r102727 / r102705;
double r102729 = r102728 + r102707;
double r102730 = r102707 * r102704;
double r102731 = r102730 / r102705;
double r102732 = r102729 - r102731;
double r102733 = r102706 / r102719;
double r102734 = r102708 / r102718;
double r102735 = r102733 * r102734;
double r102736 = r102703 + r102735;
double r102737 = r102726 ? r102732 : r102736;
double r102738 = r102715 ? r102724 : r102737;
return r102738;
}



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)))) < -4.0360710252918675e-301Initial program 7.4
rmApplied add-cube-cbrt8.1
Applied add-cube-cbrt8.3
Applied times-frac8.3
Applied associate-*r*4.7
if -4.0360710252918675e-301 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 6.763639978793039e-273Initial program 59.9
Taylor expanded around inf 25.9
if 6.763639978793039e-273 < (+ x (* (- y z) (/ (- t x) (- a z)))) Initial program 7.4
rmApplied add-cube-cbrt8.1
Applied *-un-lft-identity8.1
Applied times-frac8.1
Applied associate-*r*5.4
Simplified5.4
Final simplification7.9
herbie shell --seed 2019308
(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)))))