\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\begin{array}{l}
\mathbf{if}\;t \le -8.703772595808916454667436984685994375446 \cdot 10^{141}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le 2.555685633755422263184735039093424552333 \cdot 10^{-264}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \ell \cdot \frac{\ell}{x}\right)}}\\
\mathbf{elif}\;t \le 5.748160003020186103470224388296769238726 \cdot 10^{-158}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{\sqrt{2} \cdot {x}^{2}} + \frac{t}{\sqrt{2} \cdot x}\right) + \left(\sqrt{2} \cdot t - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\mathbf{elif}\;t \le 4.837673144276178631404051943017687346215 \cdot 10^{123}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(\sqrt{{t}^{2} + \frac{\ell}{\frac{x}{\ell}}} \cdot \left(\sqrt{\sqrt{{t}^{2} + \frac{\ell}{\frac{x}{\ell}}}} \cdot \sqrt{\sqrt{{t}^{2} + \frac{\ell}{\frac{x}{\ell}}}}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{\sqrt{2} \cdot {x}^{2}} + \frac{t}{\sqrt{2} \cdot x}\right) + \left(\sqrt{2} \cdot t - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r34704 = 2.0;
double r34705 = sqrt(r34704);
double r34706 = t;
double r34707 = r34705 * r34706;
double r34708 = x;
double r34709 = 1.0;
double r34710 = r34708 + r34709;
double r34711 = r34708 - r34709;
double r34712 = r34710 / r34711;
double r34713 = l;
double r34714 = r34713 * r34713;
double r34715 = r34706 * r34706;
double r34716 = r34704 * r34715;
double r34717 = r34714 + r34716;
double r34718 = r34712 * r34717;
double r34719 = r34718 - r34714;
double r34720 = sqrt(r34719);
double r34721 = r34707 / r34720;
return r34721;
}
double f(double x, double l, double t) {
double r34722 = t;
double r34723 = -8.703772595808916e+141;
bool r34724 = r34722 <= r34723;
double r34725 = 2.0;
double r34726 = sqrt(r34725);
double r34727 = r34726 * r34722;
double r34728 = 3.0;
double r34729 = pow(r34726, r34728);
double r34730 = x;
double r34731 = 2.0;
double r34732 = pow(r34730, r34731);
double r34733 = r34729 * r34732;
double r34734 = r34722 / r34733;
double r34735 = r34726 * r34732;
double r34736 = r34722 / r34735;
double r34737 = r34734 - r34736;
double r34738 = r34725 * r34737;
double r34739 = r34738 - r34727;
double r34740 = r34726 * r34730;
double r34741 = r34722 / r34740;
double r34742 = r34725 * r34741;
double r34743 = r34739 - r34742;
double r34744 = r34727 / r34743;
double r34745 = 2.5556856337554223e-264;
bool r34746 = r34722 <= r34745;
double r34747 = 4.0;
double r34748 = pow(r34722, r34731);
double r34749 = r34748 / r34730;
double r34750 = r34747 * r34749;
double r34751 = l;
double r34752 = r34751 / r34730;
double r34753 = r34751 * r34752;
double r34754 = r34748 + r34753;
double r34755 = r34725 * r34754;
double r34756 = r34750 + r34755;
double r34757 = sqrt(r34756);
double r34758 = r34727 / r34757;
double r34759 = 5.748160003020186e-158;
bool r34760 = r34722 <= r34759;
double r34761 = r34736 + r34741;
double r34762 = r34725 * r34761;
double r34763 = r34725 * r34734;
double r34764 = r34727 - r34763;
double r34765 = r34762 + r34764;
double r34766 = r34727 / r34765;
double r34767 = 4.8376731442761786e+123;
bool r34768 = r34722 <= r34767;
double r34769 = r34730 / r34751;
double r34770 = r34751 / r34769;
double r34771 = r34748 + r34770;
double r34772 = sqrt(r34771);
double r34773 = sqrt(r34772);
double r34774 = r34773 * r34773;
double r34775 = r34772 * r34774;
double r34776 = r34725 * r34775;
double r34777 = r34750 + r34776;
double r34778 = sqrt(r34777);
double r34779 = r34727 / r34778;
double r34780 = r34768 ? r34779 : r34766;
double r34781 = r34760 ? r34766 : r34780;
double r34782 = r34746 ? r34758 : r34781;
double r34783 = r34724 ? r34744 : r34782;
return r34783;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -8.703772595808916e+141Initial program 58.9
Taylor expanded around -inf 2.1
Simplified2.1
if -8.703772595808916e+141 < t < 2.5556856337554223e-264Initial program 37.2
Taylor expanded around inf 17.0
Simplified17.0
rmApplied *-un-lft-identity17.0
Applied add-sqr-sqrt41.0
Applied unpow-prod-down41.0
Applied times-frac39.0
Simplified38.9
Simplified12.9
if 2.5556856337554223e-264 < t < 5.748160003020186e-158 or 4.8376731442761786e+123 < t Initial program 57.1
Taylor expanded around inf 10.8
Simplified10.8
if 5.748160003020186e-158 < t < 4.8376731442761786e+123Initial program 25.7
Taylor expanded around inf 9.9
Simplified9.9
rmApplied unpow29.9
Applied associate-/l*4.8
rmApplied add-sqr-sqrt4.8
rmApplied add-sqr-sqrt4.8
Applied sqrt-prod4.8
Final simplification8.7
herbie shell --seed 2020001
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
:precision binary64
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))