\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.303460822673397315215412157251637183073 \cdot 10^{149}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le -1.230065150000774851732639496826971723637 \cdot 10^{-149}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(t \cdot t + \left|\ell\right| \cdot \frac{\left|\ell\right|}{x}\right)}}\\
\mathbf{elif}\;t \le -4.303938162079978611630039682650481103959 \cdot 10^{-243}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le 3.190616919639676067581902350380230729983 \cdot 10^{-45}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(\sqrt{t \cdot t + \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{x}}} \cdot \sqrt{t \cdot t + \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{x}}}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r44634 = 2.0;
double r44635 = sqrt(r44634);
double r44636 = t;
double r44637 = r44635 * r44636;
double r44638 = x;
double r44639 = 1.0;
double r44640 = r44638 + r44639;
double r44641 = r44638 - r44639;
double r44642 = r44640 / r44641;
double r44643 = l;
double r44644 = r44643 * r44643;
double r44645 = r44636 * r44636;
double r44646 = r44634 * r44645;
double r44647 = r44644 + r44646;
double r44648 = r44642 * r44647;
double r44649 = r44648 - r44644;
double r44650 = sqrt(r44649);
double r44651 = r44637 / r44650;
return r44651;
}
double f(double x, double l, double t) {
double r44652 = t;
double r44653 = -2.3034608226733973e+149;
bool r44654 = r44652 <= r44653;
double r44655 = 2.0;
double r44656 = sqrt(r44655);
double r44657 = r44656 * r44652;
double r44658 = x;
double r44659 = 2.0;
double r44660 = pow(r44658, r44659);
double r44661 = r44652 / r44660;
double r44662 = r44656 * r44655;
double r44663 = r44655 / r44662;
double r44664 = r44655 / r44656;
double r44665 = r44663 - r44664;
double r44666 = r44661 * r44665;
double r44667 = r44666 - r44657;
double r44668 = r44656 * r44658;
double r44669 = r44652 / r44668;
double r44670 = r44655 * r44669;
double r44671 = r44667 - r44670;
double r44672 = r44657 / r44671;
double r44673 = -1.2300651500007749e-149;
bool r44674 = r44652 <= r44673;
double r44675 = 4.0;
double r44676 = pow(r44652, r44659);
double r44677 = r44676 / r44658;
double r44678 = r44675 * r44677;
double r44679 = r44652 * r44652;
double r44680 = l;
double r44681 = fabs(r44680);
double r44682 = r44681 / r44658;
double r44683 = r44681 * r44682;
double r44684 = r44679 + r44683;
double r44685 = r44655 * r44684;
double r44686 = r44678 + r44685;
double r44687 = sqrt(r44686);
double r44688 = r44657 / r44687;
double r44689 = -4.3039381620799786e-243;
bool r44690 = r44652 <= r44689;
double r44691 = 3.190616919639676e-45;
bool r44692 = r44652 <= r44691;
double r44693 = cbrt(r44658);
double r44694 = r44693 * r44693;
double r44695 = r44680 / r44694;
double r44696 = r44680 / r44693;
double r44697 = r44695 * r44696;
double r44698 = r44679 + r44697;
double r44699 = sqrt(r44698);
double r44700 = r44699 * r44699;
double r44701 = r44655 * r44700;
double r44702 = r44678 + r44701;
double r44703 = sqrt(r44702);
double r44704 = r44657 / r44703;
double r44705 = r44652 * r44656;
double r44706 = r44670 + r44705;
double r44707 = r44706 - r44666;
double r44708 = r44657 / r44707;
double r44709 = r44692 ? r44704 : r44708;
double r44710 = r44690 ? r44672 : r44709;
double r44711 = r44674 ? r44688 : r44710;
double r44712 = r44654 ? r44672 : r44711;
return r44712;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.3034608226733973e+149 or -1.2300651500007749e-149 < t < -4.3039381620799786e-243Initial program 60.6
Taylor expanded around -inf 10.9
Simplified10.9
if -2.3034608226733973e+149 < t < -1.2300651500007749e-149Initial program 25.0
Taylor expanded around inf 11.2
Simplified11.2
rmApplied *-un-lft-identity11.2
Applied add-sqr-sqrt11.2
Applied times-frac11.2
Simplified11.2
Simplified5.2
if -4.3039381620799786e-243 < t < 3.190616919639676e-45Initial program 51.1
Taylor expanded around inf 24.3
Simplified24.3
rmApplied add-cube-cbrt24.4
Applied add-sqr-sqrt43.9
Applied unpow-prod-down43.9
Applied times-frac42.7
Simplified42.7
Simplified21.3
rmApplied add-sqr-sqrt21.3
if 3.190616919639676e-45 < t Initial program 39.5
Taylor expanded around inf 5.6
Simplified5.6
Final simplification10.1
herbie shell --seed 2019326
(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)))))