\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 8.24235475462790745 \cdot 10^{-304}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(\left(n \cdot {\left(\frac{\ell}{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)} \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(\left(n \cdot {\left(\frac{\ell}{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) \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(\left(n \cdot {\left(\frac{\ell}{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}\;U \le 7.0020822487454102 \cdot 10^{119}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell \cdot \ell}{Om} - \left(-n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r177899 = 2.0;
double r177900 = n;
double r177901 = r177899 * r177900;
double r177902 = U;
double r177903 = r177901 * r177902;
double r177904 = t;
double r177905 = l;
double r177906 = r177905 * r177905;
double r177907 = Om;
double r177908 = r177906 / r177907;
double r177909 = r177899 * r177908;
double r177910 = r177904 - r177909;
double r177911 = r177905 / r177907;
double r177912 = pow(r177911, r177899);
double r177913 = r177900 * r177912;
double r177914 = U_;
double r177915 = r177902 - r177914;
double r177916 = r177913 * r177915;
double r177917 = r177910 - r177916;
double r177918 = r177903 * r177917;
double r177919 = sqrt(r177918);
return r177919;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r177920 = U;
double r177921 = 8.242354754627907e-304;
bool r177922 = r177920 <= r177921;
double r177923 = 2.0;
double r177924 = n;
double r177925 = r177923 * r177924;
double r177926 = r177925 * r177920;
double r177927 = t;
double r177928 = l;
double r177929 = r177928 * r177928;
double r177930 = Om;
double r177931 = r177929 / r177930;
double r177932 = r177923 * r177931;
double r177933 = r177927 - r177932;
double r177934 = r177928 / r177930;
double r177935 = 2.0;
double r177936 = r177923 / r177935;
double r177937 = pow(r177934, r177936);
double r177938 = r177924 * r177937;
double r177939 = r177938 * r177937;
double r177940 = U_;
double r177941 = r177920 - r177940;
double r177942 = r177939 * r177941;
double r177943 = r177933 - r177942;
double r177944 = r177926 * r177943;
double r177945 = cbrt(r177944);
double r177946 = r177945 * r177945;
double r177947 = r177946 * r177945;
double r177948 = sqrt(r177947);
double r177949 = 7.00208224874541e+119;
bool r177950 = r177920 <= r177949;
double r177951 = r177937 * r177941;
double r177952 = r177938 * r177951;
double r177953 = r177933 - r177952;
double r177954 = r177920 * r177953;
double r177955 = r177925 * r177954;
double r177956 = sqrt(r177955);
double r177957 = r177935 * r177936;
double r177958 = pow(r177934, r177957);
double r177959 = r177924 * r177958;
double r177960 = -r177959;
double r177961 = r177960 * r177941;
double r177962 = r177932 - r177961;
double r177963 = r177927 - r177962;
double r177964 = r177925 * r177963;
double r177965 = r177964 * r177920;
double r177966 = 1.0;
double r177967 = pow(r177965, r177966);
double r177968 = sqrt(r177967);
double r177969 = r177950 ? r177956 : r177968;
double r177970 = r177922 ? r177948 : r177969;
return r177970;
}



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 < 8.242354754627907e-304Initial program 34.8
rmApplied sqr-pow34.8
Applied associate-*r*34.1
rmApplied add-cube-cbrt34.4
if 8.242354754627907e-304 < U < 7.00208224874541e+119Initial program 36.0
rmApplied sqr-pow36.0
Applied associate-*r*35.0
rmApplied associate-*l*34.8
rmApplied associate-*l*32.5
if 7.00208224874541e+119 < U Initial program 30.2
rmApplied sqr-pow30.2
Applied associate-*r*30.1
rmApplied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Simplified33.5
Final simplification33.6
herbie shell --seed 2020062
(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*))))))