\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.4044001424157714 \cdot 10^{115}:\\
\;\;\;\;\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 -2.8785002221205043 \cdot 10^{-308}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{x}}, 4 \cdot \frac{{t}^{2}}{x}\right)\right)}}\\
\mathbf{elif}\;t \le 6.3004102494834298 \cdot 10^{-163}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 2.4398647795198149 \cdot 10^{48}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{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 r40616 = 2.0;
double r40617 = sqrt(r40616);
double r40618 = t;
double r40619 = r40617 * r40618;
double r40620 = x;
double r40621 = 1.0;
double r40622 = r40620 + r40621;
double r40623 = r40620 - r40621;
double r40624 = r40622 / r40623;
double r40625 = l;
double r40626 = r40625 * r40625;
double r40627 = r40618 * r40618;
double r40628 = r40616 * r40627;
double r40629 = r40626 + r40628;
double r40630 = r40624 * r40629;
double r40631 = r40630 - r40626;
double r40632 = sqrt(r40631);
double r40633 = r40619 / r40632;
return r40633;
}
double f(double x, double l, double t) {
double r40634 = t;
double r40635 = -2.4044001424157714e+115;
bool r40636 = r40634 <= r40635;
double r40637 = 2.0;
double r40638 = sqrt(r40637);
double r40639 = r40638 * r40634;
double r40640 = 3.0;
double r40641 = pow(r40638, r40640);
double r40642 = x;
double r40643 = 2.0;
double r40644 = pow(r40642, r40643);
double r40645 = r40641 * r40644;
double r40646 = r40634 / r40645;
double r40647 = r40638 * r40644;
double r40648 = r40634 / r40647;
double r40649 = r40638 * r40642;
double r40650 = r40634 / r40649;
double r40651 = r40634 * r40638;
double r40652 = fma(r40637, r40650, r40651);
double r40653 = fma(r40637, r40648, r40652);
double r40654 = -r40653;
double r40655 = fma(r40637, r40646, r40654);
double r40656 = r40639 / r40655;
double r40657 = -2.8785002221205043e-308;
bool r40658 = r40634 <= r40657;
double r40659 = pow(r40634, r40643);
double r40660 = l;
double r40661 = cbrt(r40642);
double r40662 = r40661 * r40661;
double r40663 = r40660 / r40662;
double r40664 = r40660 / r40661;
double r40665 = r40663 * r40664;
double r40666 = 4.0;
double r40667 = r40659 / r40642;
double r40668 = r40666 * r40667;
double r40669 = fma(r40637, r40665, r40668);
double r40670 = fma(r40637, r40659, r40669);
double r40671 = sqrt(r40670);
double r40672 = r40639 / r40671;
double r40673 = 6.30041024948343e-163;
bool r40674 = r40634 <= r40673;
double r40675 = r40637 * r40650;
double r40676 = fma(r40634, r40638, r40675);
double r40677 = r40639 / r40676;
double r40678 = 2.439864779519815e+48;
bool r40679 = r40634 <= r40678;
double r40680 = r40637 * r40646;
double r40681 = r40652 - r40680;
double r40682 = fma(r40637, r40648, r40681);
double r40683 = r40639 / r40682;
double r40684 = r40679 ? r40672 : r40683;
double r40685 = r40674 ? r40677 : r40684;
double r40686 = r40658 ? r40672 : r40685;
double r40687 = r40636 ? r40656 : r40686;
return r40687;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -2.4044001424157714e+115Initial program 52.3
Taylor expanded around -inf 2.9
Simplified2.9
if -2.4044001424157714e+115 < t < -2.8785002221205043e-308 or 6.30041024948343e-163 < t < 2.439864779519815e+48Initial program 35.2
Taylor expanded around inf 14.7
Simplified14.7
rmApplied add-cube-cbrt14.8
Applied add-sqr-sqrt39.5
Applied unpow-prod-down39.5
Applied times-frac37.3
Simplified37.3
Simplified10.3
if -2.8785002221205043e-308 < t < 6.30041024948343e-163Initial program 63.0
Taylor expanded around inf 34.0
Simplified34.0
Taylor expanded around inf 36.8
Simplified36.8
if 2.439864779519815e+48 < t Initial program 44.1
Taylor expanded around inf 3.7
Simplified3.7
Final simplification9.7
herbie shell --seed 2020062 +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)))))