\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.497186697554710081473314925566838223756 \cdot 10^{82}:\\
\;\;\;\;\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 -7.265062434046062880671280333196464651815 \cdot 10^{-166}:\\
\;\;\;\;\frac{t \cdot \sqrt{2}}{\sqrt{\left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2 + 4 \cdot \frac{{t}^{2}}{x}}}\\
\mathbf{elif}\;t \le -3.600112372186980511777207822247642078219 \cdot 10^{-276}:\\
\;\;\;\;\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 6.841551951533339534532177087886888745651 \cdot 10^{60}:\\
\;\;\;\;\frac{t \cdot \sqrt{2}}{\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 r43638 = 2.0;
double r43639 = sqrt(r43638);
double r43640 = t;
double r43641 = r43639 * r43640;
double r43642 = x;
double r43643 = 1.0;
double r43644 = r43642 + r43643;
double r43645 = r43642 - r43643;
double r43646 = r43644 / r43645;
double r43647 = l;
double r43648 = r43647 * r43647;
double r43649 = r43640 * r43640;
double r43650 = r43638 * r43649;
double r43651 = r43648 + r43650;
double r43652 = r43646 * r43651;
double r43653 = r43652 - r43648;
double r43654 = sqrt(r43653);
double r43655 = r43641 / r43654;
return r43655;
}
double f(double x, double l, double t) {
double r43656 = t;
double r43657 = -1.49718669755471e+82;
bool r43658 = r43656 <= r43657;
double r43659 = 2.0;
double r43660 = sqrt(r43659);
double r43661 = r43660 * r43656;
double r43662 = x;
double r43663 = 2.0;
double r43664 = pow(r43662, r43663);
double r43665 = r43656 / r43664;
double r43666 = r43660 * r43659;
double r43667 = r43659 / r43666;
double r43668 = r43659 / r43660;
double r43669 = r43667 - r43668;
double r43670 = r43665 * r43669;
double r43671 = r43670 - r43661;
double r43672 = r43660 * r43662;
double r43673 = r43656 / r43672;
double r43674 = r43659 * r43673;
double r43675 = r43671 - r43674;
double r43676 = r43661 / r43675;
double r43677 = -7.265062434046063e-166;
bool r43678 = r43656 <= r43677;
double r43679 = r43656 * r43660;
double r43680 = l;
double r43681 = r43662 / r43680;
double r43682 = r43680 / r43681;
double r43683 = r43656 * r43656;
double r43684 = r43682 + r43683;
double r43685 = r43684 * r43659;
double r43686 = 4.0;
double r43687 = pow(r43656, r43663);
double r43688 = r43687 / r43662;
double r43689 = r43686 * r43688;
double r43690 = r43685 + r43689;
double r43691 = sqrt(r43690);
double r43692 = r43679 / r43691;
double r43693 = -3.6001123721869805e-276;
bool r43694 = r43656 <= r43693;
double r43695 = 6.84155195153334e+60;
bool r43696 = r43656 <= r43695;
double r43697 = r43674 + r43679;
double r43698 = r43697 - r43670;
double r43699 = r43661 / r43698;
double r43700 = r43696 ? r43692 : r43699;
double r43701 = r43694 ? r43676 : r43700;
double r43702 = r43678 ? r43692 : r43701;
double r43703 = r43658 ? r43676 : r43702;
return r43703;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.49718669755471e+82 or -7.265062434046063e-166 < t < -3.6001123721869805e-276Initial program 52.7
Taylor expanded around -inf 11.4
Simplified11.4
if -1.49718669755471e+82 < t < -7.265062434046063e-166 or -3.6001123721869805e-276 < t < 6.84155195153334e+60Initial program 36.4
Taylor expanded around inf 16.1
Simplified16.1
rmApplied sqr-pow16.1
Applied associate-/l*11.6
Simplified11.6
if 6.84155195153334e+60 < t Initial program 45.6
Taylor expanded around inf 3.4
Simplified3.4
Final simplification9.6
herbie shell --seed 2019325
(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)))))