\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 -2.4044001424157714 \cdot 10^{115}:\\
\;\;\;\;\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 -2.8785002221205043 \cdot 10^{-308}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{x}}\right)}}\\
\mathbf{elif}\;t \le 6.3004102494834298 \cdot 10^{-163}:\\
\;\;\;\;\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 2.4398647795198149 \cdot 10^{48}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \frac{\ell}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\ell}{\sqrt[3]{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 r38458 = 2.0;
double r38459 = sqrt(r38458);
double r38460 = t;
double r38461 = r38459 * r38460;
double r38462 = x;
double r38463 = 1.0;
double r38464 = r38462 + r38463;
double r38465 = r38462 - r38463;
double r38466 = r38464 / r38465;
double r38467 = l;
double r38468 = r38467 * r38467;
double r38469 = r38460 * r38460;
double r38470 = r38458 * r38469;
double r38471 = r38468 + r38470;
double r38472 = r38466 * r38471;
double r38473 = r38472 - r38468;
double r38474 = sqrt(r38473);
double r38475 = r38461 / r38474;
return r38475;
}
double f(double x, double l, double t) {
double r38476 = t;
double r38477 = -2.4044001424157714e+115;
bool r38478 = r38476 <= r38477;
double r38479 = 2.0;
double r38480 = sqrt(r38479);
double r38481 = r38480 * r38476;
double r38482 = 3.0;
double r38483 = pow(r38480, r38482);
double r38484 = x;
double r38485 = 2.0;
double r38486 = pow(r38484, r38485);
double r38487 = r38483 * r38486;
double r38488 = r38476 / r38487;
double r38489 = r38480 * r38486;
double r38490 = r38476 / r38489;
double r38491 = r38488 - r38490;
double r38492 = r38479 * r38491;
double r38493 = r38492 - r38481;
double r38494 = r38480 * r38484;
double r38495 = r38476 / r38494;
double r38496 = r38479 * r38495;
double r38497 = r38493 - r38496;
double r38498 = r38481 / r38497;
double r38499 = -2.8785002221205043e-308;
bool r38500 = r38476 <= r38499;
double r38501 = 4.0;
double r38502 = pow(r38476, r38485);
double r38503 = r38502 / r38484;
double r38504 = r38501 * r38503;
double r38505 = l;
double r38506 = cbrt(r38484);
double r38507 = r38506 * r38506;
double r38508 = r38505 / r38507;
double r38509 = r38505 / r38506;
double r38510 = r38508 * r38509;
double r38511 = r38502 + r38510;
double r38512 = r38479 * r38511;
double r38513 = r38504 + r38512;
double r38514 = sqrt(r38513);
double r38515 = r38481 / r38514;
double r38516 = 6.30041024948343e-163;
bool r38517 = r38476 <= r38516;
double r38518 = r38490 + r38495;
double r38519 = r38479 * r38518;
double r38520 = r38479 * r38488;
double r38521 = r38481 - r38520;
double r38522 = r38519 + r38521;
double r38523 = r38481 / r38522;
double r38524 = 2.439864779519815e+48;
bool r38525 = r38476 <= r38524;
double r38526 = r38525 ? r38515 : r38523;
double r38527 = r38517 ? r38523 : r38526;
double r38528 = r38500 ? r38515 : r38527;
double r38529 = r38478 ? r38498 : r38528;
return r38529;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.4044001424157714e+115Initial program 52.3
Taylor expanded around -inf 2.9
Simplified2.9
if -2.4044001424157714e+115 < t < -2.8785002221205043e-308 or 6.30041024948343e-163 < t < 2.439864779519815e+48Initial program 35.2
Taylor expanded around inf 14.7
Simplified14.7
rmApplied add-cube-cbrt14.8
Applied add-sqr-sqrt39.5
Applied unpow-prod-down39.5
Applied times-frac37.3
Simplified37.3
Simplified10.3
if -2.8785002221205043e-308 < t < 6.30041024948343e-163 or 2.439864779519815e+48 < t Initial program 49.3
Taylor expanded around inf 12.8
Simplified12.8
Final simplification9.7
herbie shell --seed 2020062
(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)))))