\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 3.130632929319652416005471644268637375687 \cdot 10^{-271}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{t - \left(\left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot n + 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right)} \cdot \left(U \cdot \left(\left(2 \cdot n\right) \cdot \sqrt[3]{t - \left(\left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot n + 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right)}\right)\right)\right) \cdot \sqrt[3]{\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)}}\\
\mathbf{elif}\;t \le 5.953905810989119972468590963716396861846 \cdot 10^{-86} \lor \neg \left(t \le 2.817007442329380152502379998300985537163 \cdot 10^{107}\right):\\
\;\;\;\;\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)}\\
\mathbf{else}:\\
\;\;\;\;\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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r217391 = 2.0;
double r217392 = n;
double r217393 = r217391 * r217392;
double r217394 = U;
double r217395 = r217393 * r217394;
double r217396 = t;
double r217397 = l;
double r217398 = r217397 * r217397;
double r217399 = Om;
double r217400 = r217398 / r217399;
double r217401 = r217391 * r217400;
double r217402 = r217396 - r217401;
double r217403 = r217397 / r217399;
double r217404 = pow(r217403, r217391);
double r217405 = r217392 * r217404;
double r217406 = U_;
double r217407 = r217394 - r217406;
double r217408 = r217405 * r217407;
double r217409 = r217402 - r217408;
double r217410 = r217395 * r217409;
double r217411 = sqrt(r217410);
return r217411;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r217412 = t;
double r217413 = 3.1306329293196524e-271;
bool r217414 = r217412 <= r217413;
double r217415 = U;
double r217416 = U_;
double r217417 = r217415 - r217416;
double r217418 = l;
double r217419 = Om;
double r217420 = r217418 / r217419;
double r217421 = 2.0;
double r217422 = 2.0;
double r217423 = r217422 / r217421;
double r217424 = r217421 * r217423;
double r217425 = pow(r217420, r217424);
double r217426 = r217417 * r217425;
double r217427 = n;
double r217428 = r217426 * r217427;
double r217429 = r217419 / r217418;
double r217430 = r217418 / r217429;
double r217431 = r217422 * r217430;
double r217432 = r217428 + r217431;
double r217433 = r217412 - r217432;
double r217434 = cbrt(r217433);
double r217435 = r217422 * r217427;
double r217436 = r217435 * r217434;
double r217437 = r217415 * r217436;
double r217438 = r217434 * r217437;
double r217439 = r217412 - r217431;
double r217440 = pow(r217420, r217423);
double r217441 = r217427 * r217440;
double r217442 = r217440 * r217417;
double r217443 = r217441 * r217442;
double r217444 = r217439 - r217443;
double r217445 = cbrt(r217444);
double r217446 = r217438 * r217445;
double r217447 = sqrt(r217446);
double r217448 = 5.95390581098912e-86;
bool r217449 = r217412 <= r217448;
double r217450 = 2.81700744232938e+107;
bool r217451 = r217412 <= r217450;
double r217452 = !r217451;
bool r217453 = r217449 || r217452;
double r217454 = r217435 * r217415;
double r217455 = sqrt(r217454);
double r217456 = pow(r217420, r217422);
double r217457 = r217427 * r217456;
double r217458 = r217457 * r217417;
double r217459 = r217439 - r217458;
double r217460 = sqrt(r217459);
double r217461 = r217455 * r217460;
double r217462 = r217454 * r217444;
double r217463 = sqrt(r217462);
double r217464 = r217453 ? r217461 : r217463;
double r217465 = r217414 ? r217447 : r217464;
return r217465;
}



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 < 3.1306329293196524e-271Initial program 35.5
rmApplied associate-/l*32.8
rmApplied sqr-pow32.8
Applied associate-*r*31.8
rmApplied associate-*l*31.9
rmApplied add-cube-cbrt32.2
Applied associate-*r*32.2
Simplified32.7
if 3.1306329293196524e-271 < t < 5.95390581098912e-86 or 2.81700744232938e+107 < t Initial program 36.1
rmApplied associate-/l*33.3
rmApplied sqrt-prod29.4
if 5.95390581098912e-86 < t < 2.81700744232938e+107Initial program 31.3
rmApplied associate-/l*28.4
rmApplied sqr-pow28.4
Applied associate-*r*27.4
rmApplied associate-*l*27.4
Final simplification30.9
herbie shell --seed 2019350
(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*))))))