\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.397305156304466012482107522690315080951 \cdot 10^{105}:\\
\;\;\;\;\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 3.16626920683862038527006405926439879237 \cdot 10^{113}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{\ell}{\frac{x}{\ell}}\right) + 4 \cdot \frac{{t}^{2}}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \sqrt{2} + 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\end{array}double f(double x, double l, double t) {
double r47462 = 2.0;
double r47463 = sqrt(r47462);
double r47464 = t;
double r47465 = r47463 * r47464;
double r47466 = x;
double r47467 = 1.0;
double r47468 = r47466 + r47467;
double r47469 = r47466 - r47467;
double r47470 = r47468 / r47469;
double r47471 = l;
double r47472 = r47471 * r47471;
double r47473 = r47464 * r47464;
double r47474 = r47462 * r47473;
double r47475 = r47472 + r47474;
double r47476 = r47470 * r47475;
double r47477 = r47476 - r47472;
double r47478 = sqrt(r47477);
double r47479 = r47465 / r47478;
return r47479;
}
double f(double x, double l, double t) {
double r47480 = t;
double r47481 = -1.397305156304466e+105;
bool r47482 = r47480 <= r47481;
double r47483 = 2.0;
double r47484 = sqrt(r47483);
double r47485 = r47484 * r47480;
double r47486 = 3.0;
double r47487 = pow(r47484, r47486);
double r47488 = x;
double r47489 = 2.0;
double r47490 = pow(r47488, r47489);
double r47491 = r47487 * r47490;
double r47492 = r47480 / r47491;
double r47493 = r47484 * r47490;
double r47494 = r47480 / r47493;
double r47495 = r47492 - r47494;
double r47496 = r47483 * r47495;
double r47497 = r47484 * r47488;
double r47498 = r47480 / r47497;
double r47499 = r47483 * r47498;
double r47500 = r47496 - r47499;
double r47501 = r47480 * r47484;
double r47502 = r47500 - r47501;
double r47503 = r47485 / r47502;
double r47504 = 3.1662692068386204e+113;
bool r47505 = r47480 <= r47504;
double r47506 = r47480 * r47480;
double r47507 = l;
double r47508 = r47488 / r47507;
double r47509 = r47507 / r47508;
double r47510 = r47506 + r47509;
double r47511 = r47483 * r47510;
double r47512 = 4.0;
double r47513 = pow(r47480, r47489);
double r47514 = r47513 / r47488;
double r47515 = r47512 * r47514;
double r47516 = r47511 + r47515;
double r47517 = sqrt(r47516);
double r47518 = r47485 / r47517;
double r47519 = r47501 + r47499;
double r47520 = r47485 / r47519;
double r47521 = r47505 ? r47518 : r47520;
double r47522 = r47482 ? r47503 : r47521;
return r47522;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.397305156304466e+105Initial program 50.9
Taylor expanded around -inf 3.0
Simplified3.0
if -1.397305156304466e+105 < t < 3.1662692068386204e+113Initial program 37.7
Taylor expanded around inf 17.6
Simplified17.6
rmApplied unpow217.6
Applied associate-/l*13.2
if 3.1662692068386204e+113 < t Initial program 52.7
Taylor expanded around inf 52.7
Simplified52.7
Taylor expanded around inf 2.7
Final simplification9.2
herbie shell --seed 2019212
(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)))))