\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 -1.79177120952340284 \cdot 10^{-135}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \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)\right)}\\
\mathbf{elif}\;n \le 1.53701075221824925 \cdot 10^{-307}:\\
\;\;\;\;\sqrt{2 \cdot \left(\left(n \cdot \left(t - \left(2 \cdot \frac{\ell}{\frac{Om}{\ell}} - \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)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\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)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r205790 = 2.0;
double r205791 = n;
double r205792 = r205790 * r205791;
double r205793 = U;
double r205794 = r205792 * r205793;
double r205795 = t;
double r205796 = l;
double r205797 = r205796 * r205796;
double r205798 = Om;
double r205799 = r205797 / r205798;
double r205800 = r205790 * r205799;
double r205801 = r205795 - r205800;
double r205802 = r205796 / r205798;
double r205803 = pow(r205802, r205790);
double r205804 = r205791 * r205803;
double r205805 = U_;
double r205806 = r205793 - r205805;
double r205807 = r205804 * r205806;
double r205808 = r205801 - r205807;
double r205809 = r205794 * r205808;
double r205810 = sqrt(r205809);
return r205810;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r205811 = n;
double r205812 = -1.7917712095234028e-135;
bool r205813 = r205811 <= r205812;
double r205814 = 2.0;
double r205815 = r205814 * r205811;
double r205816 = U;
double r205817 = t;
double r205818 = l;
double r205819 = Om;
double r205820 = r205819 / r205818;
double r205821 = r205818 / r205820;
double r205822 = r205814 * r205821;
double r205823 = r205817 - r205822;
double r205824 = r205818 / r205819;
double r205825 = 2.0;
double r205826 = r205814 / r205825;
double r205827 = pow(r205824, r205826);
double r205828 = r205811 * r205827;
double r205829 = U_;
double r205830 = r205816 - r205829;
double r205831 = r205827 * r205830;
double r205832 = r205828 * r205831;
double r205833 = r205823 - r205832;
double r205834 = r205816 * r205833;
double r205835 = r205815 * r205834;
double r205836 = sqrt(r205835);
double r205837 = 1.5370107522182492e-307;
bool r205838 = r205811 <= r205837;
double r205839 = -r205830;
double r205840 = r205825 * r205826;
double r205841 = pow(r205824, r205840);
double r205842 = r205811 * r205841;
double r205843 = r205839 * r205842;
double r205844 = r205822 - r205843;
double r205845 = r205817 - r205844;
double r205846 = r205811 * r205845;
double r205847 = r205846 * r205816;
double r205848 = r205814 * r205847;
double r205849 = sqrt(r205848);
double r205850 = sqrt(r205815);
double r205851 = r205828 * r205827;
double r205852 = r205851 * r205830;
double r205853 = r205823 - r205852;
double r205854 = r205816 * r205853;
double r205855 = sqrt(r205854);
double r205856 = r205850 * r205855;
double r205857 = r205838 ? r205849 : r205856;
double r205858 = r205813 ? r205836 : r205857;
return r205858;
}



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 n < -1.7917712095234028e-135Initial program 33.0
rmApplied associate-*l*33.3
rmApplied associate-/l*30.9
rmApplied sqr-pow30.9
Applied associate-*r*29.7
rmApplied associate-*l*28.7
if -1.7917712095234028e-135 < n < 1.5370107522182492e-307Initial program 38.3
rmApplied associate-*l*37.4
rmApplied associate-/l*35.0
rmApplied sqr-pow35.0
Applied associate-*r*33.6
rmApplied associate-*l*33.6
Simplified31.7
if 1.5370107522182492e-307 < n Initial program 35.0
rmApplied associate-*l*35.3
rmApplied associate-/l*32.5
rmApplied sqr-pow32.5
Applied associate-*r*31.5
rmApplied sqrt-prod23.8
Final simplification26.8
herbie shell --seed 2020018 +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*))))))