\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}\;U \le -5.889660218949 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\frac{\ell}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}}\right) - \left(\left(\sqrt[3]{U - U*} \cdot \sqrt[3]{U - U*}\right) \cdot \frac{n}{\frac{Om}{\ell} \cdot \frac{Om}{\ell}}\right) \cdot \sqrt[3]{U - U*}\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U} \cdot \sqrt{\left(2 \cdot n\right) \cdot \mathsf{fma}\left(-2, \frac{\frac{\ell}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}}, \left(\frac{\frac{\ell}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}} \cdot 0 - \frac{\frac{U - U*}{\frac{Om}{\ell}}}{\frac{\frac{Om}{\ell}}{n}}\right) + t\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2234810 = 2.0;
double r2234811 = n;
double r2234812 = r2234810 * r2234811;
double r2234813 = U;
double r2234814 = r2234812 * r2234813;
double r2234815 = t;
double r2234816 = l;
double r2234817 = r2234816 * r2234816;
double r2234818 = Om;
double r2234819 = r2234817 / r2234818;
double r2234820 = r2234810 * r2234819;
double r2234821 = r2234815 - r2234820;
double r2234822 = r2234816 / r2234818;
double r2234823 = pow(r2234822, r2234810);
double r2234824 = r2234811 * r2234823;
double r2234825 = U_;
double r2234826 = r2234813 - r2234825;
double r2234827 = r2234824 * r2234826;
double r2234828 = r2234821 - r2234827;
double r2234829 = r2234814 * r2234828;
double r2234830 = sqrt(r2234829);
return r2234830;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2234831 = U;
double r2234832 = -5.889660218949e-311;
bool r2234833 = r2234831 <= r2234832;
double r2234834 = 2.0;
double r2234835 = n;
double r2234836 = r2234834 * r2234835;
double r2234837 = r2234836 * r2234831;
double r2234838 = t;
double r2234839 = l;
double r2234840 = Om;
double r2234841 = cbrt(r2234840);
double r2234842 = r2234839 / r2234841;
double r2234843 = r2234842 * r2234842;
double r2234844 = r2234843 / r2234841;
double r2234845 = r2234834 * r2234844;
double r2234846 = r2234838 - r2234845;
double r2234847 = U_;
double r2234848 = r2234831 - r2234847;
double r2234849 = cbrt(r2234848);
double r2234850 = r2234849 * r2234849;
double r2234851 = r2234840 / r2234839;
double r2234852 = r2234851 * r2234851;
double r2234853 = r2234835 / r2234852;
double r2234854 = r2234850 * r2234853;
double r2234855 = r2234854 * r2234849;
double r2234856 = r2234846 - r2234855;
double r2234857 = r2234837 * r2234856;
double r2234858 = sqrt(r2234857);
double r2234859 = sqrt(r2234831);
double r2234860 = -2.0;
double r2234861 = 0.0;
double r2234862 = r2234844 * r2234861;
double r2234863 = r2234848 / r2234851;
double r2234864 = r2234851 / r2234835;
double r2234865 = r2234863 / r2234864;
double r2234866 = r2234862 - r2234865;
double r2234867 = r2234866 + r2234838;
double r2234868 = fma(r2234860, r2234844, r2234867);
double r2234869 = r2234836 * r2234868;
double r2234870 = sqrt(r2234869);
double r2234871 = r2234859 * r2234870;
double r2234872 = r2234833 ? r2234858 : r2234871;
return r2234872;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if U < -5.889660218949e-311Initial program 33.4
rmApplied add-cube-cbrt33.5
Applied associate-/r*33.5
Simplified31.5
Taylor expanded around 0 37.2
Simplified31.5
rmApplied add-cube-cbrt31.5
Applied associate-*r*31.5
if -5.889660218949e-311 < U Initial program 32.7
rmApplied add-cube-cbrt32.8
Applied associate-/r*32.8
Simplified30.6
Taylor expanded around 0 36.1
Simplified30.5
rmApplied add-sqr-sqrt46.2
Applied prod-diff46.2
Applied associate--l+46.2
Applied distribute-lft-in46.2
Simplified31.3
Simplified30.4
rmApplied distribute-lft-out30.4
Applied sqrt-prod23.5
Simplified23.5
Final simplification27.5
herbie shell --seed 2019168 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))