\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.3433794278040432 \cdot 10^{+67}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} - \sqrt{2} \cdot t\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}}\\
\mathbf{elif}\;t \le 8.264925603641206 \cdot 10^{-260}:\\
\;\;\;\;\frac{\sqrt{\sqrt{2}} \cdot \left(t \cdot \sqrt{\sqrt{2}}\right)}{\sqrt{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\
\mathbf{elif}\;t \le 3.464075321521421 \cdot 10^{-166}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right) + \frac{\frac{2}{x}}{x} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right)}\\
\mathbf{elif}\;t \le 1.4994412213892464 \cdot 10^{+108}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right) + \frac{\frac{2}{x}}{x} \cdot \left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r1337320 = 2.0;
double r1337321 = sqrt(r1337320);
double r1337322 = t;
double r1337323 = r1337321 * r1337322;
double r1337324 = x;
double r1337325 = 1.0;
double r1337326 = r1337324 + r1337325;
double r1337327 = r1337324 - r1337325;
double r1337328 = r1337326 / r1337327;
double r1337329 = l;
double r1337330 = r1337329 * r1337329;
double r1337331 = r1337322 * r1337322;
double r1337332 = r1337320 * r1337331;
double r1337333 = r1337330 + r1337332;
double r1337334 = r1337328 * r1337333;
double r1337335 = r1337334 - r1337330;
double r1337336 = sqrt(r1337335);
double r1337337 = r1337323 / r1337336;
return r1337337;
}
double f(double x, double l, double t) {
double r1337338 = t;
double r1337339 = -2.3433794278040432e+67;
bool r1337340 = r1337338 <= r1337339;
double r1337341 = 2.0;
double r1337342 = sqrt(r1337341);
double r1337343 = r1337342 * r1337338;
double r1337344 = r1337341 * r1337342;
double r1337345 = r1337338 / r1337344;
double r1337346 = r1337338 / r1337342;
double r1337347 = r1337345 - r1337346;
double r1337348 = x;
double r1337349 = r1337341 / r1337348;
double r1337350 = r1337349 / r1337348;
double r1337351 = r1337347 * r1337350;
double r1337352 = r1337351 - r1337343;
double r1337353 = r1337346 * r1337349;
double r1337354 = r1337352 - r1337353;
double r1337355 = r1337343 / r1337354;
double r1337356 = 8.264925603641206e-260;
bool r1337357 = r1337338 <= r1337356;
double r1337358 = sqrt(r1337342);
double r1337359 = r1337338 * r1337358;
double r1337360 = r1337358 * r1337359;
double r1337361 = l;
double r1337362 = r1337348 / r1337361;
double r1337363 = r1337361 / r1337362;
double r1337364 = r1337338 * r1337338;
double r1337365 = r1337363 + r1337364;
double r1337366 = r1337365 * r1337341;
double r1337367 = 4.0;
double r1337368 = r1337367 / r1337348;
double r1337369 = r1337368 * r1337364;
double r1337370 = r1337366 + r1337369;
double r1337371 = sqrt(r1337370);
double r1337372 = r1337360 / r1337371;
double r1337373 = 3.464075321521421e-166;
bool r1337374 = r1337338 <= r1337373;
double r1337375 = r1337353 + r1337343;
double r1337376 = r1337346 - r1337345;
double r1337377 = r1337350 * r1337376;
double r1337378 = r1337375 + r1337377;
double r1337379 = r1337343 / r1337378;
double r1337380 = 1.4994412213892464e+108;
bool r1337381 = r1337338 <= r1337380;
double r1337382 = r1337343 / r1337371;
double r1337383 = r1337381 ? r1337382 : r1337379;
double r1337384 = r1337374 ? r1337379 : r1337383;
double r1337385 = r1337357 ? r1337372 : r1337384;
double r1337386 = r1337340 ? r1337355 : r1337385;
return r1337386;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.3433794278040432e+67Initial program 46.7
Taylor expanded around -inf 3.5
Simplified3.5
if -2.3433794278040432e+67 < t < 8.264925603641206e-260Initial program 41.2
Taylor expanded around -inf 18.5
Simplified14.8
rmApplied add-sqr-sqrt14.9
Applied associate-*l*14.9
if 8.264925603641206e-260 < t < 3.464075321521421e-166 or 1.4994412213892464e+108 < t Initial program 53.5
Taylor expanded around inf 10.1
Simplified10.1
if 3.464075321521421e-166 < t < 1.4994412213892464e+108Initial program 27.4
Taylor expanded around -inf 10.6
Simplified5.1
Final simplification8.9
herbie shell --seed 2019144
(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)))))