\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}\;U \le -2.56376693799834257 \cdot 10^{-130}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\sqrt[3]{n} \cdot \sqrt[3]{n}\right) \cdot \left(\sqrt[3]{n} \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right)\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{elif}\;U \le 8.6898223191579737 \cdot 10^{-140}:\\
\;\;\;\;\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}:\\
\;\;\;\;\left(\sqrt[3]{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}} \cdot \sqrt[3]{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}}\right) \cdot \sqrt[3]{\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r267379 = 2.0;
double r267380 = n;
double r267381 = r267379 * r267380;
double r267382 = U;
double r267383 = r267381 * r267382;
double r267384 = t;
double r267385 = l;
double r267386 = r267385 * r267385;
double r267387 = Om;
double r267388 = r267386 / r267387;
double r267389 = r267379 * r267388;
double r267390 = r267384 - r267389;
double r267391 = r267385 / r267387;
double r267392 = pow(r267391, r267379);
double r267393 = r267380 * r267392;
double r267394 = U_;
double r267395 = r267382 - r267394;
double r267396 = r267393 * r267395;
double r267397 = r267390 - r267396;
double r267398 = r267383 * r267397;
double r267399 = sqrt(r267398);
return r267399;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r267400 = U;
double r267401 = -2.5637669379983426e-130;
bool r267402 = r267400 <= r267401;
double r267403 = 2.0;
double r267404 = n;
double r267405 = r267403 * r267404;
double r267406 = r267405 * r267400;
double r267407 = t;
double r267408 = l;
double r267409 = Om;
double r267410 = r267408 / r267409;
double r267411 = r267408 * r267410;
double r267412 = r267403 * r267411;
double r267413 = r267407 - r267412;
double r267414 = cbrt(r267404);
double r267415 = r267414 * r267414;
double r267416 = pow(r267410, r267403);
double r267417 = r267414 * r267416;
double r267418 = r267415 * r267417;
double r267419 = U_;
double r267420 = r267400 - r267419;
double r267421 = r267418 * r267420;
double r267422 = r267413 - r267421;
double r267423 = r267406 * r267422;
double r267424 = sqrt(r267423);
double r267425 = 8.689822319157974e-140;
bool r267426 = r267400 <= r267425;
double r267427 = r267404 * r267416;
double r267428 = r267427 * r267420;
double r267429 = r267413 - r267428;
double r267430 = r267400 * r267429;
double r267431 = r267405 * r267430;
double r267432 = sqrt(r267431);
double r267433 = 2.0;
double r267434 = r267403 / r267433;
double r267435 = pow(r267410, r267434);
double r267436 = r267404 * r267435;
double r267437 = r267436 * r267435;
double r267438 = r267437 * r267420;
double r267439 = r267413 - r267438;
double r267440 = r267406 * r267439;
double r267441 = sqrt(r267440);
double r267442 = cbrt(r267441);
double r267443 = r267442 * r267442;
double r267444 = r267443 * r267442;
double r267445 = r267426 ? r267432 : r267444;
double r267446 = r267402 ? r267424 : r267445;
return r267446;
}



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 U < -2.5637669379983426e-130Initial program 30.0
rmApplied *-un-lft-identity30.0
Applied times-frac27.3
Simplified27.3
rmApplied add-cube-cbrt27.3
Applied associate-*l*27.3
if -2.5637669379983426e-130 < U < 8.689822319157974e-140Initial program 41.0
rmApplied *-un-lft-identity41.0
Applied times-frac39.0
Simplified39.0
rmApplied associate-*l*33.9
if 8.689822319157974e-140 < U Initial program 30.8
rmApplied *-un-lft-identity30.8
Applied times-frac27.9
Simplified27.9
rmApplied sqr-pow27.9
Applied associate-*r*27.0
rmApplied add-cube-cbrt27.7
Final simplification29.9
herbie shell --seed 2020036 +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*))))))