\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 -9.9650657605363647 \cdot 10^{92}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(2, \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}, -\mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot {x}^{2}}, \mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot x}, t \cdot \sqrt{2}\right)\right)\right)}\\
\mathbf{elif}\;t \le -4.0683936932360906 \cdot 10^{-186}:\\
\;\;\;\;\frac{\sqrt{\sqrt{2}} \cdot \left(\sqrt{\sqrt{2}} \cdot t\right)}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \frac{\ell}{\frac{x}{\ell}}, 4 \cdot \frac{{t}^{2}}{x}\right)\right)}}\\
\mathbf{elif}\;t \le -1.75665690018083031 \cdot 10^{-225}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(2, \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}, -\mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot {x}^{2}}, \mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot x}, t \cdot \sqrt{2}\right)\right)\right)}\\
\mathbf{elif}\;t \le 7.72260852113505368 \cdot 10^{139}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot t\right)}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \frac{\ell}{\frac{x}{\ell}}, 4 \cdot \frac{{t}^{2}}{x}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot {x}^{2}}, \mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot x}, t \cdot \sqrt{2}\right) - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r37669 = 2.0;
double r37670 = sqrt(r37669);
double r37671 = t;
double r37672 = r37670 * r37671;
double r37673 = x;
double r37674 = 1.0;
double r37675 = r37673 + r37674;
double r37676 = r37673 - r37674;
double r37677 = r37675 / r37676;
double r37678 = l;
double r37679 = r37678 * r37678;
double r37680 = r37671 * r37671;
double r37681 = r37669 * r37680;
double r37682 = r37679 + r37681;
double r37683 = r37677 * r37682;
double r37684 = r37683 - r37679;
double r37685 = sqrt(r37684);
double r37686 = r37672 / r37685;
return r37686;
}
double f(double x, double l, double t) {
double r37687 = t;
double r37688 = -9.965065760536365e+92;
bool r37689 = r37687 <= r37688;
double r37690 = 2.0;
double r37691 = sqrt(r37690);
double r37692 = r37691 * r37687;
double r37693 = 3.0;
double r37694 = pow(r37691, r37693);
double r37695 = x;
double r37696 = 2.0;
double r37697 = pow(r37695, r37696);
double r37698 = r37694 * r37697;
double r37699 = r37687 / r37698;
double r37700 = r37691 * r37697;
double r37701 = r37687 / r37700;
double r37702 = r37691 * r37695;
double r37703 = r37687 / r37702;
double r37704 = r37687 * r37691;
double r37705 = fma(r37690, r37703, r37704);
double r37706 = fma(r37690, r37701, r37705);
double r37707 = -r37706;
double r37708 = fma(r37690, r37699, r37707);
double r37709 = r37692 / r37708;
double r37710 = -4.068393693236091e-186;
bool r37711 = r37687 <= r37710;
double r37712 = sqrt(r37691);
double r37713 = r37712 * r37687;
double r37714 = r37712 * r37713;
double r37715 = pow(r37687, r37696);
double r37716 = l;
double r37717 = r37695 / r37716;
double r37718 = r37716 / r37717;
double r37719 = 4.0;
double r37720 = r37715 / r37695;
double r37721 = r37719 * r37720;
double r37722 = fma(r37690, r37718, r37721);
double r37723 = fma(r37690, r37715, r37722);
double r37724 = sqrt(r37723);
double r37725 = r37714 / r37724;
double r37726 = -1.7566569001808303e-225;
bool r37727 = r37687 <= r37726;
double r37728 = 7.722608521135054e+139;
bool r37729 = r37687 <= r37728;
double r37730 = cbrt(r37691);
double r37731 = r37730 * r37730;
double r37732 = r37730 * r37687;
double r37733 = r37731 * r37732;
double r37734 = r37733 / r37724;
double r37735 = r37690 * r37699;
double r37736 = r37705 - r37735;
double r37737 = fma(r37690, r37701, r37736);
double r37738 = r37692 / r37737;
double r37739 = r37729 ? r37734 : r37738;
double r37740 = r37727 ? r37709 : r37739;
double r37741 = r37711 ? r37725 : r37740;
double r37742 = r37689 ? r37709 : r37741;
return r37742;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -9.965065760536365e+92 or -4.068393693236091e-186 < t < -1.7566569001808303e-225Initial program 52.3
Taylor expanded around -inf 6.9
Simplified6.9
if -9.965065760536365e+92 < t < -4.068393693236091e-186Initial program 29.9
Taylor expanded around inf 12.4
Simplified12.4
rmApplied unpow212.4
Applied associate-/l*7.2
rmApplied add-sqr-sqrt7.2
Applied sqrt-prod7.4
Applied associate-*l*7.3
if -1.7566569001808303e-225 < t < 7.722608521135054e+139Initial program 40.3
Taylor expanded around inf 19.4
Simplified19.4
rmApplied unpow219.4
Applied associate-/l*15.3
rmApplied add-cube-cbrt15.3
Applied associate-*l*15.3
if 7.722608521135054e+139 < t Initial program 58.5
Taylor expanded around inf 1.9
Simplified1.9
Final simplification9.4
herbie shell --seed 2020039 +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)))))