\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 -2.114224803780803152112988099314339537127 \cdot 10^{236}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\mathbf{elif}\;U \le -7.638811639703731559583677689261818385942 \cdot 10^{118}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)}\\
\mathbf{elif}\;U \le 5.229645265662096398356922908768720692902 \cdot 10^{64}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\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(\sqrt[3]{n} \cdot \sqrt[3]{n}\right) \cdot \left(\sqrt[3]{n} \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r171778 = 2.0;
double r171779 = n;
double r171780 = r171778 * r171779;
double r171781 = U;
double r171782 = r171780 * r171781;
double r171783 = t;
double r171784 = l;
double r171785 = r171784 * r171784;
double r171786 = Om;
double r171787 = r171785 / r171786;
double r171788 = r171778 * r171787;
double r171789 = r171783 - r171788;
double r171790 = r171784 / r171786;
double r171791 = pow(r171790, r171778);
double r171792 = r171779 * r171791;
double r171793 = U_;
double r171794 = r171781 - r171793;
double r171795 = r171792 * r171794;
double r171796 = r171789 - r171795;
double r171797 = r171782 * r171796;
double r171798 = sqrt(r171797);
return r171798;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r171799 = U;
double r171800 = -2.114224803780803e+236;
bool r171801 = r171799 <= r171800;
double r171802 = 2.0;
double r171803 = n;
double r171804 = r171802 * r171803;
double r171805 = t;
double r171806 = l;
double r171807 = Om;
double r171808 = r171806 / r171807;
double r171809 = r171806 * r171808;
double r171810 = r171802 * r171809;
double r171811 = U_;
double r171812 = r171799 - r171811;
double r171813 = -r171812;
double r171814 = 2.0;
double r171815 = r171802 / r171814;
double r171816 = r171814 * r171815;
double r171817 = pow(r171808, r171816);
double r171818 = r171803 * r171817;
double r171819 = r171813 * r171818;
double r171820 = r171810 - r171819;
double r171821 = r171805 - r171820;
double r171822 = r171804 * r171821;
double r171823 = r171822 * r171799;
double r171824 = 1.0;
double r171825 = pow(r171823, r171824);
double r171826 = sqrt(r171825);
double r171827 = -7.638811639703732e+118;
bool r171828 = r171799 <= r171827;
double r171829 = r171804 * r171799;
double r171830 = sqrt(r171829);
double r171831 = r171805 - r171810;
double r171832 = pow(r171808, r171815);
double r171833 = r171803 * r171832;
double r171834 = r171832 * r171812;
double r171835 = r171833 * r171834;
double r171836 = r171831 - r171835;
double r171837 = sqrt(r171836);
double r171838 = r171830 * r171837;
double r171839 = 5.2296452656620964e+64;
bool r171840 = r171799 <= r171839;
double r171841 = r171799 * r171836;
double r171842 = r171804 * r171841;
double r171843 = sqrt(r171842);
double r171844 = cbrt(r171803);
double r171845 = r171844 * r171844;
double r171846 = r171844 * r171832;
double r171847 = r171845 * r171846;
double r171848 = r171847 * r171834;
double r171849 = r171831 - r171848;
double r171850 = r171829 * r171849;
double r171851 = sqrt(r171850);
double r171852 = r171840 ? r171843 : r171851;
double r171853 = r171828 ? r171838 : r171852;
double r171854 = r171801 ? r171826 : r171853;
return r171854;
}



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 U < -2.114224803780803e+236Initial program 31.2
rmApplied *-un-lft-identity31.2
Applied times-frac28.7
Simplified28.7
rmApplied sqr-pow28.7
Applied associate-*r*28.7
rmApplied pow128.7
Applied pow128.7
Applied pow128.7
Applied pow128.7
Applied pow-prod-down28.7
Applied pow-prod-down28.7
Applied pow-prod-down28.7
Simplified31.3
if -2.114224803780803e+236 < U < -7.638811639703732e+118Initial program 28.3
rmApplied *-un-lft-identity28.3
Applied times-frac25.3
Simplified25.3
rmApplied sqr-pow25.3
Applied associate-*r*25.0
rmApplied associate-*l*25.6
rmApplied sqrt-prod38.5
if -7.638811639703732e+118 < U < 5.2296452656620964e+64Initial program 35.8
rmApplied *-un-lft-identity35.8
Applied times-frac33.2
Simplified33.2
rmApplied sqr-pow33.2
Applied associate-*r*32.2
rmApplied associate-*l*31.7
rmApplied associate-*l*28.9
if 5.2296452656620964e+64 < U Initial program 29.9
rmApplied *-un-lft-identity29.9
Applied times-frac27.7
Simplified27.7
rmApplied sqr-pow27.7
Applied associate-*r*27.2
rmApplied associate-*l*27.8
rmApplied add-cube-cbrt27.8
Applied associate-*l*27.8
Final simplification29.5
herbie shell --seed 2019352 +o rules:numerics
(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*))))))