\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.1135263195832389 \cdot 10^{48}:\\
\;\;\;\;\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 -7.40273667700519053 \cdot 10^{-119}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \left(\left({\left(\sqrt[3]{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{4} \cdot \frac{{\left(\sqrt[3]{\sqrt[3]{\ell}}\right)}^{4}}{\sqrt[3]{x}}\right) \cdot \frac{\left|\sqrt[3]{\ell}\right|}{\sqrt[3]{x}}\right) \cdot \frac{\sqrt{{\left(\sqrt[3]{\ell}\right)}^{2}}}{\sqrt[3]{x}}\right)}}\\
\mathbf{elif}\;t \le -6.9713348016436594 \cdot 10^{-265}:\\
\;\;\;\;\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.62316094137459942 \cdot 10^{76}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + 2 \cdot \left({t}^{2} + \left(\left({\left(\sqrt[3]{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}\right)}^{4} \cdot \frac{{\left(\sqrt[3]{\sqrt[3]{\ell}}\right)}^{4}}{\sqrt[3]{x}}\right) \cdot \frac{\left|\sqrt[3]{\ell}\right|}{\sqrt[3]{x}}\right) \cdot \frac{\sqrt{{\left(\sqrt[3]{\ell}\right)}^{2}}}{\sqrt[3]{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 r40795 = 2.0;
double r40796 = sqrt(r40795);
double r40797 = t;
double r40798 = r40796 * r40797;
double r40799 = x;
double r40800 = 1.0;
double r40801 = r40799 + r40800;
double r40802 = r40799 - r40800;
double r40803 = r40801 / r40802;
double r40804 = l;
double r40805 = r40804 * r40804;
double r40806 = r40797 * r40797;
double r40807 = r40795 * r40806;
double r40808 = r40805 + r40807;
double r40809 = r40803 * r40808;
double r40810 = r40809 - r40805;
double r40811 = sqrt(r40810);
double r40812 = r40798 / r40811;
return r40812;
}
double f(double x, double l, double t) {
double r40813 = t;
double r40814 = -6.113526319583239e+48;
bool r40815 = r40813 <= r40814;
double r40816 = 2.0;
double r40817 = sqrt(r40816);
double r40818 = r40817 * r40813;
double r40819 = 3.0;
double r40820 = pow(r40817, r40819);
double r40821 = x;
double r40822 = 2.0;
double r40823 = pow(r40821, r40822);
double r40824 = r40820 * r40823;
double r40825 = r40813 / r40824;
double r40826 = r40817 * r40823;
double r40827 = r40813 / r40826;
double r40828 = r40825 - r40827;
double r40829 = r40816 * r40828;
double r40830 = r40829 - r40818;
double r40831 = r40817 * r40821;
double r40832 = r40813 / r40831;
double r40833 = r40816 * r40832;
double r40834 = r40830 - r40833;
double r40835 = r40818 / r40834;
double r40836 = -7.40273667700519e-119;
bool r40837 = r40813 <= r40836;
double r40838 = 4.0;
double r40839 = pow(r40813, r40822);
double r40840 = r40839 / r40821;
double r40841 = r40838 * r40840;
double r40842 = l;
double r40843 = cbrt(r40842);
double r40844 = r40843 * r40843;
double r40845 = cbrt(r40844);
double r40846 = 4.0;
double r40847 = pow(r40845, r40846);
double r40848 = cbrt(r40843);
double r40849 = pow(r40848, r40846);
double r40850 = cbrt(r40821);
double r40851 = r40849 / r40850;
double r40852 = r40847 * r40851;
double r40853 = fabs(r40843);
double r40854 = r40853 / r40850;
double r40855 = r40852 * r40854;
double r40856 = pow(r40843, r40822);
double r40857 = sqrt(r40856);
double r40858 = r40857 / r40850;
double r40859 = r40855 * r40858;
double r40860 = r40839 + r40859;
double r40861 = r40816 * r40860;
double r40862 = r40841 + r40861;
double r40863 = sqrt(r40862);
double r40864 = r40818 / r40863;
double r40865 = -6.971334801643659e-265;
bool r40866 = r40813 <= r40865;
double r40867 = 5.6231609413745994e+76;
bool r40868 = r40813 <= r40867;
double r40869 = r40813 * r40817;
double r40870 = r40833 + r40869;
double r40871 = r40816 * r40825;
double r40872 = r40870 - r40871;
double r40873 = r40818 / r40872;
double r40874 = r40868 ? r40864 : r40873;
double r40875 = r40866 ? r40835 : r40874;
double r40876 = r40837 ? r40864 : r40875;
double r40877 = r40815 ? r40835 : r40876;
return r40877;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -6.113526319583239e+48 or -7.40273667700519e-119 < t < -6.971334801643659e-265Initial program 46.3
Taylor expanded around -inf 11.9
Simplified11.9
if -6.113526319583239e+48 < t < -7.40273667700519e-119 or -6.971334801643659e-265 < t < 5.6231609413745994e+76Initial program 37.5
Taylor expanded around inf 16.5
Simplified16.5
rmApplied *-un-lft-identity16.5
Applied add-cube-cbrt16.7
Applied unpow-prod-down16.7
Applied times-frac13.5
Simplified13.5
rmApplied add-cube-cbrt13.5
Applied add-sqr-sqrt13.5
Applied times-frac13.5
Applied associate-*r*13.5
Simplified13.5
rmApplied *-un-lft-identity13.5
Applied cbrt-prod13.5
Applied add-cube-cbrt13.5
Applied cbrt-prod13.6
Applied unpow-prod-down13.6
Applied times-frac12.6
Simplified12.6
if 5.6231609413745994e+76 < t Initial program 48.2
Taylor expanded around inf 47.5
Simplified47.5
rmApplied *-un-lft-identity47.5
Applied add-cube-cbrt47.5
Applied unpow-prod-down47.5
Applied times-frac45.6
Simplified45.6
Taylor expanded around inf 3.3
Final simplification10.3
herbie shell --seed 2020046
(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)))))