\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 -6.172764092322424109949396121339735582564 \cdot 10^{59}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(\frac{2}{2 \cdot \sqrt{2}}, \frac{t}{x \cdot x}, -\mathsf{fma}\left(\frac{2}{\sqrt{2}}, \frac{t}{x}, \mathsf{fma}\left(t, \sqrt{2}, \frac{t}{x \cdot x} \cdot \frac{2}{\sqrt{2}}\right)\right)\right)}\\
\mathbf{elif}\;t \le 1.623710652061729557401163312786003220273 \cdot 10^{60}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\mathsf{fma}\left(4, \frac{t \cdot t}{x}, 2 \cdot \left(\sqrt{t \cdot t + \ell \cdot \frac{\ell}{x}} \cdot \sqrt{t \cdot t + \ell \cdot \frac{\ell}{x}}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(\frac{2}{x}, \frac{t}{\sqrt{2}}, \sqrt{2} \cdot t + 2 \cdot \left(\frac{\frac{t}{\sqrt{2}}}{x \cdot x} - \frac{t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)}\right)\right)}\\
\end{array}double f(double x, double l, double t) {
double r1210823 = 2.0;
double r1210824 = sqrt(r1210823);
double r1210825 = t;
double r1210826 = r1210824 * r1210825;
double r1210827 = x;
double r1210828 = 1.0;
double r1210829 = r1210827 + r1210828;
double r1210830 = r1210827 - r1210828;
double r1210831 = r1210829 / r1210830;
double r1210832 = l;
double r1210833 = r1210832 * r1210832;
double r1210834 = r1210825 * r1210825;
double r1210835 = r1210823 * r1210834;
double r1210836 = r1210833 + r1210835;
double r1210837 = r1210831 * r1210836;
double r1210838 = r1210837 - r1210833;
double r1210839 = sqrt(r1210838);
double r1210840 = r1210826 / r1210839;
return r1210840;
}
double f(double x, double l, double t) {
double r1210841 = t;
double r1210842 = -6.172764092322424e+59;
bool r1210843 = r1210841 <= r1210842;
double r1210844 = 2.0;
double r1210845 = sqrt(r1210844);
double r1210846 = r1210845 * r1210841;
double r1210847 = r1210844 * r1210845;
double r1210848 = r1210844 / r1210847;
double r1210849 = x;
double r1210850 = r1210849 * r1210849;
double r1210851 = r1210841 / r1210850;
double r1210852 = r1210844 / r1210845;
double r1210853 = r1210841 / r1210849;
double r1210854 = r1210851 * r1210852;
double r1210855 = fma(r1210841, r1210845, r1210854);
double r1210856 = fma(r1210852, r1210853, r1210855);
double r1210857 = -r1210856;
double r1210858 = fma(r1210848, r1210851, r1210857);
double r1210859 = r1210846 / r1210858;
double r1210860 = 1.6237106520617296e+60;
bool r1210861 = r1210841 <= r1210860;
double r1210862 = 4.0;
double r1210863 = r1210841 * r1210841;
double r1210864 = r1210863 / r1210849;
double r1210865 = l;
double r1210866 = r1210865 / r1210849;
double r1210867 = r1210865 * r1210866;
double r1210868 = r1210863 + r1210867;
double r1210869 = sqrt(r1210868);
double r1210870 = r1210869 * r1210869;
double r1210871 = r1210844 * r1210870;
double r1210872 = fma(r1210862, r1210864, r1210871);
double r1210873 = sqrt(r1210872);
double r1210874 = r1210846 / r1210873;
double r1210875 = r1210844 / r1210849;
double r1210876 = r1210841 / r1210845;
double r1210877 = r1210876 / r1210850;
double r1210878 = r1210850 * r1210847;
double r1210879 = r1210841 / r1210878;
double r1210880 = r1210877 - r1210879;
double r1210881 = r1210844 * r1210880;
double r1210882 = r1210846 + r1210881;
double r1210883 = fma(r1210875, r1210876, r1210882);
double r1210884 = r1210846 / r1210883;
double r1210885 = r1210861 ? r1210874 : r1210884;
double r1210886 = r1210843 ? r1210859 : r1210885;
return r1210886;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -6.172764092322424e+59Initial program 45.1
Taylor expanded around -inf 3.5
Simplified3.6
if -6.172764092322424e+59 < t < 1.6237106520617296e+60Initial program 40.3
Taylor expanded around inf 17.9
Simplified17.9
rmApplied *-un-lft-identity17.9
Applied times-frac14.5
Simplified14.5
rmApplied add-sqr-sqrt14.5
if 1.6237106520617296e+60 < t Initial program 45.8
Taylor expanded around inf 3.8
Simplified3.8
Final simplification9.3
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2.0) t) (sqrt (- (* (/ (+ x 1.0) (- x 1.0)) (+ (* l l) (* 2.0 (* t t)))) (* l l)))))