\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.67001811380404894472223536597467413985 \cdot 10^{49}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{-\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 1.279156173644286169185104793876132292276 \cdot 10^{-253} \lor \neg \left(t \le 3.392855682492969822120603204380265318822 \cdot 10^{-169}\right) \land t \le 5.564919863052779332924405357503780952199 \cdot 10^{60}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\mathsf{fma}\left(2, \mathsf{fma}\left(t, t, \frac{\ell}{\frac{x}{\ell}}\right), 4 \cdot \frac{{t}^{2}}{x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\end{array}double f(double x, double l, double t) {
double r39777 = 2.0;
double r39778 = sqrt(r39777);
double r39779 = t;
double r39780 = r39778 * r39779;
double r39781 = x;
double r39782 = 1.0;
double r39783 = r39781 + r39782;
double r39784 = r39781 - r39782;
double r39785 = r39783 / r39784;
double r39786 = l;
double r39787 = r39786 * r39786;
double r39788 = r39779 * r39779;
double r39789 = r39777 * r39788;
double r39790 = r39787 + r39789;
double r39791 = r39785 * r39790;
double r39792 = r39791 - r39787;
double r39793 = sqrt(r39792);
double r39794 = r39780 / r39793;
return r39794;
}
double f(double x, double l, double t) {
double r39795 = t;
double r39796 = -1.670018113804049e+49;
bool r39797 = r39795 <= r39796;
double r39798 = 2.0;
double r39799 = sqrt(r39798);
double r39800 = r39799 * r39795;
double r39801 = x;
double r39802 = r39799 * r39801;
double r39803 = r39795 / r39802;
double r39804 = r39798 * r39803;
double r39805 = fma(r39795, r39799, r39804);
double r39806 = -r39805;
double r39807 = r39800 / r39806;
double r39808 = 1.2791561736442862e-253;
bool r39809 = r39795 <= r39808;
double r39810 = 3.39285568249297e-169;
bool r39811 = r39795 <= r39810;
double r39812 = !r39811;
double r39813 = 5.564919863052779e+60;
bool r39814 = r39795 <= r39813;
bool r39815 = r39812 && r39814;
bool r39816 = r39809 || r39815;
double r39817 = l;
double r39818 = r39801 / r39817;
double r39819 = r39817 / r39818;
double r39820 = fma(r39795, r39795, r39819);
double r39821 = 4.0;
double r39822 = 2.0;
double r39823 = pow(r39795, r39822);
double r39824 = r39823 / r39801;
double r39825 = r39821 * r39824;
double r39826 = fma(r39798, r39820, r39825);
double r39827 = sqrt(r39826);
double r39828 = r39800 / r39827;
double r39829 = r39800 / r39805;
double r39830 = r39816 ? r39828 : r39829;
double r39831 = r39797 ? r39807 : r39830;
return r39831;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -1.670018113804049e+49Initial program 43.9
Simplified43.9
Taylor expanded around inf 42.8
Simplified42.8
Taylor expanded around -inf 4.0
Simplified4.0
if -1.670018113804049e+49 < t < 1.2791561736442862e-253 or 3.39285568249297e-169 < t < 5.564919863052779e+60Initial program 37.7
Simplified37.7
Taylor expanded around inf 16.8
Simplified16.8
rmApplied sqr-pow16.8
Applied associate-/l*12.3
Simplified12.3
if 1.2791561736442862e-253 < t < 3.39285568249297e-169 or 5.564919863052779e+60 < t Initial program 49.2
Simplified49.2
Taylor expanded around inf 43.6
Simplified43.6
Taylor expanded around inf 9.1
Simplified9.1
Final simplification9.3
herbie shell --seed 2019306 +o rules:numerics
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
:precision binary64
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))