\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 -5.85228649109029279 \cdot 10^{-126}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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}\;n \le 5.7542881375349792 \cdot 10^{-186}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(2 \cdot n\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;n \le 1.1504183261425661 \cdot 10^{-17} \lor \neg \left(n \le 5.84977345983970428 \cdot 10^{38}\right):\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot n}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r171951 = 2.0;
double r171952 = n;
double r171953 = r171951 * r171952;
double r171954 = U;
double r171955 = r171953 * r171954;
double r171956 = t;
double r171957 = l;
double r171958 = r171957 * r171957;
double r171959 = Om;
double r171960 = r171958 / r171959;
double r171961 = r171951 * r171960;
double r171962 = r171956 - r171961;
double r171963 = r171957 / r171959;
double r171964 = pow(r171963, r171951);
double r171965 = r171952 * r171964;
double r171966 = U_;
double r171967 = r171954 - r171966;
double r171968 = r171965 * r171967;
double r171969 = r171962 - r171968;
double r171970 = r171955 * r171969;
double r171971 = sqrt(r171970);
return r171971;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r171972 = n;
double r171973 = -5.852286491090293e-126;
bool r171974 = r171972 <= r171973;
double r171975 = 2.0;
double r171976 = r171975 * r171972;
double r171977 = U;
double r171978 = r171976 * r171977;
double r171979 = t;
double r171980 = l;
double r171981 = Om;
double r171982 = r171981 / r171980;
double r171983 = r171980 / r171982;
double r171984 = r171975 * r171983;
double r171985 = r171979 - r171984;
double r171986 = r171980 / r171981;
double r171987 = 2.0;
double r171988 = r171975 / r171987;
double r171989 = pow(r171986, r171988);
double r171990 = r171972 * r171989;
double r171991 = U_;
double r171992 = r171977 - r171991;
double r171993 = r171989 * r171992;
double r171994 = r171990 * r171993;
double r171995 = r171985 - r171994;
double r171996 = r171978 * r171995;
double r171997 = sqrt(r171996);
double r171998 = 5.754288137534979e-186;
bool r171999 = r171972 <= r171998;
double r172000 = pow(r171986, r171975);
double r172001 = r171972 * r172000;
double r172002 = r172001 * r171992;
double r172003 = r171985 - r172002;
double r172004 = r171976 * r172003;
double r172005 = r171977 * r172004;
double r172006 = sqrt(r172005);
double r172007 = 1.1504183261425661e-17;
bool r172008 = r171972 <= r172007;
double r172009 = 5.849773459839704e+38;
bool r172010 = r171972 <= r172009;
double r172011 = !r172010;
bool r172012 = r172008 || r172011;
double r172013 = sqrt(r171978);
double r172014 = r171987 * r171988;
double r172015 = pow(r171986, r172014);
double r172016 = r171992 * r172015;
double r172017 = r172016 * r171972;
double r172018 = r171985 - r172017;
double r172019 = sqrt(r172018);
double r172020 = r172013 * r172019;
double r172021 = r172012 ? r171997 : r172020;
double r172022 = r171999 ? r172006 : r172021;
double r172023 = r171974 ? r171997 : r172022;
return r172023;
}



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 < -5.852286491090293e-126 or 5.754288137534979e-186 < n < 1.1504183261425661e-17 or 5.849773459839704e+38 < n Initial program 33.0
rmApplied associate-/l*30.4
rmApplied sqr-pow30.4
Applied associate-*r*29.6
rmApplied associate-*l*28.7
if -5.852286491090293e-126 < n < 5.754288137534979e-186Initial program 39.0
rmApplied associate-/l*36.2
rmApplied pow136.2
Applied pow136.2
Applied pow136.2
Applied pow136.2
Applied pow-prod-down36.2
Applied pow-prod-down36.2
Applied pow-prod-down36.2
Simplified31.3
if 1.1504183261425661e-17 < n < 5.849773459839704e+38Initial program 32.5
rmApplied associate-/l*28.0
rmApplied sqr-pow28.0
Applied associate-*r*27.9
rmApplied associate-*l*26.6
rmApplied sqrt-prod37.1
Simplified38.1
Final simplification30.0
herbie shell --seed 2020047 +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*))))))