\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 -2.158603847117975293576788871394724556965 \cdot 10^{131}:\\
\;\;\;\;\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.156029264188128620970526443969820525521 \cdot 10^{-161}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\frac{x}{\ell}}\right)}}\\
\mathbf{elif}\;t \le -4.700962454941307495318117198543528290323 \cdot 10^{-227}:\\
\;\;\;\;\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 7.982560885800570570011328075518621667797 \cdot 10^{87}:\\
\;\;\;\;\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 r43828 = 2.0;
double r43829 = sqrt(r43828);
double r43830 = t;
double r43831 = r43829 * r43830;
double r43832 = x;
double r43833 = 1.0;
double r43834 = r43832 + r43833;
double r43835 = r43832 - r43833;
double r43836 = r43834 / r43835;
double r43837 = l;
double r43838 = r43837 * r43837;
double r43839 = r43830 * r43830;
double r43840 = r43828 * r43839;
double r43841 = r43838 + r43840;
double r43842 = r43836 * r43841;
double r43843 = r43842 - r43838;
double r43844 = sqrt(r43843);
double r43845 = r43831 / r43844;
return r43845;
}
double f(double x, double l, double t) {
double r43846 = t;
double r43847 = -2.1586038471179753e+131;
bool r43848 = r43846 <= r43847;
double r43849 = 2.0;
double r43850 = sqrt(r43849);
double r43851 = r43850 * r43846;
double r43852 = 3.0;
double r43853 = pow(r43850, r43852);
double r43854 = x;
double r43855 = 2.0;
double r43856 = pow(r43854, r43855);
double r43857 = r43853 * r43856;
double r43858 = r43846 / r43857;
double r43859 = r43850 * r43856;
double r43860 = r43846 / r43859;
double r43861 = r43858 - r43860;
double r43862 = r43849 * r43861;
double r43863 = r43862 - r43851;
double r43864 = r43850 * r43854;
double r43865 = r43846 / r43864;
double r43866 = r43849 * r43865;
double r43867 = r43863 - r43866;
double r43868 = r43851 / r43867;
double r43869 = -2.1560292641881286e-161;
bool r43870 = r43846 <= r43869;
double r43871 = 4.0;
double r43872 = pow(r43846, r43855);
double r43873 = r43872 / r43854;
double r43874 = r43871 * r43873;
double r43875 = l;
double r43876 = r43854 / r43875;
double r43877 = r43875 / r43876;
double r43878 = r43872 + r43877;
double r43879 = r43849 * r43878;
double r43880 = r43874 + r43879;
double r43881 = sqrt(r43880);
double r43882 = r43851 / r43881;
double r43883 = -4.7009624549413075e-227;
bool r43884 = r43846 <= r43883;
double r43885 = 7.98256088580057e+87;
bool r43886 = r43846 <= r43885;
double r43887 = sqrt(r43878);
double r43888 = sqrt(r43887);
double r43889 = r43888 * r43888;
double r43890 = r43887 * r43889;
double r43891 = r43849 * r43890;
double r43892 = r43874 + r43891;
double r43893 = sqrt(r43892);
double r43894 = r43851 / r43893;
double r43895 = r43860 + r43865;
double r43896 = r43849 * r43895;
double r43897 = r43849 * r43858;
double r43898 = r43851 - r43897;
double r43899 = r43896 + r43898;
double r43900 = r43851 / r43899;
double r43901 = r43886 ? r43894 : r43900;
double r43902 = r43884 ? r43868 : r43901;
double r43903 = r43870 ? r43882 : r43902;
double r43904 = r43848 ? r43868 : r43903;
return r43904;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.1586038471179753e+131 or -2.1560292641881286e-161 < t < -4.7009624549413075e-227Initial program 58.8
Taylor expanded around -inf 8.0
Simplified8.0
if -2.1586038471179753e+131 < t < -2.1560292641881286e-161Initial program 25.4
Taylor expanded around inf 10.4
Simplified10.4
rmApplied unpow210.4
Applied associate-/l*4.8
if -4.7009624549413075e-227 < t < 7.98256088580057e+87Initial program 42.6
Taylor expanded around inf 18.8
Simplified18.8
rmApplied unpow218.8
Applied associate-/l*14.9
rmApplied add-sqr-sqrt14.9
rmApplied add-sqr-sqrt14.9
Applied sqrt-prod15.0
if 7.98256088580057e+87 < t Initial program 48.4
Taylor expanded around inf 3.2
Simplified3.2
Final simplification8.6
herbie shell --seed 2019291
(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)))))