\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 -30300791297250332:\\
\;\;\;\;\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.511170609100405 \cdot 10^{-151}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \ell \cdot \frac{\ell}{x}\right)}} \cdot \sqrt{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \ell \cdot \frac{\ell}{x}\right)}}}\\
\mathbf{elif}\;t \le -1.21751320251488658 \cdot 10^{-295}:\\
\;\;\;\;\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 3.27940796217429109 \cdot 10^{-264}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \ell \cdot \frac{\ell}{x}\right)}}\\
\mathbf{elif}\;t \le 2.2209729288484951 \cdot 10^{-162}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}}\\
\mathbf{elif}\;t \le 1.73405392707011745 \cdot 10^{57}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \ell \cdot \frac{\ell}{x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \frac{t}{\sqrt{2} \cdot x} + t \cdot \sqrt{2}\right) - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}}\\
\end{array}double f(double x, double l, double t) {
double r37596 = 2.0;
double r37597 = sqrt(r37596);
double r37598 = t;
double r37599 = r37597 * r37598;
double r37600 = x;
double r37601 = 1.0;
double r37602 = r37600 + r37601;
double r37603 = r37600 - r37601;
double r37604 = r37602 / r37603;
double r37605 = l;
double r37606 = r37605 * r37605;
double r37607 = r37598 * r37598;
double r37608 = r37596 * r37607;
double r37609 = r37606 + r37608;
double r37610 = r37604 * r37609;
double r37611 = r37610 - r37606;
double r37612 = sqrt(r37611);
double r37613 = r37599 / r37612;
return r37613;
}
double f(double x, double l, double t) {
double r37614 = t;
double r37615 = -30300791297250332.0;
bool r37616 = r37614 <= r37615;
double r37617 = 2.0;
double r37618 = sqrt(r37617);
double r37619 = r37618 * r37614;
double r37620 = 3.0;
double r37621 = pow(r37618, r37620);
double r37622 = x;
double r37623 = 2.0;
double r37624 = pow(r37622, r37623);
double r37625 = r37621 * r37624;
double r37626 = r37614 / r37625;
double r37627 = r37618 * r37624;
double r37628 = r37614 / r37627;
double r37629 = r37626 - r37628;
double r37630 = r37617 * r37629;
double r37631 = r37630 - r37619;
double r37632 = r37618 * r37622;
double r37633 = r37614 / r37632;
double r37634 = r37617 * r37633;
double r37635 = r37631 - r37634;
double r37636 = r37619 / r37635;
double r37637 = -5.511170609100405e-151;
bool r37638 = r37614 <= r37637;
double r37639 = 4.0;
double r37640 = pow(r37614, r37623);
double r37641 = r37640 / r37622;
double r37642 = r37639 * r37641;
double r37643 = l;
double r37644 = r37643 / r37622;
double r37645 = r37643 * r37644;
double r37646 = r37640 + r37645;
double r37647 = r37617 * r37646;
double r37648 = r37642 + r37647;
double r37649 = sqrt(r37648);
double r37650 = sqrt(r37649);
double r37651 = r37650 * r37650;
double r37652 = r37619 / r37651;
double r37653 = -1.2175132025148866e-295;
bool r37654 = r37614 <= r37653;
double r37655 = 3.279407962174291e-264;
bool r37656 = r37614 <= r37655;
double r37657 = r37619 / r37649;
double r37658 = 2.220972928848495e-162;
bool r37659 = r37614 <= r37658;
double r37660 = r37614 * r37618;
double r37661 = r37634 + r37660;
double r37662 = r37617 * r37626;
double r37663 = r37661 - r37662;
double r37664 = r37619 / r37663;
double r37665 = 1.7340539270701175e+57;
bool r37666 = r37614 <= r37665;
double r37667 = r37666 ? r37657 : r37664;
double r37668 = r37659 ? r37664 : r37667;
double r37669 = r37656 ? r37657 : r37668;
double r37670 = r37654 ? r37636 : r37669;
double r37671 = r37638 ? r37652 : r37670;
double r37672 = r37616 ? r37636 : r37671;
return r37672;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -30300791297250332.0 or -5.511170609100405e-151 < t < -1.2175132025148866e-295Initial program 46.1
Taylor expanded around -inf 12.5
Simplified12.5
if -30300791297250332.0 < t < -5.511170609100405e-151Initial program 28.6
Taylor expanded around inf 9.0
Simplified9.0
rmApplied *-un-lft-identity9.0
Applied add-sqr-sqrt36.2
Applied unpow-prod-down36.2
Applied times-frac34.2
Simplified34.1
Simplified5.0
rmApplied add-sqr-sqrt5.0
Applied sqrt-prod5.2
if -1.2175132025148866e-295 < t < 3.279407962174291e-264 or 2.220972928848495e-162 < t < 1.7340539270701175e+57Initial program 35.9
Taylor expanded around inf 13.4
Simplified13.4
rmApplied *-un-lft-identity13.4
Applied add-sqr-sqrt36.9
Applied unpow-prod-down36.9
Applied times-frac35.2
Simplified35.2
Simplified9.1
if 3.279407962174291e-264 < t < 2.220972928848495e-162 or 1.7340539270701175e+57 < t Initial program 49.3
Taylor expanded around inf 42.8
Simplified42.8
Taylor expanded around inf 10.3
Final simplification10.2
herbie shell --seed 2020060
(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)))))