\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.2693742662560688 \cdot 10^{+103}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x} - \left(\frac{2}{x \cdot \sqrt{2}} \cdot t + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le -4.157152618984683 \cdot 10^{-167}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\frac{4}{\frac{\frac{x}{t}}{t}} + 2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right)}}\\
\mathbf{elif}\;t \le -2.3234922006583374 \cdot 10^{-268}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x} - \left(\frac{2}{x \cdot \sqrt{2}} \cdot t + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 1.512500005971486 \cdot 10^{-194}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\frac{4}{\frac{\frac{x}{t}}{t}} + 2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right)}}\\
\mathbf{elif}\;t \le 1.672688434817364 \cdot 10^{-158}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2}{x \cdot \sqrt{2}} \cdot t + \sqrt{2} \cdot t\right) - \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x}}\\
\mathbf{elif}\;t \le 1.0420326231034605 \cdot 10^{+133}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\frac{4}{\frac{\frac{x}{t}}{t}} + 2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2}{x \cdot \sqrt{2}} \cdot t + \sqrt{2} \cdot t\right) - \left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x}}\\
\end{array}double f(double x, double l, double t) {
double r1665854 = 2.0;
double r1665855 = sqrt(r1665854);
double r1665856 = t;
double r1665857 = r1665855 * r1665856;
double r1665858 = x;
double r1665859 = 1.0;
double r1665860 = r1665858 + r1665859;
double r1665861 = r1665858 - r1665859;
double r1665862 = r1665860 / r1665861;
double r1665863 = l;
double r1665864 = r1665863 * r1665863;
double r1665865 = r1665856 * r1665856;
double r1665866 = r1665854 * r1665865;
double r1665867 = r1665864 + r1665866;
double r1665868 = r1665862 * r1665867;
double r1665869 = r1665868 - r1665864;
double r1665870 = sqrt(r1665869);
double r1665871 = r1665857 / r1665870;
return r1665871;
}
double f(double x, double l, double t) {
double r1665872 = t;
double r1665873 = -2.2693742662560688e+103;
bool r1665874 = r1665872 <= r1665873;
double r1665875 = 2.0;
double r1665876 = sqrt(r1665875);
double r1665877 = r1665876 * r1665872;
double r1665878 = 1.0;
double r1665879 = r1665878 / r1665876;
double r1665880 = r1665875 / r1665876;
double r1665881 = r1665879 - r1665880;
double r1665882 = x;
double r1665883 = r1665882 * r1665882;
double r1665884 = r1665872 / r1665883;
double r1665885 = r1665881 * r1665884;
double r1665886 = r1665882 * r1665876;
double r1665887 = r1665875 / r1665886;
double r1665888 = r1665887 * r1665872;
double r1665889 = r1665888 + r1665877;
double r1665890 = r1665885 - r1665889;
double r1665891 = r1665877 / r1665890;
double r1665892 = -4.157152618984683e-167;
bool r1665893 = r1665872 <= r1665892;
double r1665894 = 4.0;
double r1665895 = r1665882 / r1665872;
double r1665896 = r1665895 / r1665872;
double r1665897 = r1665894 / r1665896;
double r1665898 = l;
double r1665899 = r1665882 / r1665898;
double r1665900 = r1665898 / r1665899;
double r1665901 = r1665872 * r1665872;
double r1665902 = r1665900 + r1665901;
double r1665903 = r1665875 * r1665902;
double r1665904 = r1665897 + r1665903;
double r1665905 = sqrt(r1665904);
double r1665906 = r1665877 / r1665905;
double r1665907 = -2.3234922006583374e-268;
bool r1665908 = r1665872 <= r1665907;
double r1665909 = 1.512500005971486e-194;
bool r1665910 = r1665872 <= r1665909;
double r1665911 = 1.672688434817364e-158;
bool r1665912 = r1665872 <= r1665911;
double r1665913 = r1665889 - r1665885;
double r1665914 = r1665877 / r1665913;
double r1665915 = 1.0420326231034605e+133;
bool r1665916 = r1665872 <= r1665915;
double r1665917 = r1665916 ? r1665906 : r1665914;
double r1665918 = r1665912 ? r1665914 : r1665917;
double r1665919 = r1665910 ? r1665906 : r1665918;
double r1665920 = r1665908 ? r1665891 : r1665919;
double r1665921 = r1665893 ? r1665906 : r1665920;
double r1665922 = r1665874 ? r1665891 : r1665921;
return r1665922;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.2693742662560688e+103 or -4.157152618984683e-167 < t < -2.3234922006583374e-268Initial program 53.4
Taylor expanded around -inf 11.0
Simplified11.0
if -2.2693742662560688e+103 < t < -4.157152618984683e-167 or -2.3234922006583374e-268 < t < 1.512500005971486e-194 or 1.672688434817364e-158 < t < 1.0420326231034605e+133Initial program 32.3
Taylor expanded around inf 14.3
Simplified14.3
rmApplied *-un-lft-identity14.3
Applied times-frac9.8
Simplified9.8
Taylor expanded around inf 14.3
Simplified9.8
if 1.512500005971486e-194 < t < 1.672688434817364e-158 or 1.0420326231034605e+133 < t Initial program 56.6
Taylor expanded around inf 5.4
Simplified5.4
Final simplification9.3
herbie shell --seed 2019138
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))