\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 -5.889660218949 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{2 \cdot \left(\left(n \cdot U\right) \cdot \left(t - \frac{\ell}{Om} \cdot \left(2 \cdot \ell - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U* - U\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(\sqrt{t \cdot n - \left(2 \cdot \ell - \left(U* - U\right) \cdot \frac{\ell \cdot n}{Om}\right) \cdot \frac{\ell \cdot n}{Om}} \cdot \sqrt{U}\right) \cdot \sqrt{2}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r1880791 = 2.0;
double r1880792 = n;
double r1880793 = r1880791 * r1880792;
double r1880794 = U;
double r1880795 = r1880793 * r1880794;
double r1880796 = t;
double r1880797 = l;
double r1880798 = r1880797 * r1880797;
double r1880799 = Om;
double r1880800 = r1880798 / r1880799;
double r1880801 = r1880791 * r1880800;
double r1880802 = r1880796 - r1880801;
double r1880803 = r1880797 / r1880799;
double r1880804 = pow(r1880803, r1880791);
double r1880805 = r1880792 * r1880804;
double r1880806 = U_;
double r1880807 = r1880794 - r1880806;
double r1880808 = r1880805 * r1880807;
double r1880809 = r1880802 - r1880808;
double r1880810 = r1880795 * r1880809;
double r1880811 = sqrt(r1880810);
return r1880811;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1880812 = U;
double r1880813 = -5.889660218949e-311;
bool r1880814 = r1880812 <= r1880813;
double r1880815 = 2.0;
double r1880816 = n;
double r1880817 = r1880816 * r1880812;
double r1880818 = t;
double r1880819 = l;
double r1880820 = Om;
double r1880821 = r1880819 / r1880820;
double r1880822 = r1880815 * r1880819;
double r1880823 = r1880816 * r1880821;
double r1880824 = U_;
double r1880825 = r1880824 - r1880812;
double r1880826 = r1880823 * r1880825;
double r1880827 = r1880822 - r1880826;
double r1880828 = r1880821 * r1880827;
double r1880829 = r1880818 - r1880828;
double r1880830 = r1880817 * r1880829;
double r1880831 = r1880815 * r1880830;
double r1880832 = sqrt(r1880831);
double r1880833 = r1880818 * r1880816;
double r1880834 = r1880819 * r1880816;
double r1880835 = r1880834 / r1880820;
double r1880836 = r1880825 * r1880835;
double r1880837 = r1880822 - r1880836;
double r1880838 = r1880837 * r1880835;
double r1880839 = r1880833 - r1880838;
double r1880840 = sqrt(r1880839);
double r1880841 = sqrt(r1880812);
double r1880842 = r1880840 * r1880841;
double r1880843 = sqrt(r1880815);
double r1880844 = r1880842 * r1880843;
double r1880845 = r1880814 ? r1880832 : r1880844;
return r1880845;
}



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 < -5.889660218949e-311Initial program 33.4
Simplified31.2
rmApplied associate-*r*29.2
rmApplied associate-*r*29.5
if -5.889660218949e-311 < U Initial program 32.7
Simplified30.9
rmApplied associate-*r*29.0
rmApplied sub-neg29.0
Applied distribute-rgt-in29.0
Simplified26.9
rmApplied sqrt-prod27.1
rmApplied sqrt-prod19.7
Simplified20.3
Final simplification24.9
herbie shell --seed 2019168
(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*))))))