\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 -1.861930782743277 \cdot 10^{+82}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(\left(\frac{\frac{2}{x}}{x}\right), \left(\frac{t}{2 \cdot \sqrt{2}}\right), \left(-\mathsf{fma}\left(t, \left(\sqrt{2}\right), \left(\frac{t}{\sqrt{2}} \cdot \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right)\right)\right)\right)\right)}\\
\mathbf{elif}\;t \le 1.2059628825355719 \cdot 10^{-265}:\\
\;\;\;\;\frac{\left(\sqrt{\sqrt{\sqrt{2}}} \cdot \left(t \cdot \sqrt{\sqrt{2}}\right)\right) \cdot \sqrt{\sqrt{\sqrt{2}}}}{\sqrt{\mathsf{fma}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{x}\right), \ell, \left(t \cdot t\right)\right)\right), 2, \left(\frac{4 \cdot \left(t \cdot t\right)}{x}\right)\right)}}\\
\mathbf{elif}\;t \le 1.0535291832943578 \cdot 10^{-158}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(\left(\sqrt{2}\right), t, \left(\frac{t}{\sqrt{2}} \cdot \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right)\right)\right) - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}}\\
\mathbf{elif}\;t \le 2.9199902382812565 \cdot 10^{+64}:\\
\;\;\;\;\frac{\left(\sqrt{\sqrt{\sqrt{2}}} \cdot \left(t \cdot \sqrt{\sqrt{2}}\right)\right) \cdot \sqrt{\sqrt{\sqrt{2}}}}{\sqrt{\mathsf{fma}\left(\left(\mathsf{fma}\left(\left(\frac{\ell}{x}\right), \ell, \left(t \cdot t\right)\right)\right), 2, \left(\frac{4 \cdot \left(t \cdot t\right)}{x}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(\left(\sqrt{2}\right), t, \left(\frac{t}{\sqrt{2}} \cdot \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right)\right)\right) - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}}\\
\end{array}double f(double x, double l, double t) {
double r4179813 = 2.0;
double r4179814 = sqrt(r4179813);
double r4179815 = t;
double r4179816 = r4179814 * r4179815;
double r4179817 = x;
double r4179818 = 1.0;
double r4179819 = r4179817 + r4179818;
double r4179820 = r4179817 - r4179818;
double r4179821 = r4179819 / r4179820;
double r4179822 = l;
double r4179823 = r4179822 * r4179822;
double r4179824 = r4179815 * r4179815;
double r4179825 = r4179813 * r4179824;
double r4179826 = r4179823 + r4179825;
double r4179827 = r4179821 * r4179826;
double r4179828 = r4179827 - r4179823;
double r4179829 = sqrt(r4179828);
double r4179830 = r4179816 / r4179829;
return r4179830;
}
double f(double x, double l, double t) {
double r4179831 = t;
double r4179832 = -1.861930782743277e+82;
bool r4179833 = r4179831 <= r4179832;
double r4179834 = 2.0;
double r4179835 = sqrt(r4179834);
double r4179836 = r4179835 * r4179831;
double r4179837 = x;
double r4179838 = r4179834 / r4179837;
double r4179839 = r4179838 / r4179837;
double r4179840 = r4179834 * r4179835;
double r4179841 = r4179831 / r4179840;
double r4179842 = r4179831 / r4179835;
double r4179843 = r4179838 + r4179839;
double r4179844 = r4179842 * r4179843;
double r4179845 = fma(r4179831, r4179835, r4179844);
double r4179846 = -r4179845;
double r4179847 = fma(r4179839, r4179841, r4179846);
double r4179848 = r4179836 / r4179847;
double r4179849 = 1.2059628825355719e-265;
bool r4179850 = r4179831 <= r4179849;
double r4179851 = sqrt(r4179835);
double r4179852 = sqrt(r4179851);
double r4179853 = r4179831 * r4179851;
double r4179854 = r4179852 * r4179853;
double r4179855 = r4179854 * r4179852;
double r4179856 = l;
double r4179857 = r4179856 / r4179837;
double r4179858 = r4179831 * r4179831;
double r4179859 = fma(r4179857, r4179856, r4179858);
double r4179860 = 4.0;
double r4179861 = r4179860 * r4179858;
double r4179862 = r4179861 / r4179837;
double r4179863 = fma(r4179859, r4179834, r4179862);
double r4179864 = sqrt(r4179863);
double r4179865 = r4179855 / r4179864;
double r4179866 = 1.0535291832943578e-158;
bool r4179867 = r4179831 <= r4179866;
double r4179868 = fma(r4179835, r4179831, r4179844);
double r4179869 = r4179837 * r4179837;
double r4179870 = r4179842 / r4179869;
double r4179871 = r4179868 - r4179870;
double r4179872 = r4179836 / r4179871;
double r4179873 = 2.9199902382812565e+64;
bool r4179874 = r4179831 <= r4179873;
double r4179875 = r4179874 ? r4179865 : r4179872;
double r4179876 = r4179867 ? r4179872 : r4179875;
double r4179877 = r4179850 ? r4179865 : r4179876;
double r4179878 = r4179833 ? r4179848 : r4179877;
return r4179878;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -1.861930782743277e+82Initial program 48.6
Taylor expanded around -inf 3.2
Simplified3.2
if -1.861930782743277e+82 < t < 1.2059628825355719e-265 or 1.0535291832943578e-158 < t < 2.9199902382812565e+64Initial program 35.7
Taylor expanded around -inf 15.5
Simplified11.1
rmApplied add-sqr-sqrt11.2
Applied associate-*l*11.1
rmApplied add-sqr-sqrt11.1
Applied sqrt-prod11.1
Applied sqrt-prod11.1
Applied associate-*l*11.0
if 1.2059628825355719e-265 < t < 1.0535291832943578e-158 or 2.9199902382812565e+64 < t Initial program 49.1
Taylor expanded around inf 9.8
Simplified9.8
Final simplification8.9
herbie shell --seed 2019128 +o rules:numerics
(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)))))