\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}\;U \le 8.24235475462790745 \cdot 10^{-304}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)\right)} \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)\right)}\right) \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)\right)}}\\
\mathbf{elif}\;U \le 7.0020822487454102 \cdot 10^{119}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell \cdot \ell}{Om} - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r179575 = 2.0;
double r179576 = n;
double r179577 = r179575 * r179576;
double r179578 = U;
double r179579 = r179577 * r179578;
double r179580 = t;
double r179581 = l;
double r179582 = r179581 * r179581;
double r179583 = Om;
double r179584 = r179582 / r179583;
double r179585 = r179575 * r179584;
double r179586 = r179580 - r179585;
double r179587 = r179581 / r179583;
double r179588 = pow(r179587, r179575);
double r179589 = r179576 * r179588;
double r179590 = U_;
double r179591 = r179578 - r179590;
double r179592 = r179589 * r179591;
double r179593 = r179586 - r179592;
double r179594 = r179579 * r179593;
double r179595 = sqrt(r179594);
return r179595;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r179596 = U;
double r179597 = 8.242354754627907e-304;
bool r179598 = r179596 <= r179597;
double r179599 = 2.0;
double r179600 = n;
double r179601 = r179599 * r179600;
double r179602 = r179601 * r179596;
double r179603 = t;
double r179604 = l;
double r179605 = r179604 * r179604;
double r179606 = Om;
double r179607 = r179605 / r179606;
double r179608 = r179599 * r179607;
double r179609 = r179603 - r179608;
double r179610 = r179604 / r179606;
double r179611 = 2.0;
double r179612 = r179599 / r179611;
double r179613 = pow(r179610, r179612);
double r179614 = r179600 * r179613;
double r179615 = r179614 * r179613;
double r179616 = U_;
double r179617 = r179596 - r179616;
double r179618 = r179615 * r179617;
double r179619 = r179609 - r179618;
double r179620 = r179602 * r179619;
double r179621 = cbrt(r179620);
double r179622 = r179621 * r179621;
double r179623 = r179622 * r179621;
double r179624 = sqrt(r179623);
double r179625 = 7.00208224874541e+119;
bool r179626 = r179596 <= r179625;
double r179627 = r179613 * r179617;
double r179628 = r179614 * r179627;
double r179629 = r179609 - r179628;
double r179630 = r179596 * r179629;
double r179631 = r179601 * r179630;
double r179632 = sqrt(r179631);
double r179633 = -r179617;
double r179634 = r179611 * r179612;
double r179635 = pow(r179610, r179634);
double r179636 = r179600 * r179635;
double r179637 = r179633 * r179636;
double r179638 = r179608 - r179637;
double r179639 = r179603 - r179638;
double r179640 = r179601 * r179639;
double r179641 = r179640 * r179596;
double r179642 = 1.0;
double r179643 = pow(r179641, r179642);
double r179644 = sqrt(r179643);
double r179645 = r179626 ? r179632 : r179644;
double r179646 = r179598 ? r179624 : r179645;
return r179646;
}



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 U < 8.242354754627907e-304Initial program 34.8
rmApplied sqr-pow34.8
Applied associate-*r*34.1
rmApplied add-cube-cbrt34.4
if 8.242354754627907e-304 < U < 7.00208224874541e+119Initial program 36.0
rmApplied sqr-pow36.0
Applied associate-*r*35.0
rmApplied associate-*l*34.8
rmApplied associate-*l*32.5
if 7.00208224874541e+119 < U Initial program 30.2
rmApplied sqr-pow30.2
Applied associate-*r*30.1
rmApplied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Simplified33.5
Final simplification33.6
herbie shell --seed 2020062 +o rules:numerics
(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*))))))