\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 -1.976134983095281222500639438484837269871 \cdot 10^{186}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(\left(n \cdot {\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{1}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{\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)}\\
\mathbf{elif}\;t \le -1.348736528199478592142088546342992390382 \cdot 10^{-70}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell}{\frac{Om}{\ell}} - \left(-n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\mathbf{elif}\;t \le 258973315068288958464:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(\left(n \cdot {\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{1}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{\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)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r176478 = 2.0;
double r176479 = n;
double r176480 = r176478 * r176479;
double r176481 = U;
double r176482 = r176480 * r176481;
double r176483 = t;
double r176484 = l;
double r176485 = r176484 * r176484;
double r176486 = Om;
double r176487 = r176485 / r176486;
double r176488 = r176478 * r176487;
double r176489 = r176483 - r176488;
double r176490 = r176484 / r176486;
double r176491 = pow(r176490, r176478);
double r176492 = r176479 * r176491;
double r176493 = U_;
double r176494 = r176481 - r176493;
double r176495 = r176492 * r176494;
double r176496 = r176489 - r176495;
double r176497 = r176482 * r176496;
double r176498 = sqrt(r176497);
return r176498;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r176499 = t;
double r176500 = -1.9761349830952812e+186;
bool r176501 = r176499 <= r176500;
double r176502 = 2.0;
double r176503 = n;
double r176504 = r176502 * r176503;
double r176505 = U;
double r176506 = l;
double r176507 = Om;
double r176508 = r176507 / r176506;
double r176509 = r176506 / r176508;
double r176510 = r176502 * r176509;
double r176511 = r176499 - r176510;
double r176512 = cbrt(r176506);
double r176513 = r176512 * r176512;
double r176514 = 1.0;
double r176515 = r176513 / r176514;
double r176516 = 2.0;
double r176517 = r176502 / r176516;
double r176518 = pow(r176515, r176517);
double r176519 = r176503 * r176518;
double r176520 = r176512 / r176507;
double r176521 = pow(r176520, r176517);
double r176522 = r176519 * r176521;
double r176523 = r176506 / r176507;
double r176524 = pow(r176523, r176517);
double r176525 = r176522 * r176524;
double r176526 = U_;
double r176527 = r176505 - r176526;
double r176528 = r176525 * r176527;
double r176529 = r176511 - r176528;
double r176530 = r176505 * r176529;
double r176531 = r176504 * r176530;
double r176532 = sqrt(r176531);
double r176533 = -1.3487365281994786e-70;
bool r176534 = r176499 <= r176533;
double r176535 = r176516 * r176517;
double r176536 = pow(r176523, r176535);
double r176537 = r176503 * r176536;
double r176538 = -r176537;
double r176539 = r176538 * r176527;
double r176540 = r176510 - r176539;
double r176541 = r176499 - r176540;
double r176542 = r176504 * r176541;
double r176543 = r176542 * r176505;
double r176544 = pow(r176543, r176514);
double r176545 = sqrt(r176544);
double r176546 = 2.5897331506828896e+20;
bool r176547 = r176499 <= r176546;
double r176548 = r176504 * r176505;
double r176549 = sqrt(r176548);
double r176550 = r176503 * r176524;
double r176551 = r176550 * r176524;
double r176552 = r176551 * r176527;
double r176553 = r176511 - r176552;
double r176554 = sqrt(r176553);
double r176555 = r176549 * r176554;
double r176556 = r176547 ? r176532 : r176555;
double r176557 = r176534 ? r176545 : r176556;
double r176558 = r176501 ? r176532 : r176557;
return r176558;
}



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 < -1.9761349830952812e+186 or -1.3487365281994786e-70 < t < 2.5897331506828896e+20Initial program 35.7
rmApplied associate-/l*33.3
rmApplied sqr-pow33.3
Applied associate-*r*32.2
rmApplied *-un-lft-identity32.2
Applied add-cube-cbrt32.3
Applied times-frac32.3
Applied unpow-prod-down32.3
Applied associate-*r*32.8
rmApplied associate-*l*32.3
if -1.9761349830952812e+186 < t < -1.3487365281994786e-70Initial program 30.1
rmApplied associate-/l*28.0
rmApplied sqr-pow28.0
Applied associate-*r*27.3
rmApplied pow127.3
Applied pow127.3
Applied pow127.3
Applied pow127.3
Applied pow-prod-down27.3
Applied pow-prod-down27.3
Applied pow-prod-down27.3
Simplified26.8
if 2.5897331506828896e+20 < t Initial program 34.6
rmApplied associate-/l*32.2
rmApplied sqr-pow32.2
Applied associate-*r*31.7
rmApplied sqrt-prod25.7
Final simplification29.5
herbie shell --seed 2020001
(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*))))))