\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 -5.488419163648193597366161151316767145753 \cdot 10^{95}:\\
\;\;\;\;\frac{\sqrt{2}}{-\mathsf{fma}\left(\frac{2}{\sqrt{2}}, \frac{t}{x}, \sqrt{2} \cdot t\right)} \cdot t\\
\mathbf{elif}\;t \le 3.654137014915323109348805874635869440815 \cdot 10^{-285}:\\
\;\;\;\;t \cdot \left(\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \frac{\sqrt[3]{\sqrt{2}}}{\sqrt{\mathsf{fma}\left(2, t \cdot t, \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{x}, \frac{\left(t \cdot t\right) \cdot 4}{x}\right)\right)}}\right)\\
\mathbf{elif}\;t \le 2.084962264332403679721070208359607902211 \cdot 10^{-159}:\\
\;\;\;\;\left(\frac{\sqrt[3]{\sqrt{2}}}{\mathsf{fma}\left(\frac{\frac{t}{\sqrt{2}}}{x}, 2, \sqrt{2} \cdot t\right)} \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)\right) \cdot t\\
\mathbf{elif}\;t \le 1.814580254256021431914078254441608287695 \cdot 10^{149}:\\
\;\;\;\;t \cdot \sqrt{\frac{2}{\mathsf{fma}\left(2, t \cdot t, \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{x}, \frac{\left(t \cdot t\right) \cdot 4}{x}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;t \cdot \frac{\sqrt{2}}{\mathsf{fma}\left(2, \frac{\frac{t}{\sqrt{2}}}{x} - \frac{\frac{t}{x \cdot x}}{2 \cdot \sqrt{2}}, \sqrt{2} \cdot t\right)}\\
\end{array}double f(double x, double l, double t) {
double r42782 = 2.0;
double r42783 = sqrt(r42782);
double r42784 = t;
double r42785 = r42783 * r42784;
double r42786 = x;
double r42787 = 1.0;
double r42788 = r42786 + r42787;
double r42789 = r42786 - r42787;
double r42790 = r42788 / r42789;
double r42791 = l;
double r42792 = r42791 * r42791;
double r42793 = r42784 * r42784;
double r42794 = r42782 * r42793;
double r42795 = r42792 + r42794;
double r42796 = r42790 * r42795;
double r42797 = r42796 - r42792;
double r42798 = sqrt(r42797);
double r42799 = r42785 / r42798;
return r42799;
}
double f(double x, double l, double t) {
double r42800 = t;
double r42801 = -5.488419163648194e+95;
bool r42802 = r42800 <= r42801;
double r42803 = 2.0;
double r42804 = sqrt(r42803);
double r42805 = r42803 / r42804;
double r42806 = x;
double r42807 = r42800 / r42806;
double r42808 = r42804 * r42800;
double r42809 = fma(r42805, r42807, r42808);
double r42810 = -r42809;
double r42811 = r42804 / r42810;
double r42812 = r42811 * r42800;
double r42813 = 3.654137014915323e-285;
bool r42814 = r42800 <= r42813;
double r42815 = cbrt(r42804);
double r42816 = r42815 * r42815;
double r42817 = r42800 * r42800;
double r42818 = l;
double r42819 = r42818 / r42806;
double r42820 = r42818 * r42819;
double r42821 = 4.0;
double r42822 = r42817 * r42821;
double r42823 = r42822 / r42806;
double r42824 = fma(r42803, r42820, r42823);
double r42825 = fma(r42803, r42817, r42824);
double r42826 = sqrt(r42825);
double r42827 = r42815 / r42826;
double r42828 = r42816 * r42827;
double r42829 = r42800 * r42828;
double r42830 = 2.0849622643324037e-159;
bool r42831 = r42800 <= r42830;
double r42832 = r42800 / r42804;
double r42833 = r42832 / r42806;
double r42834 = fma(r42833, r42803, r42808);
double r42835 = r42815 / r42834;
double r42836 = r42835 * r42816;
double r42837 = r42836 * r42800;
double r42838 = 1.8145802542560214e+149;
bool r42839 = r42800 <= r42838;
double r42840 = r42803 / r42825;
double r42841 = sqrt(r42840);
double r42842 = r42800 * r42841;
double r42843 = r42806 * r42806;
double r42844 = r42800 / r42843;
double r42845 = r42803 * r42804;
double r42846 = r42844 / r42845;
double r42847 = r42833 - r42846;
double r42848 = fma(r42803, r42847, r42808);
double r42849 = r42804 / r42848;
double r42850 = r42800 * r42849;
double r42851 = r42839 ? r42842 : r42850;
double r42852 = r42831 ? r42837 : r42851;
double r42853 = r42814 ? r42829 : r42852;
double r42854 = r42802 ? r42812 : r42853;
return r42854;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -5.488419163648194e+95Initial program 50.7
Simplified50.7
Taylor expanded around inf 50.5
Simplified50.5
Taylor expanded around 0 50.5
Simplified49.0
Taylor expanded around -inf 3.6
Simplified3.6
if -5.488419163648194e+95 < t < 3.654137014915323e-285Initial program 40.0
Simplified39.9
Taylor expanded around inf 18.2
Simplified18.2
Taylor expanded around 0 18.2
Simplified14.4
rmApplied *-un-lft-identity14.4
Applied sqrt-prod14.4
Applied add-cube-cbrt14.4
Applied times-frac14.4
Simplified14.4
Simplified14.4
if 3.654137014915323e-285 < t < 2.0849622643324037e-159Initial program 62.8
Simplified62.8
Taylor expanded around inf 33.7
Simplified33.7
Taylor expanded around 0 33.7
Simplified31.2
rmApplied *-un-lft-identity31.2
Applied sqrt-prod31.2
Applied add-cube-cbrt31.2
Applied times-frac31.2
Simplified31.2
Simplified31.2
Taylor expanded around inf 37.0
Simplified37.0
if 2.0849622643324037e-159 < t < 1.8145802542560214e+149Initial program 23.8
Simplified23.8
Taylor expanded around inf 10.3
Simplified10.3
Taylor expanded around 0 10.3
Simplified5.1
rmApplied sqrt-undiv5.5
Simplified5.5
if 1.8145802542560214e+149 < t Initial program 61.0
Simplified61.0
Taylor expanded around inf 61.5
Simplified61.5
Taylor expanded around inf 2.1
Simplified2.1
Final simplification9.9
herbie shell --seed 2019196 +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)))))