\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 -6.009472995498685461722593118137696682668 \cdot 10^{123}:\\
\;\;\;\;\frac{\sqrt{2}}{-\mathsf{fma}\left(\frac{2}{\sqrt{2}}, \frac{t}{x}, \sqrt{2} \cdot t\right)} \cdot t\\
\mathbf{elif}\;t \le 1.970000535892972371169366993383041147751 \cdot 10^{94}:\\
\;\;\;\;\frac{\sqrt{2}}{\sqrt{\mathsf{fma}\left(2, \mathsf{fma}\left(t, t, \frac{\ell}{\frac{x}{\ell}}\right), \frac{4}{x} \cdot \left(t \cdot t\right)\right)}} \cdot t\\
\mathbf{else}:\\
\;\;\;\;t \cdot \frac{\sqrt{2}}{\mathsf{fma}\left(t, \sqrt{2}, \frac{2 \cdot t}{x \cdot \sqrt{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r1537770 = 2.0;
double r1537771 = sqrt(r1537770);
double r1537772 = t;
double r1537773 = r1537771 * r1537772;
double r1537774 = x;
double r1537775 = 1.0;
double r1537776 = r1537774 + r1537775;
double r1537777 = r1537774 - r1537775;
double r1537778 = r1537776 / r1537777;
double r1537779 = l;
double r1537780 = r1537779 * r1537779;
double r1537781 = r1537772 * r1537772;
double r1537782 = r1537770 * r1537781;
double r1537783 = r1537780 + r1537782;
double r1537784 = r1537778 * r1537783;
double r1537785 = r1537784 - r1537780;
double r1537786 = sqrt(r1537785);
double r1537787 = r1537773 / r1537786;
return r1537787;
}
double f(double x, double l, double t) {
double r1537788 = t;
double r1537789 = -6.009472995498685e+123;
bool r1537790 = r1537788 <= r1537789;
double r1537791 = 2.0;
double r1537792 = sqrt(r1537791);
double r1537793 = r1537791 / r1537792;
double r1537794 = x;
double r1537795 = r1537788 / r1537794;
double r1537796 = r1537792 * r1537788;
double r1537797 = fma(r1537793, r1537795, r1537796);
double r1537798 = -r1537797;
double r1537799 = r1537792 / r1537798;
double r1537800 = r1537799 * r1537788;
double r1537801 = 1.9700005358929724e+94;
bool r1537802 = r1537788 <= r1537801;
double r1537803 = l;
double r1537804 = r1537794 / r1537803;
double r1537805 = r1537803 / r1537804;
double r1537806 = fma(r1537788, r1537788, r1537805);
double r1537807 = 4.0;
double r1537808 = r1537807 / r1537794;
double r1537809 = r1537788 * r1537788;
double r1537810 = r1537808 * r1537809;
double r1537811 = fma(r1537791, r1537806, r1537810);
double r1537812 = sqrt(r1537811);
double r1537813 = r1537792 / r1537812;
double r1537814 = r1537813 * r1537788;
double r1537815 = r1537791 * r1537788;
double r1537816 = r1537794 * r1537792;
double r1537817 = r1537815 / r1537816;
double r1537818 = fma(r1537788, r1537792, r1537817);
double r1537819 = r1537792 / r1537818;
double r1537820 = r1537788 * r1537819;
double r1537821 = r1537802 ? r1537814 : r1537820;
double r1537822 = r1537790 ? r1537800 : r1537821;
return r1537822;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -6.009472995498685e+123Initial program 54.8
Simplified54.7
Taylor expanded around -inf 3.2
Simplified3.2
if -6.009472995498685e+123 < t < 1.9700005358929724e+94Initial program 37.4
Simplified37.3
Taylor expanded around inf 17.3
Simplified13.0
if 1.9700005358929724e+94 < t Initial program 48.8
Simplified48.8
Taylor expanded around inf 48.3
Simplified46.5
Taylor expanded around inf 3.5
Simplified3.5
Final simplification9.3
herbie shell --seed 2019200 +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)))))