\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.24254393201664138044439133386542443571 \cdot 10^{86}:\\
\;\;\;\;\frac{\sqrt{2}}{\frac{-\left(\sqrt{2} \cdot t + \frac{2 \cdot t}{x \cdot \sqrt{2}}\right)}{t}}\\
\mathbf{elif}\;t \le 3.424779697706979355832148987272206628453 \cdot 10^{-203}:\\
\;\;\;\;\frac{\sqrt{2}}{\frac{\sqrt{\frac{4}{\frac{x}{t \cdot t}} + \left(2 \cdot \left(t \cdot t\right) + \sqrt[3]{\frac{\ell \cdot 2}{\frac{x}{\ell}}} \cdot \left(\sqrt[3]{\frac{\ell \cdot 2}{\frac{x}{\ell}}} \cdot \sqrt[3]{\frac{\ell \cdot 2}{\frac{x}{\ell}}}\right)\right)}}{t}}\\
\mathbf{elif}\;t \le 6.783164823431965385056094361766235146363 \cdot 10^{-165} \lor \neg \left(t \le 5.469601309486936787300845358655254676933 \cdot 10^{45}\right):\\
\;\;\;\;\frac{\sqrt{2}}{\frac{\sqrt{2} \cdot t + \frac{2 \cdot t}{x \cdot \sqrt{2}}}{t}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2}}{\frac{\sqrt{\sqrt{\left(\frac{4}{\frac{\frac{x}{t}}{t}} + \frac{\ell \cdot 2}{\frac{x}{\ell}}\right) + t \cdot \left(2 \cdot t\right)}} \cdot \sqrt{\sqrt{\left(\frac{4}{\frac{\frac{x}{t}}{t}} + \frac{\ell \cdot 2}{\frac{x}{\ell}}\right) + t \cdot \left(2 \cdot t\right)}}}{t}}\\
\end{array}double f(double x, double l, double t) {
double r45813 = 2.0;
double r45814 = sqrt(r45813);
double r45815 = t;
double r45816 = r45814 * r45815;
double r45817 = x;
double r45818 = 1.0;
double r45819 = r45817 + r45818;
double r45820 = r45817 - r45818;
double r45821 = r45819 / r45820;
double r45822 = l;
double r45823 = r45822 * r45822;
double r45824 = r45815 * r45815;
double r45825 = r45813 * r45824;
double r45826 = r45823 + r45825;
double r45827 = r45821 * r45826;
double r45828 = r45827 - r45823;
double r45829 = sqrt(r45828);
double r45830 = r45816 / r45829;
return r45830;
}
double f(double x, double l, double t) {
double r45831 = t;
double r45832 = -2.2425439320166414e+86;
bool r45833 = r45831 <= r45832;
double r45834 = 2.0;
double r45835 = sqrt(r45834);
double r45836 = r45835 * r45831;
double r45837 = r45834 * r45831;
double r45838 = x;
double r45839 = r45838 * r45835;
double r45840 = r45837 / r45839;
double r45841 = r45836 + r45840;
double r45842 = -r45841;
double r45843 = r45842 / r45831;
double r45844 = r45835 / r45843;
double r45845 = 3.4247796977069794e-203;
bool r45846 = r45831 <= r45845;
double r45847 = 4.0;
double r45848 = r45831 * r45831;
double r45849 = r45838 / r45848;
double r45850 = r45847 / r45849;
double r45851 = r45834 * r45848;
double r45852 = l;
double r45853 = r45852 * r45834;
double r45854 = r45838 / r45852;
double r45855 = r45853 / r45854;
double r45856 = cbrt(r45855);
double r45857 = r45856 * r45856;
double r45858 = r45856 * r45857;
double r45859 = r45851 + r45858;
double r45860 = r45850 + r45859;
double r45861 = sqrt(r45860);
double r45862 = r45861 / r45831;
double r45863 = r45835 / r45862;
double r45864 = 6.783164823431965e-165;
bool r45865 = r45831 <= r45864;
double r45866 = 5.469601309486937e+45;
bool r45867 = r45831 <= r45866;
double r45868 = !r45867;
bool r45869 = r45865 || r45868;
double r45870 = r45841 / r45831;
double r45871 = r45835 / r45870;
double r45872 = r45838 / r45831;
double r45873 = r45872 / r45831;
double r45874 = r45847 / r45873;
double r45875 = r45874 + r45855;
double r45876 = r45831 * r45837;
double r45877 = r45875 + r45876;
double r45878 = sqrt(r45877);
double r45879 = sqrt(r45878);
double r45880 = r45879 * r45879;
double r45881 = r45880 / r45831;
double r45882 = r45835 / r45881;
double r45883 = r45869 ? r45871 : r45882;
double r45884 = r45846 ? r45863 : r45883;
double r45885 = r45833 ? r45844 : r45884;
return r45885;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.2425439320166414e+86Initial program 49.0
Simplified49.0
Taylor expanded around -inf 3.7
Simplified3.7
if -2.2425439320166414e+86 < t < 3.4247796977069794e-203Initial program 43.2
Simplified43.2
Taylor expanded around inf 20.9
Simplified20.9
rmApplied add-cube-cbrt21.0
Simplified21.0
Simplified17.5
if 3.4247796977069794e-203 < t < 6.783164823431965e-165 or 5.469601309486937e+45 < t Initial program 47.4
Simplified47.4
Taylor expanded around inf 6.8
Simplified6.8
if 6.783164823431965e-165 < t < 5.469601309486937e+45Initial program 30.5
Simplified30.5
Taylor expanded around inf 10.5
Simplified10.5
rmApplied add-sqr-sqrt10.5
Applied sqrt-prod10.6
Simplified10.6
Simplified5.7
Final simplification9.8
herbie shell --seed 2019179
(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)))))