\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 -7.477355745743760295397832123035994359665 \cdot 10^{71}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \left(\sqrt{2} \cdot t + \frac{2 \cdot t}{\sqrt{2} \cdot x}\right)\right) - \frac{\frac{2 \cdot t}{\sqrt{2}}}{x \cdot x}}\\
\mathbf{elif}\;t \le -4.349527698794627023745933397023092411328 \cdot 10^{-160}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\sqrt{\frac{\ell}{\frac{x}{\ell}} + t \cdot t} \cdot \sqrt{\frac{\ell}{\frac{x}{\ell}} + t \cdot t}\right) + \frac{4}{\frac{x}{t \cdot t}}}}\\
\mathbf{elif}\;t \le -9.101947597346682069135171817700404795807 \cdot 10^{-250}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \left(\sqrt{2} \cdot t + \frac{2 \cdot t}{\sqrt{2} \cdot x}\right)\right) - \frac{\frac{2 \cdot t}{\sqrt{2}}}{x \cdot x}}\\
\mathbf{elif}\;t \le 66392610680595994386192400384:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\sqrt{\frac{\ell}{\frac{x}{\ell}} + t \cdot t} \cdot \sqrt{\frac{\ell}{\frac{x}{\ell}} + t \cdot t}\right) + \frac{4}{\frac{x}{t \cdot t}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{-2 \cdot t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} + \left(\frac{2 \cdot t}{\sqrt{2} \cdot x} + \left(\frac{\frac{2 \cdot t}{\sqrt{2}}}{x \cdot x} + \sqrt{2} \cdot t\right)\right)}\\
\end{array}double f(double x, double l, double t) {
double r1409070 = 2.0;
double r1409071 = sqrt(r1409070);
double r1409072 = t;
double r1409073 = r1409071 * r1409072;
double r1409074 = x;
double r1409075 = 1.0;
double r1409076 = r1409074 + r1409075;
double r1409077 = r1409074 - r1409075;
double r1409078 = r1409076 / r1409077;
double r1409079 = l;
double r1409080 = r1409079 * r1409079;
double r1409081 = r1409072 * r1409072;
double r1409082 = r1409070 * r1409081;
double r1409083 = r1409080 + r1409082;
double r1409084 = r1409078 * r1409083;
double r1409085 = r1409084 - r1409080;
double r1409086 = sqrt(r1409085);
double r1409087 = r1409073 / r1409086;
return r1409087;
}
double f(double x, double l, double t) {
double r1409088 = t;
double r1409089 = -7.47735574574376e+71;
bool r1409090 = r1409088 <= r1409089;
double r1409091 = 2.0;
double r1409092 = sqrt(r1409091);
double r1409093 = r1409092 * r1409088;
double r1409094 = r1409091 * r1409088;
double r1409095 = x;
double r1409096 = r1409095 * r1409095;
double r1409097 = r1409091 * r1409092;
double r1409098 = r1409096 * r1409097;
double r1409099 = r1409094 / r1409098;
double r1409100 = r1409092 * r1409095;
double r1409101 = r1409094 / r1409100;
double r1409102 = r1409093 + r1409101;
double r1409103 = r1409099 - r1409102;
double r1409104 = r1409094 / r1409092;
double r1409105 = r1409104 / r1409096;
double r1409106 = r1409103 - r1409105;
double r1409107 = r1409093 / r1409106;
double r1409108 = -4.349527698794627e-160;
bool r1409109 = r1409088 <= r1409108;
double r1409110 = l;
double r1409111 = r1409095 / r1409110;
double r1409112 = r1409110 / r1409111;
double r1409113 = r1409088 * r1409088;
double r1409114 = r1409112 + r1409113;
double r1409115 = sqrt(r1409114);
double r1409116 = r1409115 * r1409115;
double r1409117 = r1409091 * r1409116;
double r1409118 = 4.0;
double r1409119 = r1409095 / r1409113;
double r1409120 = r1409118 / r1409119;
double r1409121 = r1409117 + r1409120;
double r1409122 = sqrt(r1409121);
double r1409123 = r1409093 / r1409122;
double r1409124 = -9.101947597346682e-250;
bool r1409125 = r1409088 <= r1409124;
double r1409126 = 6.639261068059599e+28;
bool r1409127 = r1409088 <= r1409126;
double r1409128 = -r1409094;
double r1409129 = r1409128 / r1409098;
double r1409130 = r1409105 + r1409093;
double r1409131 = r1409101 + r1409130;
double r1409132 = r1409129 + r1409131;
double r1409133 = r1409093 / r1409132;
double r1409134 = r1409127 ? r1409123 : r1409133;
double r1409135 = r1409125 ? r1409107 : r1409134;
double r1409136 = r1409109 ? r1409123 : r1409135;
double r1409137 = r1409090 ? r1409107 : r1409136;
return r1409137;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -7.47735574574376e+71 or -4.349527698794627e-160 < t < -9.101947597346682e-250Initial program 49.9
Taylor expanded around -inf 9.5
Simplified9.5
if -7.47735574574376e+71 < t < -4.349527698794627e-160 or -9.101947597346682e-250 < t < 6.639261068059599e+28Initial program 38.5
Taylor expanded around inf 15.9
Simplified15.9
rmApplied associate-/l*12.3
rmApplied add-sqr-sqrt12.3
if 6.639261068059599e+28 < t Initial program 43.2
Taylor expanded around inf 4.7
Simplified4.8
Final simplification9.5
herbie shell --seed 2019192
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2.0) t) (sqrt (- (* (/ (+ x 1.0) (- x 1.0)) (+ (* l l) (* 2.0 (* t t)))) (* l l)))))