\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.1951411765329485 \cdot 10^{+80}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}\right) - \sqrt{2} \cdot t}\\
\mathbf{elif}\;t \le -8.085409915535338 \cdot 10^{-221}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}\\
\mathbf{elif}\;t \le -2.9098210944374083 \cdot 10^{-243}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}\right) - \sqrt{2} \cdot t}\\
\mathbf{elif}\;t \le 1.0361466531567994 \cdot 10^{-296}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}} \cdot \sqrt{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}}\\
\mathbf{elif}\;t \le 8.801957257978148 \cdot 10^{-180}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right) - 2 \cdot \left(\frac{t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}\right)}\\
\mathbf{elif}\;t \le 1.6254114022993327 \cdot 10^{+61}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right) - 2 \cdot \left(\frac{t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}\right)}\\
\end{array}double f(double x, double l, double t) {
double r1352092 = 2.0;
double r1352093 = sqrt(r1352092);
double r1352094 = t;
double r1352095 = r1352093 * r1352094;
double r1352096 = x;
double r1352097 = 1.0;
double r1352098 = r1352096 + r1352097;
double r1352099 = r1352096 - r1352097;
double r1352100 = r1352098 / r1352099;
double r1352101 = l;
double r1352102 = r1352101 * r1352101;
double r1352103 = r1352094 * r1352094;
double r1352104 = r1352092 * r1352103;
double r1352105 = r1352102 + r1352104;
double r1352106 = r1352100 * r1352105;
double r1352107 = r1352106 - r1352102;
double r1352108 = sqrt(r1352107);
double r1352109 = r1352095 / r1352108;
return r1352109;
}
double f(double x, double l, double t) {
double r1352110 = t;
double r1352111 = -2.1951411765329485e+80;
bool r1352112 = r1352110 <= r1352111;
double r1352113 = 2.0;
double r1352114 = sqrt(r1352113);
double r1352115 = r1352114 * r1352110;
double r1352116 = x;
double r1352117 = r1352116 * r1352116;
double r1352118 = r1352113 * r1352114;
double r1352119 = r1352117 * r1352118;
double r1352120 = r1352110 / r1352119;
double r1352121 = r1352110 / r1352114;
double r1352122 = r1352121 / r1352117;
double r1352123 = r1352120 - r1352122;
double r1352124 = r1352113 * r1352123;
double r1352125 = r1352113 / r1352116;
double r1352126 = r1352121 * r1352125;
double r1352127 = r1352124 - r1352126;
double r1352128 = r1352127 - r1352115;
double r1352129 = r1352115 / r1352128;
double r1352130 = -8.085409915535338e-221;
bool r1352131 = r1352110 <= r1352130;
double r1352132 = l;
double r1352133 = r1352116 / r1352132;
double r1352134 = r1352132 / r1352133;
double r1352135 = r1352110 * r1352110;
double r1352136 = r1352134 + r1352135;
double r1352137 = r1352113 * r1352136;
double r1352138 = 4.0;
double r1352139 = r1352135 / r1352116;
double r1352140 = r1352138 * r1352139;
double r1352141 = r1352137 + r1352140;
double r1352142 = sqrt(r1352141);
double r1352143 = r1352115 / r1352142;
double r1352144 = -2.9098210944374083e-243;
bool r1352145 = r1352110 <= r1352144;
double r1352146 = 1.0361466531567994e-296;
bool r1352147 = r1352110 <= r1352146;
double r1352148 = sqrt(r1352142);
double r1352149 = r1352148 * r1352148;
double r1352150 = r1352115 / r1352149;
double r1352151 = 8.801957257978148e-180;
bool r1352152 = r1352110 <= r1352151;
double r1352153 = r1352126 + r1352115;
double r1352154 = r1352153 - r1352124;
double r1352155 = r1352115 / r1352154;
double r1352156 = 1.6254114022993327e+61;
bool r1352157 = r1352110 <= r1352156;
double r1352158 = r1352157 ? r1352143 : r1352155;
double r1352159 = r1352152 ? r1352155 : r1352158;
double r1352160 = r1352147 ? r1352150 : r1352159;
double r1352161 = r1352145 ? r1352129 : r1352160;
double r1352162 = r1352131 ? r1352143 : r1352161;
double r1352163 = r1352112 ? r1352129 : r1352162;
return r1352163;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.1951411765329485e+80 or -8.085409915535338e-221 < t < -2.9098210944374083e-243Initial program 47.8
Taylor expanded around -inf 5.1
Simplified5.1
if -2.1951411765329485e+80 < t < -8.085409915535338e-221 or 8.801957257978148e-180 < t < 1.6254114022993327e+61Initial program 32.8
Taylor expanded around inf 14.2
Simplified14.2
rmApplied associate-/l*9.4
if -2.9098210944374083e-243 < t < 1.0361466531567994e-296Initial program 61.9
Taylor expanded around inf 28.5
Simplified28.5
rmApplied associate-/l*28.4
rmApplied add-sqr-sqrt28.4
Applied sqrt-prod28.5
if 1.0361466531567994e-296 < t < 8.801957257978148e-180 or 1.6254114022993327e+61 < t Initial program 49.7
Taylor expanded around inf 11.6
Simplified11.6
Final simplification10.0
herbie shell --seed 2019163
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))