\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 -2.7050839287957 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - \frac{\ell}{Om} \cdot \left(2 \cdot \ell - \left(\left(-n\right) \cdot \left(U - U*\right)\right) \cdot \frac{\ell}{Om}\right)\right)\right)}} \cdot \sqrt{\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - \frac{\ell}{Om} \cdot \left(2 \cdot \ell - \left(\left(-n\right) \cdot \left(U - U*\right)\right) \cdot \frac{\ell}{Om}\right)\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot U} \cdot \sqrt{n \cdot \left(t - \frac{\ell}{Om} \cdot \left(2 \cdot \ell - \left(\left(-n\right) \cdot \left(U - U*\right)\right) \cdot \frac{\ell}{Om}\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r1357766 = 2.0;
double r1357767 = n;
double r1357768 = r1357766 * r1357767;
double r1357769 = U;
double r1357770 = r1357768 * r1357769;
double r1357771 = t;
double r1357772 = l;
double r1357773 = r1357772 * r1357772;
double r1357774 = Om;
double r1357775 = r1357773 / r1357774;
double r1357776 = r1357766 * r1357775;
double r1357777 = r1357771 - r1357776;
double r1357778 = r1357772 / r1357774;
double r1357779 = pow(r1357778, r1357766);
double r1357780 = r1357767 * r1357779;
double r1357781 = U_;
double r1357782 = r1357769 - r1357781;
double r1357783 = r1357780 * r1357782;
double r1357784 = r1357777 - r1357783;
double r1357785 = r1357770 * r1357784;
double r1357786 = sqrt(r1357785);
return r1357786;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1357787 = U;
double r1357788 = -2.7050839287957e-310;
bool r1357789 = r1357787 <= r1357788;
double r1357790 = 2.0;
double r1357791 = r1357790 * r1357787;
double r1357792 = n;
double r1357793 = t;
double r1357794 = l;
double r1357795 = Om;
double r1357796 = r1357794 / r1357795;
double r1357797 = r1357790 * r1357794;
double r1357798 = -r1357792;
double r1357799 = U_;
double r1357800 = r1357787 - r1357799;
double r1357801 = r1357798 * r1357800;
double r1357802 = r1357801 * r1357796;
double r1357803 = r1357797 - r1357802;
double r1357804 = r1357796 * r1357803;
double r1357805 = r1357793 - r1357804;
double r1357806 = r1357792 * r1357805;
double r1357807 = r1357791 * r1357806;
double r1357808 = sqrt(r1357807);
double r1357809 = sqrt(r1357808);
double r1357810 = r1357809 * r1357809;
double r1357811 = sqrt(r1357791);
double r1357812 = sqrt(r1357806);
double r1357813 = r1357811 * r1357812;
double r1357814 = r1357789 ? r1357810 : r1357813;
return r1357814;
}



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 < -2.7050839287957e-310Initial program 33.7
Simplified32.0
rmApplied add-sqr-sqrt32.1
if -2.7050839287957e-310 < U Initial program 33.6
Simplified31.2
rmApplied sqrt-prod25.4
Final simplification28.7
herbie shell --seed 2019132
(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*))))))