\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 -2.0815983574246957 \cdot 10^{-139}:\\
\;\;\;\;\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 -6.0596639631783474 \cdot 10^{-291}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(t - \left(2 \cdot \frac{\ell}{\frac{Om}{\ell}} + \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\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 r172144 = 2.0;
double r172145 = n;
double r172146 = r172144 * r172145;
double r172147 = U;
double r172148 = r172146 * r172147;
double r172149 = t;
double r172150 = l;
double r172151 = r172150 * r172150;
double r172152 = Om;
double r172153 = r172151 / r172152;
double r172154 = r172144 * r172153;
double r172155 = r172149 - r172154;
double r172156 = r172150 / r172152;
double r172157 = pow(r172156, r172144);
double r172158 = r172145 * r172157;
double r172159 = U_;
double r172160 = r172147 - r172159;
double r172161 = r172158 * r172160;
double r172162 = r172155 - r172161;
double r172163 = r172148 * r172162;
double r172164 = sqrt(r172163);
return r172164;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r172165 = n;
double r172166 = -2.0815983574246957e-139;
bool r172167 = r172165 <= r172166;
double r172168 = 2.0;
double r172169 = r172168 * r172165;
double r172170 = U;
double r172171 = r172169 * r172170;
double r172172 = t;
double r172173 = l;
double r172174 = Om;
double r172175 = r172174 / r172173;
double r172176 = r172173 / r172175;
double r172177 = r172168 * r172176;
double r172178 = r172172 - r172177;
double r172179 = r172173 / r172174;
double r172180 = 2.0;
double r172181 = r172168 / r172180;
double r172182 = pow(r172179, r172181);
double r172183 = r172165 * r172182;
double r172184 = U_;
double r172185 = r172170 - r172184;
double r172186 = r172182 * r172185;
double r172187 = r172183 * r172186;
double r172188 = r172178 - r172187;
double r172189 = r172171 * r172188;
double r172190 = sqrt(r172189);
double r172191 = -6.0596639631783474e-291;
bool r172192 = r172165 <= r172191;
double r172193 = r172180 * r172181;
double r172194 = pow(r172179, r172193);
double r172195 = r172165 * r172194;
double r172196 = r172195 * r172185;
double r172197 = r172177 + r172196;
double r172198 = r172172 - r172197;
double r172199 = r172170 * r172198;
double r172200 = r172169 * r172199;
double r172201 = sqrt(r172200);
double r172202 = 1.1504183261425661e-17;
bool r172203 = r172165 <= r172202;
double r172204 = 5.849773459839704e+38;
bool r172205 = r172165 <= r172204;
double r172206 = !r172205;
bool r172207 = r172203 || r172206;
double r172208 = sqrt(r172171);
double r172209 = r172185 * r172194;
double r172210 = r172209 * r172165;
double r172211 = r172178 - r172210;
double r172212 = sqrt(r172211);
double r172213 = r172208 * r172212;
double r172214 = r172207 ? r172190 : r172213;
double r172215 = r172192 ? r172201 : r172214;
double r172216 = r172167 ? r172190 : r172215;
return r172216;
}



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 < -2.0815983574246957e-139 or -6.0596639631783474e-291 < n < 1.1504183261425661e-17 or 5.849773459839704e+38 < n Initial program 34.4
rmApplied associate-/l*31.9
rmApplied sqr-pow31.9
Applied associate-*r*31.0
rmApplied associate-*l*30.6
if -2.0815983574246957e-139 < n < -6.0596639631783474e-291Initial program 38.3
rmApplied associate-/l*34.9
rmApplied sqr-pow34.9
Applied associate-*r*33.8
rmApplied associate-*l*30.5
Simplified32.5
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 simplification31.2
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*))))))