\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 \frac{\ell}{\frac{Om}{\ell}}\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 r193039 = 2.0;
double r193040 = n;
double r193041 = r193039 * r193040;
double r193042 = U;
double r193043 = r193041 * r193042;
double r193044 = t;
double r193045 = l;
double r193046 = r193045 * r193045;
double r193047 = Om;
double r193048 = r193046 / r193047;
double r193049 = r193039 * r193048;
double r193050 = r193044 - r193049;
double r193051 = r193045 / r193047;
double r193052 = pow(r193051, r193039);
double r193053 = r193040 * r193052;
double r193054 = U_;
double r193055 = r193042 - r193054;
double r193056 = r193053 * r193055;
double r193057 = r193050 - r193056;
double r193058 = r193043 * r193057;
double r193059 = sqrt(r193058);
return r193059;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r193060 = t;
double r193061 = 5.921596680002773e-305;
bool r193062 = r193060 <= r193061;
double r193063 = 1.070028174441902e-172;
bool r193064 = r193060 <= r193063;
double r193065 = 2.7244659562007136e+192;
bool r193066 = r193060 <= r193065;
double r193067 = !r193066;
bool r193068 = r193064 || r193067;
double r193069 = !r193068;
bool r193070 = r193062 || r193069;
double r193071 = 2.0;
double r193072 = n;
double r193073 = r193071 * r193072;
double r193074 = U;
double r193075 = l;
double r193076 = Om;
double r193077 = r193076 / r193075;
double r193078 = r193075 / r193077;
double r193079 = r193071 * r193078;
double r193080 = r193060 - r193079;
double r193081 = r193075 / r193076;
double r193082 = pow(r193081, r193071);
double r193083 = r193072 * r193082;
double r193084 = U_;
double r193085 = r193074 - r193084;
double r193086 = r193083 * r193085;
double r193087 = r193080 - r193086;
double r193088 = r193074 * r193087;
double r193089 = r193073 * r193088;
double r193090 = sqrt(r193089);
double r193091 = r193073 * r193074;
double r193092 = sqrt(r193091);
double r193093 = sqrt(r193087);
double r193094 = r193092 * r193093;
double r193095 = r193070 ? r193090 : r193094;
return r193095;
}



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 associate-/l*31.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*))))))