\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 -1.404290766975102316944891461369617988165 \cdot 10^{70}:\\
\;\;\;\;\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) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le 6.119718816216909820252180715908619290035 \cdot 10^{94}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot t\right)}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\frac{x}{\ell}}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{\sqrt{2} \cdot {x}^{2}} + \frac{t}{\sqrt{2} \cdot x}\right) + \left(\sqrt{2} \cdot t - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r43035 = 2.0;
double r43036 = sqrt(r43035);
double r43037 = t;
double r43038 = r43036 * r43037;
double r43039 = x;
double r43040 = 1.0;
double r43041 = r43039 + r43040;
double r43042 = r43039 - r43040;
double r43043 = r43041 / r43042;
double r43044 = l;
double r43045 = r43044 * r43044;
double r43046 = r43037 * r43037;
double r43047 = r43035 * r43046;
double r43048 = r43045 + r43047;
double r43049 = r43043 * r43048;
double r43050 = r43049 - r43045;
double r43051 = sqrt(r43050);
double r43052 = r43038 / r43051;
return r43052;
}
double f(double x, double l, double t) {
double r43053 = t;
double r43054 = -1.4042907669751023e+70;
bool r43055 = r43053 <= r43054;
double r43056 = 2.0;
double r43057 = sqrt(r43056);
double r43058 = r43057 * r43053;
double r43059 = 3.0;
double r43060 = pow(r43057, r43059);
double r43061 = x;
double r43062 = 2.0;
double r43063 = pow(r43061, r43062);
double r43064 = r43060 * r43063;
double r43065 = r43053 / r43064;
double r43066 = r43057 * r43063;
double r43067 = r43053 / r43066;
double r43068 = r43065 - r43067;
double r43069 = r43056 * r43068;
double r43070 = r43069 - r43058;
double r43071 = r43057 * r43061;
double r43072 = r43053 / r43071;
double r43073 = r43056 * r43072;
double r43074 = r43070 - r43073;
double r43075 = r43058 / r43074;
double r43076 = 6.11971881621691e+94;
bool r43077 = r43053 <= r43076;
double r43078 = cbrt(r43057);
double r43079 = r43078 * r43078;
double r43080 = r43078 * r43053;
double r43081 = r43079 * r43080;
double r43082 = 4.0;
double r43083 = pow(r43053, r43062);
double r43084 = r43083 / r43061;
double r43085 = r43082 * r43084;
double r43086 = l;
double r43087 = r43061 / r43086;
double r43088 = r43086 / r43087;
double r43089 = r43083 + r43088;
double r43090 = r43056 * r43089;
double r43091 = r43085 + r43090;
double r43092 = sqrt(r43091);
double r43093 = r43081 / r43092;
double r43094 = r43067 + r43072;
double r43095 = r43056 * r43094;
double r43096 = r43056 * r43065;
double r43097 = r43058 - r43096;
double r43098 = r43095 + r43097;
double r43099 = r43058 / r43098;
double r43100 = r43077 ? r43093 : r43099;
double r43101 = r43055 ? r43075 : r43100;
return r43101;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.4042907669751023e+70Initial program 45.8
Taylor expanded around -inf 3.0
Simplified3.0
if -1.4042907669751023e+70 < t < 6.11971881621691e+94Initial program 39.7
Taylor expanded around inf 17.8
Simplified17.8
rmApplied unpow217.8
Applied associate-/l*13.7
rmApplied add-cube-cbrt13.7
Applied associate-*l*13.6
if 6.11971881621691e+94 < t Initial program 49.0
Taylor expanded around inf 2.4
Simplified2.4
Final simplification9.0
herbie shell --seed 2019298
(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)))))