\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 -2.214046473047511182262273069897395979677 \cdot 10^{201} \lor t \le -6.212072691974284363372137380706930578219 \cdot 10^{-200}:\\
\;\;\;\;\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)}\\
\mathbf{elif}\;t \le 5.824775899044275048393983934519217716302 \cdot 10^{-226} \lor t \le 436193475525558403072:\\
\;\;\;\;\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)}\\
\mathbf{elif}\;t \le 1.976343330438959153714939343152765464593 \cdot 10^{262}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell}{\frac{Om}{\ell}} - \left(-\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot \frac{2}{2}}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot \frac{2}{2}}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\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 r210557 = 2.0;
double r210558 = n;
double r210559 = r210557 * r210558;
double r210560 = U;
double r210561 = r210559 * r210560;
double r210562 = t;
double r210563 = l;
double r210564 = r210563 * r210563;
double r210565 = Om;
double r210566 = r210564 / r210565;
double r210567 = r210557 * r210566;
double r210568 = r210562 - r210567;
double r210569 = r210563 / r210565;
double r210570 = pow(r210569, r210557);
double r210571 = r210558 * r210570;
double r210572 = U_;
double r210573 = r210560 - r210572;
double r210574 = r210571 * r210573;
double r210575 = r210568 - r210574;
double r210576 = r210561 * r210575;
double r210577 = sqrt(r210576);
return r210577;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r210578 = t;
double r210579 = -2.2140464730475112e+201;
bool r210580 = r210578 <= r210579;
double r210581 = -6.212072691974284e-200;
bool r210582 = r210578 <= r210581;
bool r210583 = r210580 || r210582;
double r210584 = 2.0;
double r210585 = n;
double r210586 = r210584 * r210585;
double r210587 = U;
double r210588 = r210586 * r210587;
double r210589 = l;
double r210590 = Om;
double r210591 = r210590 / r210589;
double r210592 = r210589 / r210591;
double r210593 = r210584 * r210592;
double r210594 = r210578 - r210593;
double r210595 = r210589 / r210590;
double r210596 = 2.0;
double r210597 = r210584 / r210596;
double r210598 = pow(r210595, r210597);
double r210599 = r210585 * r210598;
double r210600 = U_;
double r210601 = r210587 - r210600;
double r210602 = r210598 * r210601;
double r210603 = r210599 * r210602;
double r210604 = r210594 - r210603;
double r210605 = r210588 * r210604;
double r210606 = sqrt(r210605);
double r210607 = 5.824775899044275e-226;
bool r210608 = r210578 <= r210607;
double r210609 = 4.361934755255584e+20;
bool r210610 = r210578 <= r210609;
bool r210611 = r210608 || r210610;
double r210612 = 1.976343330438959e+262;
bool r210613 = r210578 <= r210612;
double r210614 = r210596 * r210597;
double r210615 = r210614 / r210596;
double r210616 = pow(r210595, r210615);
double r210617 = r210585 * r210616;
double r210618 = r210617 * r210616;
double r210619 = -r210618;
double r210620 = r210619 * r210601;
double r210621 = r210593 - r210620;
double r210622 = r210578 - r210621;
double r210623 = r210586 * r210622;
double r210624 = r210623 * r210587;
double r210625 = 1.0;
double r210626 = pow(r210624, r210625);
double r210627 = sqrt(r210626);
double r210628 = sqrt(r210588);
double r210629 = r210599 * r210598;
double r210630 = r210629 * r210601;
double r210631 = r210594 - r210630;
double r210632 = sqrt(r210631);
double r210633 = r210628 * r210632;
double r210634 = r210613 ? r210627 : r210633;
double r210635 = r210611 ? r210606 : r210634;
double r210636 = r210583 ? r210606 : r210635;
return r210636;
}



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 < -2.2140464730475112e+201 or -6.212072691974284e-200 < t < 5.824775899044275e-226 or 4.361934755255584e+20 < t < 1.976343330438959e+262Initial program 36.1
rmApplied associate-/l*33.4
rmApplied sqr-pow33.4
Applied associate-*r*32.8
rmApplied pow132.8
Applied pow132.8
Applied pow132.8
Applied pow132.8
Applied pow-prod-down32.8
Applied pow-prod-down32.8
Applied pow-prod-down32.8
Simplified33.1
rmApplied sqr-pow33.1
Applied associate-*r*32.0
if -2.2140464730475112e+201 < t < -6.212072691974284e-200 or 5.824775899044275e-226 < t < 4.361934755255584e+20Initial program 33.0
rmApplied associate-/l*30.5
rmApplied sqr-pow30.5
Applied associate-*r*29.6
rmApplied associate-*l*29.3
if 1.976343330438959e+262 < t Initial program 42.1
rmApplied associate-/l*40.3
rmApplied sqr-pow40.3
Applied associate-*r*40.1
rmApplied sqrt-prod22.0
Final simplification30.2
herbie shell --seed 2019294
(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*))))))