\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 -2.8585639207837988 \cdot 10^{134}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{-\left(t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le -1.3093127471214333 \cdot 10^{-159}:\\
\;\;\;\;\frac{\sqrt{\sqrt{\sqrt{2}}} \cdot \left(\sqrt{\sqrt{\sqrt{2}}} \cdot \left(\sqrt{\sqrt{2}} \cdot t\right)\right)}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{x}, 4 \cdot \frac{{t}^{2}}{x}\right)\right)}}\\
\mathbf{elif}\;t \le -1.00692316033768718 \cdot 10^{-226}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{-\left(t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 8.64736697806752824 \cdot 10^{90}:\\
\;\;\;\;\frac{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}} \cdot \left(\sqrt{\sqrt{\sqrt[3]{2}}} \cdot \left(\sqrt{\sqrt{2}} \cdot t\right)\right)}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{x}, 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 r37717 = 2.0;
double r37718 = sqrt(r37717);
double r37719 = t;
double r37720 = r37718 * r37719;
double r37721 = x;
double r37722 = 1.0;
double r37723 = r37721 + r37722;
double r37724 = r37721 - r37722;
double r37725 = r37723 / r37724;
double r37726 = l;
double r37727 = r37726 * r37726;
double r37728 = r37719 * r37719;
double r37729 = r37717 * r37728;
double r37730 = r37727 + r37729;
double r37731 = r37725 * r37730;
double r37732 = r37731 - r37727;
double r37733 = sqrt(r37732);
double r37734 = r37720 / r37733;
return r37734;
}
double f(double x, double l, double t) {
double r37735 = t;
double r37736 = -2.8585639207837988e+134;
bool r37737 = r37735 <= r37736;
double r37738 = 2.0;
double r37739 = sqrt(r37738);
double r37740 = r37739 * r37735;
double r37741 = r37735 * r37739;
double r37742 = x;
double r37743 = r37739 * r37742;
double r37744 = r37735 / r37743;
double r37745 = r37738 * r37744;
double r37746 = r37741 + r37745;
double r37747 = -r37746;
double r37748 = r37740 / r37747;
double r37749 = -1.3093127471214333e-159;
bool r37750 = r37735 <= r37749;
double r37751 = sqrt(r37739);
double r37752 = sqrt(r37751);
double r37753 = r37751 * r37735;
double r37754 = r37752 * r37753;
double r37755 = r37752 * r37754;
double r37756 = 2.0;
double r37757 = pow(r37735, r37756);
double r37758 = l;
double r37759 = r37758 / r37742;
double r37760 = r37758 * r37759;
double r37761 = 4.0;
double r37762 = r37757 / r37742;
double r37763 = r37761 * r37762;
double r37764 = fma(r37738, r37760, r37763);
double r37765 = fma(r37738, r37757, r37764);
double r37766 = sqrt(r37765);
double r37767 = r37755 / r37766;
double r37768 = -1.0069231603376872e-226;
bool r37769 = r37735 <= r37768;
double r37770 = 8.647366978067528e+90;
bool r37771 = r37735 <= r37770;
double r37772 = cbrt(r37738);
double r37773 = r37772 * r37772;
double r37774 = sqrt(r37773);
double r37775 = sqrt(r37774);
double r37776 = sqrt(r37772);
double r37777 = sqrt(r37776);
double r37778 = r37777 * r37753;
double r37779 = r37775 * r37778;
double r37780 = r37779 / r37766;
double r37781 = pow(r37742, r37756);
double r37782 = r37739 * r37781;
double r37783 = r37735 / r37782;
double r37784 = fma(r37738, r37744, r37741);
double r37785 = 3.0;
double r37786 = pow(r37739, r37785);
double r37787 = r37786 * r37781;
double r37788 = r37735 / r37787;
double r37789 = r37738 * r37788;
double r37790 = r37784 - r37789;
double r37791 = fma(r37738, r37783, r37790);
double r37792 = r37740 / r37791;
double r37793 = r37771 ? r37780 : r37792;
double r37794 = r37769 ? r37748 : r37793;
double r37795 = r37750 ? r37767 : r37794;
double r37796 = r37737 ? r37748 : r37795;
return r37796;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -2.8585639207837988e+134 or -1.3093127471214333e-159 < t < -1.0069231603376872e-226Initial program 58.3
Taylor expanded around inf 53.2
Simplified53.2
Taylor expanded around -inf 8.7
if -2.8585639207837988e+134 < t < -1.3093127471214333e-159Initial program 25.2
Taylor expanded around inf 10.1
Simplified10.1
rmApplied *-un-lft-identity10.1
Applied add-sqr-sqrt37.6
Applied unpow-prod-down37.6
Applied times-frac34.7
Simplified34.7
Simplified4.4
rmApplied add-sqr-sqrt4.4
Applied sqrt-prod4.6
Applied associate-*l*4.5
rmApplied add-sqr-sqrt4.5
Applied sqrt-prod4.5
Applied sqrt-prod4.5
Applied associate-*l*4.4
if -1.0069231603376872e-226 < t < 8.647366978067528e+90Initial program 41.4
Taylor expanded around inf 19.0
Simplified19.0
rmApplied *-un-lft-identity19.0
Applied add-sqr-sqrt41.2
Applied unpow-prod-down41.2
Applied times-frac39.2
Simplified39.2
Simplified15.1
rmApplied add-sqr-sqrt15.1
Applied sqrt-prod15.2
Applied associate-*l*15.2
rmApplied add-cube-cbrt15.3
Applied sqrt-prod15.3
Applied sqrt-prod15.3
Applied associate-*l*15.1
if 8.647366978067528e+90 < t Initial program 49.2
Taylor expanded around inf 3.0
Simplified3.0
Final simplification8.7
herbie shell --seed 2020065 +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)))))