double f(double x, double l, double t) {
double r3062839 = 2.0;
double r3062840 = sqrt(r3062839);
double r3062841 = t;
double r3062842 = r3062840 * r3062841;
double r3062843 = x;
double r3062844 = 1.0;
double r3062845 = r3062843 + r3062844;
double r3062846 = r3062843 - r3062844;
double r3062847 = r3062845 / r3062846;
double r3062848 = l;
double r3062849 = r3062848 * r3062848;
double r3062850 = r3062841 * r3062841;
double r3062851 = r3062839 * r3062850;
double r3062852 = r3062849 + r3062851;
double r3062853 = r3062847 * r3062852;
double r3062854 = r3062853 - r3062849;
double r3062855 = sqrt(r3062854);
double r3062856 = r3062842 / r3062855;
return r3062856;
}
double f(double x, double l, double t) {
double r3062857 = t;
double r3062858 = -4.914206833303874e+65;
bool r3062859 = r3062857 <= r3062858;
double r3062860 = 2.0;
double r3062861 = sqrt(r3062860);
double r3062862 = r3062861 * r3062857;
double r3062863 = x;
double r3062864 = r3062863 * r3062863;
double r3062865 = r3062857 / r3062864;
double r3062866 = 1.0;
double r3062867 = r3062866 / r3062861;
double r3062868 = r3062865 * r3062867;
double r3062869 = r3062860 / r3062861;
double r3062870 = r3062857 / r3062863;
double r3062871 = r3062870 + r3062865;
double r3062872 = r3062869 * r3062871;
double r3062873 = r3062872 + r3062862;
double r3062874 = r3062868 - r3062873;
double r3062875 = r3062862 / r3062874;
double r3062876 = -1.6072879684005276e-180;
bool r3062877 = r3062857 <= r3062876;
double r3062878 = sqrt(r3062861);
double r3062879 = r3062878 * r3062857;
double r3062880 = r3062878 * r3062879;
double r3062881 = l;
double r3062882 = r3062860 * r3062881;
double r3062883 = r3062881 / r3062863;
double r3062884 = r3062882 * r3062883;
double r3062885 = r3062857 * r3062857;
double r3062886 = 4.0;
double r3062887 = r3062886 / r3062863;
double r3062888 = r3062860 + r3062887;
double r3062889 = r3062885 * r3062888;
double r3062890 = r3062884 + r3062889;
double r3062891 = sqrt(r3062890);
double r3062892 = r3062880 / r3062891;
double r3062893 = -1.3823772626115996e-305;
bool r3062894 = r3062857 <= r3062893;
double r3062895 = 8.370464796885246e+135;
bool r3062896 = r3062857 <= r3062895;
double r3062897 = cbrt(r3062861);
double r3062898 = r3062857 * r3062897;
double r3062899 = r3062897 * r3062897;
double r3062900 = r3062898 * r3062899;
double r3062901 = r3062900 / r3062891;
double r3062902 = r3062862 - r3062868;
double r3062903 = r3062860 / r3062863;
double r3062904 = r3062903 / r3062863;
double r3062905 = r3062903 + r3062904;
double r3062906 = r3062857 / r3062861;
double r3062907 = r3062905 * r3062906;
double r3062908 = r3062902 + r3062907;
double r3062909 = r3062862 / r3062908;
double r3062910 = r3062896 ? r3062901 : r3062909;
double r3062911 = r3062894 ? r3062875 : r3062910;
double r3062912 = r3062877 ? r3062892 : r3062911;
double r3062913 = r3062859 ? r3062875 : r3062912;
return r3062913;
}
\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 -4.914206833303874 \cdot 10^{+65}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}} - \left(\frac{2}{\sqrt{2}} \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le -1.6072879684005276 \cdot 10^{-180}:\\
\;\;\;\;\frac{\sqrt{\sqrt{2}} \cdot \left(\sqrt{\sqrt{2}} \cdot t\right)}{\sqrt{\left(2 \cdot \ell\right) \cdot \frac{\ell}{x} + \left(t \cdot t\right) \cdot \left(2 + \frac{4}{x}\right)}}\\
\mathbf{elif}\;t \le -1.3823772626115996 \cdot 10^{-305}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}} - \left(\frac{2}{\sqrt{2}} \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right) + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 8.370464796885246 \cdot 10^{+135}:\\
\;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{\left(2 \cdot \ell\right) \cdot \frac{\ell}{x} + \left(t \cdot t\right) \cdot \left(2 + \frac{4}{x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\sqrt{2} \cdot t - \frac{t}{x \cdot x} \cdot \frac{1}{\sqrt{2}}\right) + \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right) \cdot \frac{t}{\sqrt{2}}}\\
\end{array}


Bits error versus x



Bits error versus l



Bits error versus t
if t < -4.914206833303874e+65 or -1.6072879684005276e-180 < t < -1.3823772626115996e-305Initial program 49.8
Taylor expanded around -inf 12.1
Simplified12.1
if -4.914206833303874e+65 < t < -1.6072879684005276e-180Initial program 31.3
Taylor expanded around inf 12.8
Simplified8.3
rmApplied add-sqr-sqrt8.4
Applied associate-*l*8.4
if -1.3823772626115996e-305 < t < 8.370464796885246e+135Initial program 34.4
Taylor expanded around inf 16.8
Simplified12.3
rmApplied add-cube-cbrt12.3
Applied associate-*l*12.3
if 8.370464796885246e+135 < t Initial program 57.2
Taylor expanded around inf 2.4
Simplified2.4
Final simplification9.8
herbie shell --seed 2019102
(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)))))