\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 -273909972730594400:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le -2.747565116731855271136776118256605565511 \cdot 10^{-168}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \left|\ell\right| \cdot \frac{\left|\ell\right|}{x}\right) + 4 \cdot \frac{{t}^{2}}{x}}}\\
\mathbf{elif}\;t \le 2.483283582103815943388123624315897119879 \cdot 10^{-307}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le 4.76146337694126327794527141854404856243 \cdot 10^{-255}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{{\left(\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}\right)}^{2}}{\frac{x}{{\left(\sqrt[3]{\ell}\right)}^{2}}}\right) + 4 \cdot \frac{{t}^{2}}{x}}}\\
\mathbf{elif}\;t \le 2.39382876443450738828335111707118149527 \cdot 10^{-155} \lor \neg \left(t \le 399617857862134784\right):\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \left|\ell\right| \cdot \frac{\left|\ell\right|}{x}\right) + 4 \cdot \frac{{t}^{2}}{x}}}\\
\end{array}double f(double x, double l, double t) {
double r45639 = 2.0;
double r45640 = sqrt(r45639);
double r45641 = t;
double r45642 = r45640 * r45641;
double r45643 = x;
double r45644 = 1.0;
double r45645 = r45643 + r45644;
double r45646 = r45643 - r45644;
double r45647 = r45645 / r45646;
double r45648 = l;
double r45649 = r45648 * r45648;
double r45650 = r45641 * r45641;
double r45651 = r45639 * r45650;
double r45652 = r45649 + r45651;
double r45653 = r45647 * r45652;
double r45654 = r45653 - r45649;
double r45655 = sqrt(r45654);
double r45656 = r45642 / r45655;
return r45656;
}
double f(double x, double l, double t) {
double r45657 = t;
double r45658 = -2.739099727305944e+17;
bool r45659 = r45657 <= r45658;
double r45660 = 2.0;
double r45661 = sqrt(r45660);
double r45662 = r45661 * r45657;
double r45663 = 3.0;
double r45664 = pow(r45661, r45663);
double r45665 = x;
double r45666 = 2.0;
double r45667 = pow(r45665, r45666);
double r45668 = r45664 * r45667;
double r45669 = r45657 / r45668;
double r45670 = r45661 * r45667;
double r45671 = r45657 / r45670;
double r45672 = r45669 - r45671;
double r45673 = r45660 * r45672;
double r45674 = r45661 * r45665;
double r45675 = r45657 / r45674;
double r45676 = r45660 * r45675;
double r45677 = r45673 - r45676;
double r45678 = r45657 * r45661;
double r45679 = r45677 - r45678;
double r45680 = r45662 / r45679;
double r45681 = -2.7475651167318553e-168;
bool r45682 = r45657 <= r45681;
double r45683 = r45657 * r45657;
double r45684 = l;
double r45685 = fabs(r45684);
double r45686 = r45685 / r45665;
double r45687 = r45685 * r45686;
double r45688 = r45683 + r45687;
double r45689 = r45660 * r45688;
double r45690 = 4.0;
double r45691 = pow(r45657, r45666);
double r45692 = r45691 / r45665;
double r45693 = r45690 * r45692;
double r45694 = r45689 + r45693;
double r45695 = sqrt(r45694);
double r45696 = r45662 / r45695;
double r45697 = 2.483283582103816e-307;
bool r45698 = r45657 <= r45697;
double r45699 = 4.761463376941263e-255;
bool r45700 = r45657 <= r45699;
double r45701 = cbrt(r45684);
double r45702 = r45701 * r45701;
double r45703 = pow(r45702, r45666);
double r45704 = pow(r45701, r45666);
double r45705 = r45665 / r45704;
double r45706 = r45703 / r45705;
double r45707 = r45683 + r45706;
double r45708 = r45660 * r45707;
double r45709 = r45708 + r45693;
double r45710 = sqrt(r45709);
double r45711 = r45662 / r45710;
double r45712 = 2.3938287644345074e-155;
bool r45713 = r45657 <= r45712;
double r45714 = 3.996178578621348e+17;
bool r45715 = r45657 <= r45714;
double r45716 = !r45715;
bool r45717 = r45713 || r45716;
double r45718 = r45678 + r45676;
double r45719 = r45662 / r45718;
double r45720 = r45717 ? r45719 : r45696;
double r45721 = r45700 ? r45711 : r45720;
double r45722 = r45698 ? r45680 : r45721;
double r45723 = r45682 ? r45696 : r45722;
double r45724 = r45659 ? r45680 : r45723;
return r45724;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.739099727305944e+17 or -2.7475651167318553e-168 < t < 2.483283582103816e-307Initial program 48.1
Taylor expanded around -inf 13.3
Simplified13.3
if -2.739099727305944e+17 < t < -2.7475651167318553e-168 or 2.3938287644345074e-155 < t < 3.996178578621348e+17Initial program 30.4
Taylor expanded around inf 9.9
Simplified9.9
rmApplied *-un-lft-identity9.9
Applied add-sqr-sqrt9.9
Applied times-frac9.9
Simplified9.9
Simplified5.1
if 2.483283582103816e-307 < t < 4.761463376941263e-255Initial program 61.6
Taylor expanded around inf 28.0
Simplified28.0
rmApplied add-cube-cbrt28.2
Applied unpow-prod-down28.2
Applied associate-/l*27.7
if 4.761463376941263e-255 < t < 2.3938287644345074e-155 or 3.996178578621348e+17 < t Initial program 46.3
Taylor expanded around inf 39.2
Simplified39.2
Taylor expanded around inf 10.0
Final simplification10.4
herbie shell --seed 2019208
(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)))))