\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}\;n \le -6.580462540237744 \cdot 10^{-211}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - \left(\frac{\ell}{Om} \cdot \ell\right) \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{elif}\;n \le 1.340924181894456 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 3.5524724992445805 \cdot 10^{-257}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;n \le 9.46642259373695 \cdot 10^{-254}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 2.4979801865310678 \cdot 10^{+51}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - \left(\frac{\ell}{Om} \cdot \ell\right) \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r1335425 = 2.0;
double r1335426 = n;
double r1335427 = r1335425 * r1335426;
double r1335428 = U;
double r1335429 = r1335427 * r1335428;
double r1335430 = t;
double r1335431 = l;
double r1335432 = r1335431 * r1335431;
double r1335433 = Om;
double r1335434 = r1335432 / r1335433;
double r1335435 = r1335425 * r1335434;
double r1335436 = r1335430 - r1335435;
double r1335437 = r1335431 / r1335433;
double r1335438 = pow(r1335437, r1335425);
double r1335439 = r1335426 * r1335438;
double r1335440 = U_;
double r1335441 = r1335428 - r1335440;
double r1335442 = r1335439 * r1335441;
double r1335443 = r1335436 - r1335442;
double r1335444 = r1335429 * r1335443;
double r1335445 = sqrt(r1335444);
return r1335445;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1335446 = n;
double r1335447 = -6.580462540237744e-211;
bool r1335448 = r1335446 <= r1335447;
double r1335449 = 2.0;
double r1335450 = r1335449 * r1335446;
double r1335451 = U;
double r1335452 = t;
double r1335453 = l;
double r1335454 = Om;
double r1335455 = r1335453 / r1335454;
double r1335456 = r1335455 * r1335453;
double r1335457 = r1335456 * r1335449;
double r1335458 = r1335452 - r1335457;
double r1335459 = r1335455 * r1335446;
double r1335460 = U_;
double r1335461 = r1335451 - r1335460;
double r1335462 = r1335455 * r1335461;
double r1335463 = r1335459 * r1335462;
double r1335464 = r1335458 - r1335463;
double r1335465 = r1335451 * r1335464;
double r1335466 = r1335450 * r1335465;
double r1335467 = sqrt(r1335466);
double r1335468 = 1.340924181894456e-308;
bool r1335469 = r1335446 <= r1335468;
double r1335470 = r1335454 / r1335453;
double r1335471 = r1335453 / r1335470;
double r1335472 = r1335455 * r1335455;
double r1335473 = r1335472 * r1335446;
double r1335474 = r1335473 * r1335461;
double r1335475 = fma(r1335449, r1335471, r1335474);
double r1335476 = r1335452 - r1335475;
double r1335477 = r1335450 * r1335451;
double r1335478 = r1335476 * r1335477;
double r1335479 = sqrt(r1335478);
double r1335480 = 3.5524724992445805e-257;
bool r1335481 = r1335446 <= r1335480;
double r1335482 = sqrt(r1335450);
double r1335483 = r1335453 * r1335453;
double r1335484 = r1335483 / r1335454;
double r1335485 = r1335484 * r1335449;
double r1335486 = r1335452 - r1335485;
double r1335487 = r1335486 - r1335463;
double r1335488 = r1335451 * r1335487;
double r1335489 = sqrt(r1335488);
double r1335490 = r1335482 * r1335489;
double r1335491 = 9.46642259373695e-254;
bool r1335492 = r1335446 <= r1335491;
double r1335493 = 2.4979801865310678e+51;
bool r1335494 = r1335446 <= r1335493;
double r1335495 = r1335494 ? r1335467 : r1335490;
double r1335496 = r1335492 ? r1335479 : r1335495;
double r1335497 = r1335481 ? r1335490 : r1335496;
double r1335498 = r1335469 ? r1335479 : r1335497;
double r1335499 = r1335448 ? r1335467 : r1335498;
return r1335499;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if n < -6.580462540237744e-211 or 9.46642259373695e-254 < n < 2.4979801865310678e+51Initial program 31.6
rmApplied unpow231.6
Applied associate-*r*30.9
rmApplied associate-*l*30.7
rmApplied associate-*l*30.2
rmApplied *-un-lft-identity30.2
Applied times-frac27.3
Simplified27.3
if -6.580462540237744e-211 < n < 1.340924181894456e-308 or 3.5524724992445805e-257 < n < 9.46642259373695e-254Initial program 40.0
rmApplied unpow240.0
Applied associate-*r*39.0
rmApplied pow139.0
Applied pow139.0
Applied pow139.0
Applied pow139.0
Applied pow-prod-down39.0
Applied pow-prod-down39.0
Applied pow-prod-down39.0
Simplified37.8
if 1.340924181894456e-308 < n < 3.5524724992445805e-257 or 2.4979801865310678e+51 < n Initial program 34.3
rmApplied unpow234.3
Applied associate-*r*32.6
rmApplied associate-*l*32.2
rmApplied associate-*l*32.4
rmApplied sqrt-prod22.4
Final simplification27.4
herbie shell --seed 2019154 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))