\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 5.921596680002772760806493524139888367658 \cdot 10^{-305} \lor \neg \left(t \le 1.070028174441901986804731946878056420476 \cdot 10^{-172} \lor \neg \left(t \le 2.724465956200713647886827411142398031389 \cdot 10^{192}\right)\right):\\
\;\;\;\;\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)}^{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(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r161173 = 2.0;
double r161174 = n;
double r161175 = r161173 * r161174;
double r161176 = U;
double r161177 = r161175 * r161176;
double r161178 = t;
double r161179 = l;
double r161180 = r161179 * r161179;
double r161181 = Om;
double r161182 = r161180 / r161181;
double r161183 = r161173 * r161182;
double r161184 = r161178 - r161183;
double r161185 = r161179 / r161181;
double r161186 = pow(r161185, r161173);
double r161187 = r161174 * r161186;
double r161188 = U_;
double r161189 = r161176 - r161188;
double r161190 = r161187 * r161189;
double r161191 = r161184 - r161190;
double r161192 = r161177 * r161191;
double r161193 = sqrt(r161192);
return r161193;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r161194 = t;
double r161195 = 5.921596680002773e-305;
bool r161196 = r161194 <= r161195;
double r161197 = 1.070028174441902e-172;
bool r161198 = r161194 <= r161197;
double r161199 = 2.7244659562007136e+192;
bool r161200 = r161194 <= r161199;
double r161201 = !r161200;
bool r161202 = r161198 || r161201;
double r161203 = !r161202;
bool r161204 = r161196 || r161203;
double r161205 = 2.0;
double r161206 = n;
double r161207 = r161205 * r161206;
double r161208 = U;
double r161209 = l;
double r161210 = Om;
double r161211 = r161209 / r161210;
double r161212 = r161209 * r161211;
double r161213 = r161205 * r161212;
double r161214 = r161194 - r161213;
double r161215 = pow(r161211, r161205);
double r161216 = r161206 * r161215;
double r161217 = U_;
double r161218 = r161208 - r161217;
double r161219 = r161216 * r161218;
double r161220 = r161214 - r161219;
double r161221 = r161208 * r161220;
double r161222 = r161207 * r161221;
double r161223 = sqrt(r161222);
double r161224 = r161207 * r161208;
double r161225 = sqrt(r161224);
double r161226 = r161210 / r161209;
double r161227 = r161209 / r161226;
double r161228 = r161205 * r161227;
double r161229 = r161194 - r161228;
double r161230 = r161229 - r161219;
double r161231 = sqrt(r161230);
double r161232 = r161225 * r161231;
double r161233 = r161204 ? r161223 : r161232;
return r161233;
}



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 < 5.921596680002773e-305 or 1.070028174441902e-172 < t < 2.7244659562007136e+192Initial program 33.9
rmApplied *-un-lft-identity33.9
Applied times-frac31.2
Simplified31.2
rmApplied associate-*l*31.1
if 5.921596680002773e-305 < t < 1.070028174441902e-172 or 2.7244659562007136e+192 < t Initial program 37.9
rmApplied associate-/l*34.5
rmApplied sqrt-prod28.0
Final simplification30.5
herbie shell --seed 2019353 +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*))))))