\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.922123040950101526776925110190092589123 \cdot 10^{-18}:\\
\;\;\;\;\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) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le 4568115772869941922171560669274498400256:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2}}\\
\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(t \cdot \sqrt{2} - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r51443 = 2.0;
double r51444 = sqrt(r51443);
double r51445 = t;
double r51446 = r51444 * r51445;
double r51447 = x;
double r51448 = 1.0;
double r51449 = r51447 + r51448;
double r51450 = r51447 - r51448;
double r51451 = r51449 / r51450;
double r51452 = l;
double r51453 = r51452 * r51452;
double r51454 = r51445 * r51445;
double r51455 = r51443 * r51454;
double r51456 = r51453 + r51455;
double r51457 = r51451 * r51456;
double r51458 = r51457 - r51453;
double r51459 = sqrt(r51458);
double r51460 = r51446 / r51459;
return r51460;
}
double f(double x, double l, double t) {
double r51461 = t;
double r51462 = -1.9221230409501015e-18;
bool r51463 = r51461 <= r51462;
double r51464 = 2.0;
double r51465 = sqrt(r51464);
double r51466 = r51465 * r51461;
double r51467 = 3.0;
double r51468 = pow(r51465, r51467);
double r51469 = x;
double r51470 = 2.0;
double r51471 = pow(r51469, r51470);
double r51472 = r51468 * r51471;
double r51473 = r51461 / r51472;
double r51474 = r51465 * r51471;
double r51475 = r51461 / r51474;
double r51476 = r51473 - r51475;
double r51477 = r51464 * r51476;
double r51478 = r51465 * r51469;
double r51479 = r51461 / r51478;
double r51480 = r51464 * r51479;
double r51481 = r51477 - r51480;
double r51482 = r51461 * r51465;
double r51483 = r51481 - r51482;
double r51484 = r51466 / r51483;
double r51485 = 4.568115772869942e+39;
bool r51486 = r51461 <= r51485;
double r51487 = 4.0;
double r51488 = pow(r51461, r51470);
double r51489 = r51488 / r51469;
double r51490 = r51487 * r51489;
double r51491 = l;
double r51492 = r51469 / r51491;
double r51493 = r51491 / r51492;
double r51494 = r51461 * r51461;
double r51495 = r51493 + r51494;
double r51496 = r51495 * r51464;
double r51497 = r51490 + r51496;
double r51498 = sqrt(r51497);
double r51499 = r51466 / r51498;
double r51500 = r51475 + r51479;
double r51501 = r51464 * r51500;
double r51502 = r51464 * r51473;
double r51503 = r51482 - r51502;
double r51504 = r51501 + r51503;
double r51505 = r51466 / r51504;
double r51506 = r51486 ? r51499 : r51505;
double r51507 = r51463 ? r51484 : r51506;
return r51507;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.9221230409501015e-18Initial program 40.9
Taylor expanded around -inf 5.3
Simplified5.3
if -1.9221230409501015e-18 < t < 4.568115772869942e+39Initial program 44.9
Taylor expanded around inf 20.0
Simplified20.0
rmApplied sqr-pow20.0
Applied associate-/l*16.4
Simplified16.4
if 4.568115772869942e+39 < t Initial program 43.6
Taylor expanded around inf 4.7
Simplified4.7
Final simplification10.1
herbie shell --seed 2019235
(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)))))