\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 -3.3583535173842932 \cdot 10^{+75}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x} - \left(\frac{t}{x \cdot \sqrt{2}} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 1.8956945634134774 \cdot 10^{-265}:\\
\;\;\;\;\frac{\left(\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}\right) \cdot \left(t \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}\right)\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{\left(\left(\frac{4}{x} + 2\right) \cdot t\right) \cdot t + \left(\ell \cdot 2\right) \cdot \frac{\ell}{x}}}\\
\mathbf{elif}\;t \le 2.6753623478297 \cdot 10^{-158}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{\frac{2}{x}}{x} + \frac{2}{x}\right) \cdot \frac{t}{\sqrt{2}} + \left(\sqrt{2} \cdot t - \frac{t \cdot \frac{1}{\sqrt{2}}}{x \cdot x}\right)}\\
\mathbf{elif}\;t \le 2.0371843034385597 \cdot 10^{+68}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(t \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{\left(\left(\frac{4}{x} + 2\right) \cdot t\right) \cdot t + \left(\ell \cdot 2\right) \cdot \frac{\ell}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{\frac{2}{x}}{x} + \frac{2}{x}\right) \cdot \frac{t}{\sqrt{2}} + \left(\sqrt{2} \cdot t - \frac{t \cdot \frac{1}{\sqrt{2}}}{x \cdot x}\right)}\\
\end{array}double f(double x, double l, double t) {
double r6058821 = 2.0;
double r6058822 = sqrt(r6058821);
double r6058823 = t;
double r6058824 = r6058822 * r6058823;
double r6058825 = x;
double r6058826 = 1.0;
double r6058827 = r6058825 + r6058826;
double r6058828 = r6058825 - r6058826;
double r6058829 = r6058827 / r6058828;
double r6058830 = l;
double r6058831 = r6058830 * r6058830;
double r6058832 = r6058823 * r6058823;
double r6058833 = r6058821 * r6058832;
double r6058834 = r6058831 + r6058833;
double r6058835 = r6058829 * r6058834;
double r6058836 = r6058835 - r6058831;
double r6058837 = sqrt(r6058836);
double r6058838 = r6058824 / r6058837;
return r6058838;
}
double f(double x, double l, double t) {
double r6058839 = t;
double r6058840 = -3.3583535173842932e+75;
bool r6058841 = r6058839 <= r6058840;
double r6058842 = 2.0;
double r6058843 = sqrt(r6058842);
double r6058844 = r6058843 * r6058839;
double r6058845 = 1.0;
double r6058846 = r6058845 / r6058843;
double r6058847 = r6058842 / r6058843;
double r6058848 = r6058846 - r6058847;
double r6058849 = x;
double r6058850 = r6058849 * r6058849;
double r6058851 = r6058839 / r6058850;
double r6058852 = r6058848 * r6058851;
double r6058853 = r6058849 * r6058843;
double r6058854 = r6058839 / r6058853;
double r6058855 = r6058854 * r6058842;
double r6058856 = r6058855 + r6058844;
double r6058857 = r6058852 - r6058856;
double r6058858 = r6058844 / r6058857;
double r6058859 = 1.8956945634134774e-265;
bool r6058860 = r6058839 <= r6058859;
double r6058861 = cbrt(r6058843);
double r6058862 = cbrt(r6058861);
double r6058863 = r6058862 * r6058862;
double r6058864 = r6058839 * r6058862;
double r6058865 = r6058863 * r6058864;
double r6058866 = r6058861 * r6058861;
double r6058867 = r6058865 * r6058866;
double r6058868 = 4.0;
double r6058869 = r6058868 / r6058849;
double r6058870 = r6058869 + r6058842;
double r6058871 = r6058870 * r6058839;
double r6058872 = r6058871 * r6058839;
double r6058873 = l;
double r6058874 = r6058873 * r6058842;
double r6058875 = r6058873 / r6058849;
double r6058876 = r6058874 * r6058875;
double r6058877 = r6058872 + r6058876;
double r6058878 = sqrt(r6058877);
double r6058879 = r6058867 / r6058878;
double r6058880 = 2.6753623478297e-158;
bool r6058881 = r6058839 <= r6058880;
double r6058882 = r6058842 / r6058849;
double r6058883 = r6058882 / r6058849;
double r6058884 = r6058883 + r6058882;
double r6058885 = r6058839 / r6058843;
double r6058886 = r6058884 * r6058885;
double r6058887 = r6058839 * r6058846;
double r6058888 = r6058887 / r6058850;
double r6058889 = r6058844 - r6058888;
double r6058890 = r6058886 + r6058889;
double r6058891 = r6058844 / r6058890;
double r6058892 = 2.0371843034385597e+68;
bool r6058893 = r6058839 <= r6058892;
double r6058894 = r6058839 * r6058861;
double r6058895 = r6058866 * r6058894;
double r6058896 = r6058895 / r6058878;
double r6058897 = r6058893 ? r6058896 : r6058891;
double r6058898 = r6058881 ? r6058891 : r6058897;
double r6058899 = r6058860 ? r6058879 : r6058898;
double r6058900 = r6058841 ? r6058858 : r6058899;
return r6058900;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -3.3583535173842932e+75Initial program 47.9
Taylor expanded around -inf 3.4
Simplified3.4
if -3.3583535173842932e+75 < t < 1.8956945634134774e-265Initial program 40.7
Taylor expanded around -inf 18.7
Simplified14.9
rmApplied add-cube-cbrt14.9
Applied associate-*l*14.9
rmApplied add-cube-cbrt14.9
Applied associate-*l*15.0
if 1.8956945634134774e-265 < t < 2.6753623478297e-158 or 2.0371843034385597e+68 < t Initial program 49.5
Taylor expanded around inf 9.9
Simplified9.9
if 2.6753623478297e-158 < t < 2.0371843034385597e+68Initial program 27.0
Taylor expanded around -inf 9.7
Simplified4.0
rmApplied add-cube-cbrt4.0
Applied associate-*l*4.0
Final simplification8.9
herbie shell --seed 2019128
(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)))))