\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.299379296324097348413076351292514260264 \cdot 10^{93}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right)}\\
\mathbf{elif}\;t \le 3.052533510544754116086517135630234380268 \cdot 10^{74}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left(\sqrt{{t}^{2} + \ell \cdot \frac{\ell}{x}} \cdot \sqrt{{t}^{2} + \ell \cdot \frac{\ell}{x}}\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 r43043 = 2.0;
double r43044 = sqrt(r43043);
double r43045 = t;
double r43046 = r43044 * r43045;
double r43047 = x;
double r43048 = 1.0;
double r43049 = r43047 + r43048;
double r43050 = r43047 - r43048;
double r43051 = r43049 / r43050;
double r43052 = l;
double r43053 = r43052 * r43052;
double r43054 = r43045 * r43045;
double r43055 = r43043 * r43054;
double r43056 = r43053 + r43055;
double r43057 = r43051 * r43056;
double r43058 = r43057 - r43053;
double r43059 = sqrt(r43058);
double r43060 = r43046 / r43059;
return r43060;
}
double f(double x, double l, double t) {
double r43061 = t;
double r43062 = -1.2993792963240973e+93;
bool r43063 = r43061 <= r43062;
double r43064 = 2.0;
double r43065 = sqrt(r43064);
double r43066 = r43065 * r43061;
double r43067 = 3.0;
double r43068 = pow(r43065, r43067);
double r43069 = x;
double r43070 = 2.0;
double r43071 = pow(r43069, r43070);
double r43072 = r43068 * r43071;
double r43073 = r43061 / r43072;
double r43074 = r43064 * r43073;
double r43075 = r43065 * r43069;
double r43076 = r43061 / r43075;
double r43077 = r43064 * r43076;
double r43078 = r43061 * r43065;
double r43079 = r43077 + r43078;
double r43080 = r43074 - r43079;
double r43081 = r43066 / r43080;
double r43082 = 3.052533510544754e+74;
bool r43083 = r43061 <= r43082;
double r43084 = 4.0;
double r43085 = pow(r43061, r43070);
double r43086 = r43085 / r43069;
double r43087 = r43084 * r43086;
double r43088 = l;
double r43089 = r43088 / r43069;
double r43090 = r43088 * r43089;
double r43091 = r43085 + r43090;
double r43092 = sqrt(r43091);
double r43093 = r43092 * r43092;
double r43094 = r43064 * r43093;
double r43095 = r43087 + r43094;
double r43096 = sqrt(r43095);
double r43097 = r43066 / r43096;
double r43098 = r43065 * r43071;
double r43099 = r43061 / r43098;
double r43100 = r43099 + r43076;
double r43101 = r43064 * r43100;
double r43102 = r43066 - r43074;
double r43103 = r43101 + r43102;
double r43104 = r43066 / r43103;
double r43105 = r43083 ? r43097 : r43104;
double r43106 = r43063 ? r43081 : r43105;
return r43106;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.2993792963240973e+93Initial program 48.3
Taylor expanded around inf 48.0
Simplified48.0
Taylor expanded around -inf 3.4
if -1.2993792963240973e+93 < t < 3.052533510544754e+74Initial program 39.1
Taylor expanded around inf 17.7
Simplified17.7
rmApplied *-un-lft-identity17.7
Applied add-sqr-sqrt40.4
Applied unpow-prod-down40.4
Applied times-frac38.7
Simplified38.7
Simplified13.8
rmApplied add-sqr-sqrt13.8
if 3.052533510544754e+74 < t Initial program 48.1
Taylor expanded around inf 3.7
Simplified3.7
Final simplification9.3
herbie shell --seed 2019318
(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)))))