\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 r199312 = 2.0;
double r199313 = n;
double r199314 = r199312 * r199313;
double r199315 = U;
double r199316 = r199314 * r199315;
double r199317 = t;
double r199318 = l;
double r199319 = r199318 * r199318;
double r199320 = Om;
double r199321 = r199319 / r199320;
double r199322 = r199312 * r199321;
double r199323 = r199317 - r199322;
double r199324 = r199318 / r199320;
double r199325 = pow(r199324, r199312);
double r199326 = r199313 * r199325;
double r199327 = U_;
double r199328 = r199315 - r199327;
double r199329 = r199326 * r199328;
double r199330 = r199323 - r199329;
double r199331 = r199316 * r199330;
double r199332 = sqrt(r199331);
return r199332;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r199333 = t;
double r199334 = 5.921596680002773e-305;
bool r199335 = r199333 <= r199334;
double r199336 = 1.070028174441902e-172;
bool r199337 = r199333 <= r199336;
double r199338 = 2.7244659562007136e+192;
bool r199339 = r199333 <= r199338;
double r199340 = !r199339;
bool r199341 = r199337 || r199340;
double r199342 = !r199341;
bool r199343 = r199335 || r199342;
double r199344 = 2.0;
double r199345 = n;
double r199346 = r199344 * r199345;
double r199347 = U;
double r199348 = l;
double r199349 = Om;
double r199350 = r199348 / r199349;
double r199351 = r199348 * r199350;
double r199352 = r199344 * r199351;
double r199353 = r199333 - r199352;
double r199354 = pow(r199350, r199344);
double r199355 = r199345 * r199354;
double r199356 = U_;
double r199357 = r199347 - r199356;
double r199358 = r199355 * r199357;
double r199359 = r199353 - r199358;
double r199360 = r199347 * r199359;
double r199361 = r199346 * r199360;
double r199362 = sqrt(r199361);
double r199363 = r199346 * r199347;
double r199364 = sqrt(r199363);
double r199365 = r199349 / r199348;
double r199366 = r199348 / r199365;
double r199367 = r199344 * r199366;
double r199368 = r199333 - r199367;
double r199369 = r199368 - r199358;
double r199370 = sqrt(r199369);
double r199371 = r199364 * r199370;
double r199372 = r199343 ? r199362 : r199371;
return r199372;
}



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