\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 r176530 = 2.0;
double r176531 = n;
double r176532 = r176530 * r176531;
double r176533 = U;
double r176534 = r176532 * r176533;
double r176535 = t;
double r176536 = l;
double r176537 = r176536 * r176536;
double r176538 = Om;
double r176539 = r176537 / r176538;
double r176540 = r176530 * r176539;
double r176541 = r176535 - r176540;
double r176542 = r176536 / r176538;
double r176543 = pow(r176542, r176530);
double r176544 = r176531 * r176543;
double r176545 = U_;
double r176546 = r176533 - r176545;
double r176547 = r176544 * r176546;
double r176548 = r176541 - r176547;
double r176549 = r176534 * r176548;
double r176550 = sqrt(r176549);
return r176550;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r176551 = t;
double r176552 = -1.9761349830952812e+186;
bool r176553 = r176551 <= r176552;
double r176554 = 2.0;
double r176555 = n;
double r176556 = r176554 * r176555;
double r176557 = U;
double r176558 = l;
double r176559 = Om;
double r176560 = r176559 / r176558;
double r176561 = r176558 / r176560;
double r176562 = r176554 * r176561;
double r176563 = r176551 - r176562;
double r176564 = cbrt(r176558);
double r176565 = r176564 * r176564;
double r176566 = 1.0;
double r176567 = r176565 / r176566;
double r176568 = 2.0;
double r176569 = r176554 / r176568;
double r176570 = pow(r176567, r176569);
double r176571 = r176555 * r176570;
double r176572 = r176564 / r176559;
double r176573 = pow(r176572, r176569);
double r176574 = r176571 * r176573;
double r176575 = r176558 / r176559;
double r176576 = pow(r176575, r176569);
double r176577 = r176574 * r176576;
double r176578 = U_;
double r176579 = r176557 - r176578;
double r176580 = r176577 * r176579;
double r176581 = r176563 - r176580;
double r176582 = r176557 * r176581;
double r176583 = r176556 * r176582;
double r176584 = sqrt(r176583);
double r176585 = -1.3487365281994786e-70;
bool r176586 = r176551 <= r176585;
double r176587 = r176568 * r176569;
double r176588 = pow(r176575, r176587);
double r176589 = r176555 * r176588;
double r176590 = -r176589;
double r176591 = r176590 * r176579;
double r176592 = r176562 - r176591;
double r176593 = r176551 - r176592;
double r176594 = r176556 * r176593;
double r176595 = r176594 * r176557;
double r176596 = pow(r176595, r176566);
double r176597 = sqrt(r176596);
double r176598 = 2.5897331506828896e+20;
bool r176599 = r176551 <= r176598;
double r176600 = r176556 * r176557;
double r176601 = sqrt(r176600);
double r176602 = r176555 * r176576;
double r176603 = r176602 * r176576;
double r176604 = r176603 * r176579;
double r176605 = r176563 - r176604;
double r176606 = sqrt(r176605);
double r176607 = r176601 * r176606;
double r176608 = r176599 ? r176584 : r176607;
double r176609 = r176586 ? r176597 : r176608;
double r176610 = r176553 ? r176584 : r176609;
return r176610;
}



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