\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 5.921596680002772760806493524139888367658 \cdot 10^{-305} \lor \neg \left(t \le 1.070028174441901986804731946878056420476 \cdot 10^{-172} \lor \neg \left(t \le 2.724465956200713647886827411142398031389 \cdot 10^{192}\right)\right):\\
\;\;\;\;\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}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r159545 = 2.0;
double r159546 = n;
double r159547 = r159545 * r159546;
double r159548 = U;
double r159549 = r159547 * r159548;
double r159550 = t;
double r159551 = l;
double r159552 = r159551 * r159551;
double r159553 = Om;
double r159554 = r159552 / r159553;
double r159555 = r159545 * r159554;
double r159556 = r159550 - r159555;
double r159557 = r159551 / r159553;
double r159558 = pow(r159557, r159545);
double r159559 = r159546 * r159558;
double r159560 = U_;
double r159561 = r159548 - r159560;
double r159562 = r159559 * r159561;
double r159563 = r159556 - r159562;
double r159564 = r159549 * r159563;
double r159565 = sqrt(r159564);
return r159565;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r159566 = t;
double r159567 = 5.921596680002773e-305;
bool r159568 = r159566 <= r159567;
double r159569 = 1.070028174441902e-172;
bool r159570 = r159566 <= r159569;
double r159571 = 2.7244659562007136e+192;
bool r159572 = r159566 <= r159571;
double r159573 = !r159572;
bool r159574 = r159570 || r159573;
double r159575 = !r159574;
bool r159576 = r159568 || r159575;
double r159577 = 2.0;
double r159578 = n;
double r159579 = r159577 * r159578;
double r159580 = U;
double r159581 = l;
double r159582 = Om;
double r159583 = r159581 / r159582;
double r159584 = r159581 * r159583;
double r159585 = r159577 * r159584;
double r159586 = r159566 - r159585;
double r159587 = pow(r159583, r159577);
double r159588 = r159578 * r159587;
double r159589 = U_;
double r159590 = r159580 - r159589;
double r159591 = r159588 * r159590;
double r159592 = r159586 - r159591;
double r159593 = r159580 * r159592;
double r159594 = r159579 * r159593;
double r159595 = sqrt(r159594);
double r159596 = r159579 * r159580;
double r159597 = sqrt(r159596);
double r159598 = r159582 / r159581;
double r159599 = r159581 / r159598;
double r159600 = r159577 * r159599;
double r159601 = r159566 - r159600;
double r159602 = r159601 - r159591;
double r159603 = sqrt(r159602);
double r159604 = r159597 * r159603;
double r159605 = r159576 ? r159595 : r159604;
return r159605;
}



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 < 5.921596680002773e-305 or 1.070028174441902e-172 < t < 2.7244659562007136e+192Initial program 33.9
rmApplied *-un-lft-identity33.9
Applied times-frac31.2
Simplified31.2
rmApplied associate-*l*31.1
if 5.921596680002773e-305 < t < 1.070028174441902e-172 or 2.7244659562007136e+192 < t Initial program 37.9
rmApplied associate-/l*34.5
rmApplied sqrt-prod28.0
Final simplification30.5
herbie shell --seed 2019353
(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*))))))