\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.1719136387823597 \cdot 10^{+141}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x} - \left(\frac{t}{x \cdot \sqrt{2}} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le -2.201197142463673 \cdot 10^{-170}:\\
\;\;\;\;\frac{\left(t \cdot \sqrt{\sqrt{2}}\right) \cdot \sqrt{\sqrt{2}}}{\sqrt{\left(\ell \cdot 2\right) \cdot \frac{\ell}{x} + t \cdot \left(\left(2 + \frac{4}{x}\right) \cdot t\right)}}\\
\mathbf{elif}\;t \le -2.7142886787045106 \cdot 10^{-243}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{1}{\sqrt{2}} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x \cdot x} - \left(\frac{t}{x \cdot \sqrt{2}} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 1.7765176443510121 \cdot 10^{-224}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{\sqrt{\left(\ell \cdot \left(\ell \cdot 2\right)\right) \cdot \left(4 - \frac{4}{x} \cdot \left(2 - \frac{4}{x}\right)\right) + x \cdot \left(\left(t \cdot t\right) \cdot \left(\frac{\frac{64}{x \cdot x}}{x} + 8\right)\right)}}{\sqrt{\left(\frac{4}{x} \cdot \frac{4}{x} + \left(4 - 2 \cdot \frac{4}{x}\right)\right) \cdot x}}}\\
\mathbf{elif}\;t \le 1.1403298932213872 \cdot 10^{-174}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \left(\frac{\frac{2}{x}}{\sqrt{2}} + \sqrt{2}\right) - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}}\\
\mathbf{elif}\;t \le 1.835770177625048 \cdot 10^{+95}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(\ell \cdot 2\right) \cdot \frac{\ell}{x} + t \cdot \left(\left(2 + \frac{4}{x}\right) \cdot t\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{t \cdot \left(\frac{\frac{2}{x}}{\sqrt{2}} + \sqrt{2}\right) - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}}\\
\end{array}double f(double x, double l, double t) {
double r4229460 = 2.0;
double r4229461 = sqrt(r4229460);
double r4229462 = t;
double r4229463 = r4229461 * r4229462;
double r4229464 = x;
double r4229465 = 1.0;
double r4229466 = r4229464 + r4229465;
double r4229467 = r4229464 - r4229465;
double r4229468 = r4229466 / r4229467;
double r4229469 = l;
double r4229470 = r4229469 * r4229469;
double r4229471 = r4229462 * r4229462;
double r4229472 = r4229460 * r4229471;
double r4229473 = r4229470 + r4229472;
double r4229474 = r4229468 * r4229473;
double r4229475 = r4229474 - r4229470;
double r4229476 = sqrt(r4229475);
double r4229477 = r4229463 / r4229476;
return r4229477;
}
double f(double x, double l, double t) {
double r4229478 = t;
double r4229479 = -1.1719136387823597e+141;
bool r4229480 = r4229478 <= r4229479;
double r4229481 = 2.0;
double r4229482 = sqrt(r4229481);
double r4229483 = r4229482 * r4229478;
double r4229484 = 1.0;
double r4229485 = r4229484 / r4229482;
double r4229486 = r4229481 / r4229482;
double r4229487 = r4229485 - r4229486;
double r4229488 = x;
double r4229489 = r4229488 * r4229488;
double r4229490 = r4229478 / r4229489;
double r4229491 = r4229487 * r4229490;
double r4229492 = r4229488 * r4229482;
double r4229493 = r4229478 / r4229492;
double r4229494 = r4229493 * r4229481;
double r4229495 = r4229494 + r4229483;
double r4229496 = r4229491 - r4229495;
double r4229497 = r4229483 / r4229496;
double r4229498 = -2.201197142463673e-170;
bool r4229499 = r4229478 <= r4229498;
double r4229500 = sqrt(r4229482);
double r4229501 = r4229478 * r4229500;
double r4229502 = r4229501 * r4229500;
double r4229503 = l;
double r4229504 = r4229503 * r4229481;
double r4229505 = r4229503 / r4229488;
double r4229506 = r4229504 * r4229505;
double r4229507 = 4.0;
double r4229508 = r4229507 / r4229488;
double r4229509 = r4229481 + r4229508;
double r4229510 = r4229509 * r4229478;
double r4229511 = r4229478 * r4229510;
double r4229512 = r4229506 + r4229511;
double r4229513 = sqrt(r4229512);
double r4229514 = r4229502 / r4229513;
double r4229515 = -2.7142886787045106e-243;
bool r4229516 = r4229478 <= r4229515;
double r4229517 = 1.7765176443510121e-224;
bool r4229518 = r4229478 <= r4229517;
double r4229519 = r4229503 * r4229504;
double r4229520 = r4229481 - r4229508;
double r4229521 = r4229508 * r4229520;
double r4229522 = r4229507 - r4229521;
double r4229523 = r4229519 * r4229522;
double r4229524 = r4229478 * r4229478;
double r4229525 = 64.0;
double r4229526 = r4229525 / r4229489;
double r4229527 = r4229526 / r4229488;
double r4229528 = 8.0;
double r4229529 = r4229527 + r4229528;
double r4229530 = r4229524 * r4229529;
double r4229531 = r4229488 * r4229530;
double r4229532 = r4229523 + r4229531;
double r4229533 = sqrt(r4229532);
double r4229534 = r4229508 * r4229508;
double r4229535 = r4229481 * r4229508;
double r4229536 = r4229507 - r4229535;
double r4229537 = r4229534 + r4229536;
double r4229538 = r4229537 * r4229488;
double r4229539 = sqrt(r4229538);
double r4229540 = r4229533 / r4229539;
double r4229541 = r4229483 / r4229540;
double r4229542 = 1.1403298932213872e-174;
bool r4229543 = r4229478 <= r4229542;
double r4229544 = r4229481 / r4229488;
double r4229545 = r4229544 / r4229482;
double r4229546 = r4229545 + r4229482;
double r4229547 = r4229478 * r4229546;
double r4229548 = r4229478 / r4229482;
double r4229549 = r4229548 / r4229489;
double r4229550 = r4229547 - r4229549;
double r4229551 = r4229483 / r4229550;
double r4229552 = 1.835770177625048e+95;
bool r4229553 = r4229478 <= r4229552;
double r4229554 = r4229483 / r4229513;
double r4229555 = r4229553 ? r4229554 : r4229551;
double r4229556 = r4229543 ? r4229551 : r4229555;
double r4229557 = r4229518 ? r4229541 : r4229556;
double r4229558 = r4229516 ? r4229497 : r4229557;
double r4229559 = r4229499 ? r4229514 : r4229558;
double r4229560 = r4229480 ? r4229497 : r4229559;
return r4229560;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.1719136387823597e+141 or -2.201197142463673e-170 < t < -2.7142886787045106e-243Initial program 59.5
Taylor expanded around -inf 9.6
Simplified9.6
if -1.1719136387823597e+141 < t < -2.201197142463673e-170Initial program 25.2
Taylor expanded around inf 11.1
Simplified5.5
rmApplied add-sqr-sqrt5.7
Applied associate-*l*5.6
if -2.7142886787045106e-243 < t < 1.7765176443510121e-224Initial program 61.5
Taylor expanded around inf 29.2
Simplified28.7
rmApplied associate-*r/29.2
Applied flip3-+29.2
Applied associate-*l/29.2
Applied associate-*l/29.2
Applied frac-add29.5
Applied sqrt-div23.9
Simplified23.9
if 1.7765176443510121e-224 < t < 1.1403298932213872e-174 or 1.835770177625048e+95 < t Initial program 50.9
Taylor expanded around inf 47.2
Simplified45.3
Taylor expanded around inf 6.8
Simplified6.8
if 1.1403298932213872e-174 < t < 1.835770177625048e+95Initial program 26.7
Taylor expanded around inf 10.8
Simplified6.3
Final simplification8.5
herbie shell --seed 2019124
(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)))))