\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 r193168 = 2.0;
double r193169 = n;
double r193170 = r193168 * r193169;
double r193171 = U;
double r193172 = r193170 * r193171;
double r193173 = t;
double r193174 = l;
double r193175 = r193174 * r193174;
double r193176 = Om;
double r193177 = r193175 / r193176;
double r193178 = r193168 * r193177;
double r193179 = r193173 - r193178;
double r193180 = r193174 / r193176;
double r193181 = pow(r193180, r193168);
double r193182 = r193169 * r193181;
double r193183 = U_;
double r193184 = r193171 - r193183;
double r193185 = r193182 * r193184;
double r193186 = r193179 - r193185;
double r193187 = r193172 * r193186;
double r193188 = sqrt(r193187);
return r193188;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r193189 = t;
double r193190 = 5.921596680002773e-305;
bool r193191 = r193189 <= r193190;
double r193192 = 1.070028174441902e-172;
bool r193193 = r193189 <= r193192;
double r193194 = 2.7244659562007136e+192;
bool r193195 = r193189 <= r193194;
double r193196 = !r193195;
bool r193197 = r193193 || r193196;
double r193198 = !r193197;
bool r193199 = r193191 || r193198;
double r193200 = 2.0;
double r193201 = n;
double r193202 = r193200 * r193201;
double r193203 = U;
double r193204 = l;
double r193205 = Om;
double r193206 = r193204 / r193205;
double r193207 = r193204 * r193206;
double r193208 = r193200 * r193207;
double r193209 = r193189 - r193208;
double r193210 = pow(r193206, r193200);
double r193211 = r193201 * r193210;
double r193212 = U_;
double r193213 = r193203 - r193212;
double r193214 = r193211 * r193213;
double r193215 = r193209 - r193214;
double r193216 = r193203 * r193215;
double r193217 = r193202 * r193216;
double r193218 = sqrt(r193217);
double r193219 = r193202 * r193203;
double r193220 = sqrt(r193219);
double r193221 = r193205 / r193204;
double r193222 = r193204 / r193221;
double r193223 = r193200 * r193222;
double r193224 = r193189 - r193223;
double r193225 = r193224 - r193214;
double r193226 = sqrt(r193225);
double r193227 = r193220 * r193226;
double r193228 = r193199 ? r193218 : r193227;
return r193228;
}



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*))))))