\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}\;t \le 6.0567111237886108 \cdot 10^{-140}:\\
\;\;\;\;\sqrt{\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(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)}} \cdot \sqrt{\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(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)}}\\
\mathbf{elif}\;t \le 1.59180529795114251 \cdot 10^{187}:\\
\;\;\;\;\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{else}:\\
\;\;\;\;\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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r170782 = 2.0;
double r170783 = n;
double r170784 = r170782 * r170783;
double r170785 = U;
double r170786 = r170784 * r170785;
double r170787 = t;
double r170788 = l;
double r170789 = r170788 * r170788;
double r170790 = Om;
double r170791 = r170789 / r170790;
double r170792 = r170782 * r170791;
double r170793 = r170787 - r170792;
double r170794 = r170788 / r170790;
double r170795 = pow(r170794, r170782);
double r170796 = r170783 * r170795;
double r170797 = U_;
double r170798 = r170785 - r170797;
double r170799 = r170796 * r170798;
double r170800 = r170793 - r170799;
double r170801 = r170786 * r170800;
double r170802 = sqrt(r170801);
return r170802;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r170803 = t;
double r170804 = 6.056711123788611e-140;
bool r170805 = r170803 <= r170804;
double r170806 = 2.0;
double r170807 = n;
double r170808 = r170806 * r170807;
double r170809 = U;
double r170810 = r170808 * r170809;
double r170811 = l;
double r170812 = Om;
double r170813 = r170811 / r170812;
double r170814 = r170811 * r170813;
double r170815 = r170806 * r170814;
double r170816 = r170803 - r170815;
double r170817 = 2.0;
double r170818 = r170806 / r170817;
double r170819 = pow(r170813, r170818);
double r170820 = r170807 * r170819;
double r170821 = U_;
double r170822 = r170809 - r170821;
double r170823 = r170819 * r170822;
double r170824 = r170820 * r170823;
double r170825 = r170816 - r170824;
double r170826 = r170810 * r170825;
double r170827 = sqrt(r170826);
double r170828 = sqrt(r170827);
double r170829 = r170828 * r170828;
double r170830 = 1.5918052979511425e+187;
bool r170831 = r170803 <= r170830;
double r170832 = -r170822;
double r170833 = r170817 * r170818;
double r170834 = pow(r170813, r170833);
double r170835 = r170807 * r170834;
double r170836 = r170832 * r170835;
double r170837 = r170815 - r170836;
double r170838 = r170803 - r170837;
double r170839 = r170808 * r170838;
double r170840 = r170839 * r170809;
double r170841 = 1.0;
double r170842 = pow(r170840, r170841);
double r170843 = sqrt(r170842);
double r170844 = sqrt(r170810);
double r170845 = sqrt(r170825);
double r170846 = r170844 * r170845;
double r170847 = r170831 ? r170843 : r170846;
double r170848 = r170805 ? r170829 : r170847;
return r170848;
}



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 t < 6.056711123788611e-140Initial program 35.3
rmApplied *-un-lft-identity35.3
Applied times-frac32.9
Simplified32.9
rmApplied sqr-pow32.9
Applied associate-*r*32.0
rmApplied associate-*l*31.6
rmApplied add-sqr-sqrt31.7
if 6.056711123788611e-140 < t < 1.5918052979511425e+187Initial program 31.9
rmApplied *-un-lft-identity31.9
Applied times-frac29.1
Simplified29.1
rmApplied sqr-pow29.1
Applied associate-*r*28.4
rmApplied pow128.4
Applied pow128.4
Applied pow128.4
Applied pow128.4
Applied pow-prod-down28.4
Applied pow-prod-down28.4
Applied pow-prod-down28.4
Simplified28.7
if 1.5918052979511425e+187 < t Initial program 38.9
rmApplied *-un-lft-identity38.9
Applied times-frac35.9
Simplified35.9
rmApplied sqr-pow35.9
Applied associate-*r*35.2
rmApplied associate-*l*35.7
rmApplied sqrt-prod23.2
Final simplification30.1
herbie shell --seed 2020025 +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*))))))