\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.429472263354247 \cdot 10^{+67}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} - \sqrt{2} \cdot t\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}}\\
\mathbf{elif}\;t \le -1.8034323523291548 \cdot 10^{-167}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{\ell}{\frac{x}{\ell}}\right) + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\
\mathbf{elif}\;t \le -3.737726633798208 \cdot 10^{-276}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\left(\frac{t}{2 \cdot \sqrt{2}} - \frac{t}{\sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} - \sqrt{2} \cdot t\right) - \frac{t}{\sqrt{2}} \cdot \frac{2}{x}}\\
\mathbf{elif}\;t \le 5.047696061686955 \cdot 10^{-240}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{\ell}{\frac{x}{\ell}}\right) + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\
\mathbf{elif}\;t \le 1.351904254863679 \cdot 10^{-161}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} + \left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 1.1429092917229189 \cdot 10^{+136}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(t \cdot t + \frac{\ell}{\frac{x}{\ell}}\right) + \frac{4}{x} \cdot \left(t \cdot t\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{t}{\sqrt{2}} - \frac{t}{2 \cdot \sqrt{2}}\right) \cdot \frac{\frac{2}{x}}{x} + \left(\frac{t}{\sqrt{2}} \cdot \frac{2}{x} + \sqrt{2} \cdot t\right)}\\
\end{array}double f(double x, double l, double t) {
double r1810787 = 2.0;
double r1810788 = sqrt(r1810787);
double r1810789 = t;
double r1810790 = r1810788 * r1810789;
double r1810791 = x;
double r1810792 = 1.0;
double r1810793 = r1810791 + r1810792;
double r1810794 = r1810791 - r1810792;
double r1810795 = r1810793 / r1810794;
double r1810796 = l;
double r1810797 = r1810796 * r1810796;
double r1810798 = r1810789 * r1810789;
double r1810799 = r1810787 * r1810798;
double r1810800 = r1810797 + r1810799;
double r1810801 = r1810795 * r1810800;
double r1810802 = r1810801 - r1810797;
double r1810803 = sqrt(r1810802);
double r1810804 = r1810790 / r1810803;
return r1810804;
}
double f(double x, double l, double t) {
double r1810805 = t;
double r1810806 = -1.429472263354247e+67;
bool r1810807 = r1810805 <= r1810806;
double r1810808 = 2.0;
double r1810809 = sqrt(r1810808);
double r1810810 = r1810809 * r1810805;
double r1810811 = r1810808 * r1810809;
double r1810812 = r1810805 / r1810811;
double r1810813 = r1810805 / r1810809;
double r1810814 = r1810812 - r1810813;
double r1810815 = x;
double r1810816 = r1810808 / r1810815;
double r1810817 = r1810816 / r1810815;
double r1810818 = r1810814 * r1810817;
double r1810819 = r1810818 - r1810810;
double r1810820 = r1810813 * r1810816;
double r1810821 = r1810819 - r1810820;
double r1810822 = r1810810 / r1810821;
double r1810823 = -1.8034323523291548e-167;
bool r1810824 = r1810805 <= r1810823;
double r1810825 = r1810805 * r1810805;
double r1810826 = l;
double r1810827 = r1810815 / r1810826;
double r1810828 = r1810826 / r1810827;
double r1810829 = r1810825 + r1810828;
double r1810830 = r1810808 * r1810829;
double r1810831 = 4.0;
double r1810832 = r1810831 / r1810815;
double r1810833 = r1810832 * r1810825;
double r1810834 = r1810830 + r1810833;
double r1810835 = sqrt(r1810834);
double r1810836 = r1810810 / r1810835;
double r1810837 = -3.737726633798208e-276;
bool r1810838 = r1810805 <= r1810837;
double r1810839 = 5.047696061686955e-240;
bool r1810840 = r1810805 <= r1810839;
double r1810841 = 1.351904254863679e-161;
bool r1810842 = r1810805 <= r1810841;
double r1810843 = r1810813 - r1810812;
double r1810844 = r1810843 * r1810817;
double r1810845 = r1810820 + r1810810;
double r1810846 = r1810844 + r1810845;
double r1810847 = r1810810 / r1810846;
double r1810848 = 1.1429092917229189e+136;
bool r1810849 = r1810805 <= r1810848;
double r1810850 = r1810849 ? r1810836 : r1810847;
double r1810851 = r1810842 ? r1810847 : r1810850;
double r1810852 = r1810840 ? r1810836 : r1810851;
double r1810853 = r1810838 ? r1810822 : r1810852;
double r1810854 = r1810824 ? r1810836 : r1810853;
double r1810855 = r1810807 ? r1810822 : r1810854;
return r1810855;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.429472263354247e+67 or -1.8034323523291548e-167 < t < -3.737726633798208e-276Initial program 49.2
Taylor expanded around -inf 10.7
Simplified10.7
if -1.429472263354247e+67 < t < -1.8034323523291548e-167 or -3.737726633798208e-276 < t < 5.047696061686955e-240 or 1.351904254863679e-161 < t < 1.1429092917229189e+136Initial program 30.6
Taylor expanded around inf 12.6
Simplified8.1
if 5.047696061686955e-240 < t < 1.351904254863679e-161 or 1.1429092917229189e+136 < t Initial program 58.2
Taylor expanded around inf 8.8
Simplified8.8
Final simplification9.0
herbie shell --seed 2019146
(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)))))