\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}{\left(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le 1.279156173644286169185104793876132292276 \cdot 10^{-253} \lor \neg \left(t \le 3.392855682492969822120603204380265318822 \cdot 10^{-169} \lor \neg \left(t \le 5.564919863052779332924405357503780952199 \cdot 10^{60}\right)\right):\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + 4 \cdot \frac{{t}^{2}}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r45781 = 2.0;
double r45782 = sqrt(r45781);
double r45783 = t;
double r45784 = r45782 * r45783;
double r45785 = x;
double r45786 = 1.0;
double r45787 = r45785 + r45786;
double r45788 = r45785 - r45786;
double r45789 = r45787 / r45788;
double r45790 = l;
double r45791 = r45790 * r45790;
double r45792 = r45783 * r45783;
double r45793 = r45781 * r45792;
double r45794 = r45791 + r45793;
double r45795 = r45789 * r45794;
double r45796 = r45795 - r45791;
double r45797 = sqrt(r45796);
double r45798 = r45784 / r45797;
return r45798;
}
double f(double x, double l, double t) {
double r45799 = t;
double r45800 = -1.670018113804049e+49;
bool r45801 = r45799 <= r45800;
double r45802 = 2.0;
double r45803 = sqrt(r45802);
double r45804 = r45803 * r45799;
double r45805 = x;
double r45806 = 2.0;
double r45807 = pow(r45805, r45806);
double r45808 = r45799 / r45807;
double r45809 = r45803 * r45802;
double r45810 = r45802 / r45809;
double r45811 = r45802 / r45803;
double r45812 = r45810 - r45811;
double r45813 = r45808 * r45812;
double r45814 = r45813 - r45804;
double r45815 = r45803 * r45805;
double r45816 = r45799 / r45815;
double r45817 = r45802 * r45816;
double r45818 = r45814 - r45817;
double r45819 = r45804 / r45818;
double r45820 = 1.2791561736442862e-253;
bool r45821 = r45799 <= r45820;
double r45822 = 3.39285568249297e-169;
bool r45823 = r45799 <= r45822;
double r45824 = 5.564919863052779e+60;
bool r45825 = r45799 <= r45824;
double r45826 = !r45825;
bool r45827 = r45823 || r45826;
double r45828 = !r45827;
bool r45829 = r45821 || r45828;
double r45830 = l;
double r45831 = r45805 / r45830;
double r45832 = r45830 / r45831;
double r45833 = r45799 * r45799;
double r45834 = r45832 + r45833;
double r45835 = r45834 * r45802;
double r45836 = 4.0;
double r45837 = pow(r45799, r45806);
double r45838 = r45837 / r45805;
double r45839 = r45836 * r45838;
double r45840 = r45835 + r45839;
double r45841 = sqrt(r45840);
double r45842 = r45804 / r45841;
double r45843 = r45799 * r45803;
double r45844 = r45817 + r45843;
double r45845 = r45844 - r45813;
double r45846 = r45804 / r45845;
double r45847 = r45829 ? r45842 : r45846;
double r45848 = r45801 ? r45819 : r45847;
return r45848;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.670018113804049e+49Initial program 43.9
Taylor expanded around -inf 3.8
Simplified3.8
if -1.670018113804049e+49 < t < 1.2791561736442862e-253 or 3.39285568249297e-169 < t < 5.564919863052779e+60Initial program 37.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
Taylor expanded around inf 9.0
Simplified9.0
Final simplification9.2
herbie shell --seed 2019306
(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)))))