\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 -6.172764092322424109949396121339735582564 \cdot 10^{59}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)} - \left(\sqrt{2} \cdot t + \frac{2 \cdot t}{\sqrt{2} \cdot x}\right)\right) - \frac{\frac{2 \cdot t}{\sqrt{2}}}{x \cdot x}}\\
\mathbf{elif}\;t \le 1.623710652061729557401163312786003220273 \cdot 10^{60}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\sqrt{\ell \cdot \frac{\ell}{x} + t \cdot t} \cdot \sqrt{\ell \cdot \frac{\ell}{x} + t \cdot t}\right) + \frac{4}{\frac{x}{t \cdot t}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{\frac{2 \cdot t}{\sqrt{2}}}{x \cdot x} + \sqrt{2} \cdot t\right) + \frac{2 \cdot t}{\sqrt{2} \cdot x}\right) + \frac{-2 \cdot t}{\left(x \cdot x\right) \cdot \left(2 \cdot \sqrt{2}\right)}}\\
\end{array}double f(double x, double l, double t) {
double r1354616 = 2.0;
double r1354617 = sqrt(r1354616);
double r1354618 = t;
double r1354619 = r1354617 * r1354618;
double r1354620 = x;
double r1354621 = 1.0;
double r1354622 = r1354620 + r1354621;
double r1354623 = r1354620 - r1354621;
double r1354624 = r1354622 / r1354623;
double r1354625 = l;
double r1354626 = r1354625 * r1354625;
double r1354627 = r1354618 * r1354618;
double r1354628 = r1354616 * r1354627;
double r1354629 = r1354626 + r1354628;
double r1354630 = r1354624 * r1354629;
double r1354631 = r1354630 - r1354626;
double r1354632 = sqrt(r1354631);
double r1354633 = r1354619 / r1354632;
return r1354633;
}
double f(double x, double l, double t) {
double r1354634 = t;
double r1354635 = -6.172764092322424e+59;
bool r1354636 = r1354634 <= r1354635;
double r1354637 = 2.0;
double r1354638 = sqrt(r1354637);
double r1354639 = r1354638 * r1354634;
double r1354640 = r1354637 * r1354634;
double r1354641 = x;
double r1354642 = r1354641 * r1354641;
double r1354643 = r1354637 * r1354638;
double r1354644 = r1354642 * r1354643;
double r1354645 = r1354640 / r1354644;
double r1354646 = r1354638 * r1354641;
double r1354647 = r1354640 / r1354646;
double r1354648 = r1354639 + r1354647;
double r1354649 = r1354645 - r1354648;
double r1354650 = r1354640 / r1354638;
double r1354651 = r1354650 / r1354642;
double r1354652 = r1354649 - r1354651;
double r1354653 = r1354639 / r1354652;
double r1354654 = 1.6237106520617296e+60;
bool r1354655 = r1354634 <= r1354654;
double r1354656 = l;
double r1354657 = r1354656 / r1354641;
double r1354658 = r1354656 * r1354657;
double r1354659 = r1354634 * r1354634;
double r1354660 = r1354658 + r1354659;
double r1354661 = sqrt(r1354660);
double r1354662 = r1354661 * r1354661;
double r1354663 = r1354637 * r1354662;
double r1354664 = 4.0;
double r1354665 = r1354641 / r1354659;
double r1354666 = r1354664 / r1354665;
double r1354667 = r1354663 + r1354666;
double r1354668 = sqrt(r1354667);
double r1354669 = r1354639 / r1354668;
double r1354670 = r1354651 + r1354639;
double r1354671 = r1354670 + r1354647;
double r1354672 = -r1354640;
double r1354673 = r1354672 / r1354644;
double r1354674 = r1354671 + r1354673;
double r1354675 = r1354639 / r1354674;
double r1354676 = r1354655 ? r1354669 : r1354675;
double r1354677 = r1354636 ? r1354653 : r1354676;
return r1354677;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -6.172764092322424e+59Initial program 45.1
Taylor expanded around -inf 3.5
Simplified3.6
if -6.172764092322424e+59 < t < 1.6237106520617296e+60Initial program 40.3
Taylor expanded around inf 17.9
Simplified17.9
rmApplied *-un-lft-identity17.9
Applied times-frac14.5
Simplified14.5
rmApplied add-sqr-sqrt14.5
if 1.6237106520617296e+60 < t Initial program 45.8
Taylor expanded around inf 3.8
Simplified3.8
Final simplification9.4
herbie shell --seed 2019172
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2.0) t) (sqrt (- (* (/ (+ x 1.0) (- x 1.0)) (+ (* l l) (* 2.0 (* t t)))) (* l l)))))