\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\begin{array}{l}
\mathbf{if}\;n \le -2.500080883402384 \cdot 10^{-158}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;n \le 1.2760462906237903 \cdot 10^{-247}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{elif}\;n \le 2.1783139283433974 \cdot 10^{-130} \lor \neg \left(n \le 5.912036692986568 \cdot 10^{-67}\right):\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r221836 = 2.0;
double r221837 = n;
double r221838 = r221836 * r221837;
double r221839 = U;
double r221840 = r221838 * r221839;
double r221841 = t;
double r221842 = l;
double r221843 = r221842 * r221842;
double r221844 = Om;
double r221845 = r221843 / r221844;
double r221846 = r221836 * r221845;
double r221847 = r221841 - r221846;
double r221848 = r221842 / r221844;
double r221849 = pow(r221848, r221836);
double r221850 = r221837 * r221849;
double r221851 = U_;
double r221852 = r221839 - r221851;
double r221853 = r221850 * r221852;
double r221854 = r221847 - r221853;
double r221855 = r221840 * r221854;
double r221856 = sqrt(r221855);
return r221856;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r221857 = n;
double r221858 = -2.5000808834023845e-158;
bool r221859 = r221857 <= r221858;
double r221860 = 2.0;
double r221861 = r221860 * r221857;
double r221862 = U;
double r221863 = t;
double r221864 = l;
double r221865 = Om;
double r221866 = r221864 / r221865;
double r221867 = r221864 * r221866;
double r221868 = r221860 * r221867;
double r221869 = r221863 - r221868;
double r221870 = 1.0;
double r221871 = cbrt(r221865);
double r221872 = r221871 * r221871;
double r221873 = r221870 / r221872;
double r221874 = 2.0;
double r221875 = r221860 / r221874;
double r221876 = pow(r221873, r221875);
double r221877 = r221857 * r221876;
double r221878 = r221864 / r221871;
double r221879 = pow(r221878, r221875);
double r221880 = r221877 * r221879;
double r221881 = pow(r221866, r221875);
double r221882 = r221880 * r221881;
double r221883 = U_;
double r221884 = r221862 - r221883;
double r221885 = r221882 * r221884;
double r221886 = r221869 - r221885;
double r221887 = r221862 * r221886;
double r221888 = r221861 * r221887;
double r221889 = sqrt(r221888);
double r221890 = 1.2760462906237903e-247;
bool r221891 = r221857 <= r221890;
double r221892 = r221861 * r221862;
double r221893 = r221892 * r221886;
double r221894 = sqrt(r221893);
double r221895 = 2.1783139283433974e-130;
bool r221896 = r221857 <= r221895;
double r221897 = 5.912036692986568e-67;
bool r221898 = r221857 <= r221897;
double r221899 = !r221898;
bool r221900 = r221896 || r221899;
double r221901 = sqrt(r221892);
double r221902 = sqrt(r221886);
double r221903 = r221901 * r221902;
double r221904 = r221900 ? r221889 : r221903;
double r221905 = r221891 ? r221894 : r221904;
double r221906 = r221859 ? r221889 : r221905;
return r221906;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
Results
if n < -2.5000808834023845e-158 or 1.2760462906237903e-247 < n < 2.1783139283433974e-130 or 5.912036692986568e-67 < n Initial program 33.0
rmApplied *-un-lft-identity33.0
Applied times-frac30.4
Simplified30.4
rmApplied sqr-pow30.4
Applied associate-*r*29.4
rmApplied add-cube-cbrt29.5
Applied *-un-lft-identity29.5
Applied times-frac29.5
Applied unpow-prod-down29.5
Applied associate-*r*30.0
rmApplied associate-*l*30.5
if -2.5000808834023845e-158 < n < 1.2760462906237903e-247Initial program 39.2
rmApplied *-un-lft-identity39.2
Applied times-frac36.6
Simplified36.6
rmApplied sqr-pow36.6
Applied associate-*r*35.8
rmApplied add-cube-cbrt35.9
Applied *-un-lft-identity35.9
Applied times-frac35.9
Applied unpow-prod-down35.9
Applied associate-*r*35.9
if 2.1783139283433974e-130 < n < 5.912036692986568e-67Initial program 31.8
rmApplied *-un-lft-identity31.8
Applied times-frac29.3
Simplified29.3
rmApplied sqr-pow29.3
Applied associate-*r*29.0
rmApplied add-cube-cbrt29.0
Applied *-un-lft-identity29.0
Applied times-frac29.0
Applied unpow-prod-down29.0
Applied associate-*r*29.0
rmApplied sqrt-prod41.6
Final simplification32.3
herbie shell --seed 2020045
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
:precision binary64
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))