\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 -4.797165734624695899226646467454361223135 \cdot 10^{-88}:\\
\;\;\;\;\sqrt{\sqrt{\left(\left(n \cdot 2\right) \cdot U\right) \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right)} \cdot \sqrt{\left(\left(n \cdot 2\right) \cdot U\right) \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right)}}\\
\mathbf{elif}\;U \le -7.292518127255309422901006800230409602213 \cdot 10^{-277}:\\
\;\;\;\;\sqrt{\left(n \cdot 2\right) \cdot \left(U \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right)\right)}\\
\mathbf{elif}\;U \le -2.544301569058814338086007489613547011313 \cdot 10^{-310} \lor \neg \left(U \le 4.913407422060663127687960956485861242372 \cdot 10^{-171}\right) \land U \le 8.219354400775285904861674568102655539055 \cdot 10^{94}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(t + \left(\left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot n\right)\right) \cdot \left(U* - U\right) - \frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right)\right) \cdot \left(n \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U} \cdot \sqrt{\left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right) \cdot \left(n \cdot 2\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r261805 = 2.0;
double r261806 = n;
double r261807 = r261805 * r261806;
double r261808 = U;
double r261809 = r261807 * r261808;
double r261810 = t;
double r261811 = l;
double r261812 = r261811 * r261811;
double r261813 = Om;
double r261814 = r261812 / r261813;
double r261815 = r261805 * r261814;
double r261816 = r261810 - r261815;
double r261817 = r261811 / r261813;
double r261818 = pow(r261817, r261805);
double r261819 = r261806 * r261818;
double r261820 = U_;
double r261821 = r261808 - r261820;
double r261822 = r261819 * r261821;
double r261823 = r261816 - r261822;
double r261824 = r261809 * r261823;
double r261825 = sqrt(r261824);
return r261825;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r261826 = U;
double r261827 = -4.797165734624696e-88;
bool r261828 = r261826 <= r261827;
double r261829 = n;
double r261830 = 2.0;
double r261831 = r261829 * r261830;
double r261832 = r261831 * r261826;
double r261833 = t;
double r261834 = l;
double r261835 = Om;
double r261836 = r261834 / r261835;
double r261837 = 2.0;
double r261838 = r261837 * r261830;
double r261839 = r261838 / r261837;
double r261840 = pow(r261836, r261839);
double r261841 = r261829 * r261840;
double r261842 = U_;
double r261843 = r261842 - r261826;
double r261844 = r261841 * r261843;
double r261845 = r261834 * r261836;
double r261846 = r261845 * r261830;
double r261847 = r261844 - r261846;
double r261848 = r261833 + r261847;
double r261849 = r261832 * r261848;
double r261850 = sqrt(r261849);
double r261851 = r261850 * r261850;
double r261852 = sqrt(r261851);
double r261853 = -7.292518127255309e-277;
bool r261854 = r261826 <= r261853;
double r261855 = r261826 * r261848;
double r261856 = r261831 * r261855;
double r261857 = sqrt(r261856);
double r261858 = -2.5443015690588e-310;
bool r261859 = r261826 <= r261858;
double r261860 = 4.913407422060663e-171;
bool r261861 = r261826 <= r261860;
double r261862 = !r261861;
double r261863 = 8.219354400775286e+94;
bool r261864 = r261826 <= r261863;
bool r261865 = r261862 && r261864;
bool r261866 = r261859 || r261865;
double r261867 = r261830 / r261837;
double r261868 = pow(r261836, r261867);
double r261869 = r261868 * r261829;
double r261870 = r261868 * r261869;
double r261871 = r261870 * r261843;
double r261872 = r261830 * r261834;
double r261873 = r261836 * r261872;
double r261874 = r261871 - r261873;
double r261875 = r261833 + r261874;
double r261876 = r261875 * r261831;
double r261877 = r261826 * r261876;
double r261878 = sqrt(r261877);
double r261879 = sqrt(r261826);
double r261880 = r261848 * r261831;
double r261881 = sqrt(r261880);
double r261882 = r261879 * r261881;
double r261883 = r261866 ? r261878 : r261882;
double r261884 = r261854 ? r261857 : r261883;
double r261885 = r261828 ? r261852 : r261884;
return r261885;
}



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 < -4.797165734624696e-88Initial program 30.0
Simplified28.3
rmApplied sqr-pow28.3
Applied associate-*r*27.5
Simplified27.5
rmApplied add-sqr-sqrt27.5
Simplified29.7
Simplified26.7
if -4.797165734624696e-88 < U < -7.292518127255309e-277Initial program 38.6
Simplified35.1
rmApplied sqr-pow35.1
Applied associate-*r*33.7
Simplified33.7
rmApplied associate-*l*29.8
Simplified31.2
if -7.292518127255309e-277 < U < -2.5443015690588e-310 or 4.913407422060663e-171 < U < 8.219354400775286e+94Initial program 33.6
Simplified31.0
rmApplied sqr-pow31.0
Applied associate-*r*29.6
Simplified29.6
if -2.5443015690588e-310 < U < 4.913407422060663e-171 or 8.219354400775286e+94 < U Initial program 37.4
Simplified35.5
rmApplied sqr-pow35.5
Applied associate-*r*34.7
Simplified34.7
rmApplied sqrt-prod24.0
Simplified25.0
Final simplification27.9
herbie shell --seed 2019174
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))