\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 -4.072364829113804129211154117041985310779 \cdot 10^{83}:\\
\;\;\;\;\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 5.479403094569755226462617097079808517203 \cdot 10^{-269}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\frac{\left|\ell\right|}{\sqrt[3]{x}}}{\sqrt[3]{x}} \cdot \frac{\left|\ell\right|}{\sqrt[3]{x}}\right)}}\\
\mathbf{elif}\;t \le 6.496548842579947709369609190545749772172 \cdot 10^{-161}:\\
\;\;\;\;\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)}\\
\mathbf{elif}\;t \le 1.708019048851353118713678458647750774549 \cdot 10^{139}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \left|\ell\right| \cdot \frac{\left|\ell\right|}{x}\right)}} \cdot \sqrt{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \left|\ell\right| \cdot \frac{\left|\ell\right|}{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 r34455 = 2.0;
double r34456 = sqrt(r34455);
double r34457 = t;
double r34458 = r34456 * r34457;
double r34459 = x;
double r34460 = 1.0;
double r34461 = r34459 + r34460;
double r34462 = r34459 - r34460;
double r34463 = r34461 / r34462;
double r34464 = l;
double r34465 = r34464 * r34464;
double r34466 = r34457 * r34457;
double r34467 = r34455 * r34466;
double r34468 = r34465 + r34467;
double r34469 = r34463 * r34468;
double r34470 = r34469 - r34465;
double r34471 = sqrt(r34470);
double r34472 = r34458 / r34471;
return r34472;
}
double f(double x, double l, double t) {
double r34473 = t;
double r34474 = -4.072364829113804e+83;
bool r34475 = r34473 <= r34474;
double r34476 = 2.0;
double r34477 = sqrt(r34476);
double r34478 = r34477 * r34473;
double r34479 = 3.0;
double r34480 = pow(r34477, r34479);
double r34481 = x;
double r34482 = 2.0;
double r34483 = pow(r34481, r34482);
double r34484 = r34480 * r34483;
double r34485 = r34473 / r34484;
double r34486 = r34477 * r34483;
double r34487 = r34473 / r34486;
double r34488 = r34485 - r34487;
double r34489 = r34476 * r34488;
double r34490 = r34489 - r34478;
double r34491 = r34477 * r34481;
double r34492 = r34473 / r34491;
double r34493 = r34476 * r34492;
double r34494 = r34490 - r34493;
double r34495 = r34478 / r34494;
double r34496 = 5.479403094569755e-269;
bool r34497 = r34473 <= r34496;
double r34498 = 4.0;
double r34499 = pow(r34473, r34482);
double r34500 = r34499 / r34481;
double r34501 = r34498 * r34500;
double r34502 = l;
double r34503 = fabs(r34502);
double r34504 = cbrt(r34481);
double r34505 = r34503 / r34504;
double r34506 = r34505 / r34504;
double r34507 = r34506 * r34505;
double r34508 = r34499 + r34507;
double r34509 = r34476 * r34508;
double r34510 = r34501 + r34509;
double r34511 = sqrt(r34510);
double r34512 = r34478 / r34511;
double r34513 = 6.496548842579948e-161;
bool r34514 = r34473 <= r34513;
double r34515 = r34487 + r34492;
double r34516 = r34476 * r34515;
double r34517 = r34476 * r34485;
double r34518 = r34478 - r34517;
double r34519 = r34516 + r34518;
double r34520 = r34478 / r34519;
double r34521 = 1.708019048851353e+139;
bool r34522 = r34473 <= r34521;
double r34523 = r34503 / r34481;
double r34524 = r34503 * r34523;
double r34525 = r34499 + r34524;
double r34526 = r34476 * r34525;
double r34527 = r34501 + r34526;
double r34528 = sqrt(r34527);
double r34529 = sqrt(r34528);
double r34530 = r34529 * r34529;
double r34531 = r34478 / r34530;
double r34532 = r34522 ? r34531 : r34520;
double r34533 = r34514 ? r34520 : r34532;
double r34534 = r34497 ? r34512 : r34533;
double r34535 = r34475 ? r34495 : r34534;
return r34535;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -4.072364829113804e+83Initial program 48.4
Taylor expanded around -inf 3.0
Simplified3.0
if -4.072364829113804e+83 < t < 5.479403094569755e-269Initial program 40.2
Taylor expanded around inf 17.8
Simplified17.8
rmApplied add-cube-cbrt17.9
Applied add-sqr-sqrt17.9
Applied times-frac17.8
Simplified17.9
Simplified14.5
if 5.479403094569755e-269 < t < 6.496548842579948e-161 or 1.708019048851353e+139 < t Initial program 59.6
Taylor expanded around inf 11.9
Simplified11.9
if 6.496548842579948e-161 < t < 1.708019048851353e+139Initial program 25.4
Taylor expanded around inf 10.1
Simplified10.1
rmApplied *-un-lft-identity10.1
Applied add-sqr-sqrt10.1
Applied times-frac10.1
Simplified10.1
Simplified5.1
rmApplied add-sqr-sqrt5.1
Applied sqrt-prod5.3
Final simplification9.2
herbie shell --seed 2019362
(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)))))