\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 -3.696744411039916917517605602907382612022 \cdot 10^{122}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right) - \sqrt{2} \cdot t\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}}\\
\mathbf{elif}\;t \le 3.380741590772817149641192548059648402147 \cdot 10^{117}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + 4 \cdot \frac{{t}^{2}}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - \frac{t}{{x}^{2}} \cdot \left(\frac{2}{\sqrt{2} \cdot 2} - \frac{2}{\sqrt{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r44467 = 2.0;
double r44468 = sqrt(r44467);
double r44469 = t;
double r44470 = r44468 * r44469;
double r44471 = x;
double r44472 = 1.0;
double r44473 = r44471 + r44472;
double r44474 = r44471 - r44472;
double r44475 = r44473 / r44474;
double r44476 = l;
double r44477 = r44476 * r44476;
double r44478 = r44469 * r44469;
double r44479 = r44467 * r44478;
double r44480 = r44477 + r44479;
double r44481 = r44475 * r44480;
double r44482 = r44481 - r44477;
double r44483 = sqrt(r44482);
double r44484 = r44470 / r44483;
return r44484;
}
double f(double x, double l, double t) {
double r44485 = t;
double r44486 = -3.696744411039917e+122;
bool r44487 = r44485 <= r44486;
double r44488 = 2.0;
double r44489 = sqrt(r44488);
double r44490 = r44489 * r44485;
double r44491 = x;
double r44492 = 2.0;
double r44493 = pow(r44491, r44492);
double r44494 = r44485 / r44493;
double r44495 = r44489 * r44488;
double r44496 = r44488 / r44495;
double r44497 = r44488 / r44489;
double r44498 = r44496 - r44497;
double r44499 = r44494 * r44498;
double r44500 = r44499 - r44490;
double r44501 = r44489 * r44491;
double r44502 = r44485 / r44501;
double r44503 = r44488 * r44502;
double r44504 = r44500 - r44503;
double r44505 = r44490 / r44504;
double r44506 = 3.380741590772817e+117;
bool r44507 = r44485 <= r44506;
double r44508 = l;
double r44509 = r44491 / r44508;
double r44510 = r44508 / r44509;
double r44511 = r44485 * r44485;
double r44512 = r44510 + r44511;
double r44513 = r44512 * r44488;
double r44514 = 4.0;
double r44515 = pow(r44485, r44492);
double r44516 = r44515 / r44491;
double r44517 = r44514 * r44516;
double r44518 = r44513 + r44517;
double r44519 = sqrt(r44518);
double r44520 = r44490 / r44519;
double r44521 = r44485 * r44489;
double r44522 = r44503 + r44521;
double r44523 = r44522 - r44499;
double r44524 = r44490 / r44523;
double r44525 = r44507 ? r44520 : r44524;
double r44526 = r44487 ? r44505 : r44525;
return r44526;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -3.696744411039917e+122Initial program 54.6
Taylor expanded around -inf 2.8
Simplified2.8
if -3.696744411039917e+122 < t < 3.380741590772817e+117Initial program 36.6
Taylor expanded around inf 17.2
Simplified17.2
rmApplied sqr-pow17.2
Applied associate-/l*12.8
Simplified12.8
if 3.380741590772817e+117 < t Initial program 53.6
Taylor expanded around inf 2.1
Simplified2.1
Final simplification9.0
herbie shell --seed 2019304
(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)))))