\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 -5.415525381702613 \cdot 10^{+62}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{\frac{t}{2 \cdot \sqrt{2}}}{x \cdot x} - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}\right) - \left(\sqrt{2} \cdot t + \frac{2 \cdot t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 3.4759257316157413 \cdot 10^{-284}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}\\
\mathbf{elif}\;t \le 9.831366213789788 \cdot 10^{-187}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\sqrt{2} \cdot x} - \frac{2}{x \cdot x} \cdot \frac{t}{2 \cdot \sqrt{2}}\right) + \left(\frac{\frac{t}{\sqrt{2}}}{x \cdot x} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 1.0888219445242733 \cdot 10^{+135}:\\
\;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\sqrt{2} \cdot x} - \frac{2}{x \cdot x} \cdot \frac{t}{2 \cdot \sqrt{2}}\right) + \left(\frac{\frac{t}{\sqrt{2}}}{x \cdot x} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\end{array}double f(double x, double l, double t) {
double r569667 = 2.0;
double r569668 = sqrt(r569667);
double r569669 = t;
double r569670 = r569668 * r569669;
double r569671 = x;
double r569672 = 1.0;
double r569673 = r569671 + r569672;
double r569674 = r569671 - r569672;
double r569675 = r569673 / r569674;
double r569676 = l;
double r569677 = r569676 * r569676;
double r569678 = r569669 * r569669;
double r569679 = r569667 * r569678;
double r569680 = r569677 + r569679;
double r569681 = r569675 * r569680;
double r569682 = r569681 - r569677;
double r569683 = sqrt(r569682);
double r569684 = r569670 / r569683;
return r569684;
}
double f(double x, double l, double t) {
double r569685 = t;
double r569686 = -5.415525381702613e+62;
bool r569687 = r569685 <= r569686;
double r569688 = 2.0;
double r569689 = sqrt(r569688);
double r569690 = r569689 * r569685;
double r569691 = r569688 * r569689;
double r569692 = r569685 / r569691;
double r569693 = x;
double r569694 = r569693 * r569693;
double r569695 = r569692 / r569694;
double r569696 = r569685 / r569689;
double r569697 = r569696 / r569694;
double r569698 = r569695 - r569697;
double r569699 = r569688 * r569698;
double r569700 = r569688 * r569685;
double r569701 = r569689 * r569693;
double r569702 = r569700 / r569701;
double r569703 = r569690 + r569702;
double r569704 = r569699 - r569703;
double r569705 = r569690 / r569704;
double r569706 = 3.4759257316157413e-284;
bool r569707 = r569685 <= r569706;
double r569708 = l;
double r569709 = r569693 / r569708;
double r569710 = r569708 / r569709;
double r569711 = r569685 * r569685;
double r569712 = r569710 + r569711;
double r569713 = r569688 * r569712;
double r569714 = 4.0;
double r569715 = r569711 / r569693;
double r569716 = r569714 * r569715;
double r569717 = r569713 + r569716;
double r569718 = sqrt(r569717);
double r569719 = r569690 / r569718;
double r569720 = 9.831366213789788e-187;
bool r569721 = r569685 <= r569720;
double r569722 = r569688 / r569694;
double r569723 = r569722 * r569692;
double r569724 = r569702 - r569723;
double r569725 = r569697 * r569688;
double r569726 = r569725 + r569690;
double r569727 = r569724 + r569726;
double r569728 = r569690 / r569727;
double r569729 = 1.0888219445242733e+135;
bool r569730 = r569685 <= r569729;
double r569731 = cbrt(r569689);
double r569732 = r569685 * r569731;
double r569733 = r569731 * r569731;
double r569734 = r569732 * r569733;
double r569735 = r569734 / r569718;
double r569736 = r569730 ? r569735 : r569728;
double r569737 = r569721 ? r569728 : r569736;
double r569738 = r569707 ? r569719 : r569737;
double r569739 = r569687 ? r569705 : r569738;
return r569739;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -5.415525381702613e+62Initial program 45.3
Taylor expanded around -inf 3.6
Simplified3.6
if -5.415525381702613e+62 < t < 3.4759257316157413e-284Initial program 39.4
Taylor expanded around -inf 17.7
Simplified17.7
rmApplied associate-/l*14.9
if 3.4759257316157413e-284 < t < 9.831366213789788e-187 or 1.0888219445242733e+135 < t Initial program 57.9
Taylor expanded around inf 10.7
Simplified10.8
if 9.831366213789788e-187 < t < 1.0888219445242733e+135Initial program 26.0
Taylor expanded around -inf 11.7
Simplified11.7
rmApplied associate-/l*6.4
rmApplied add-cube-cbrt6.4
Applied associate-*l*6.4
Final simplification9.1
herbie shell --seed 2019153
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))