\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.2001883542953 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(n \cdot \left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot U} \cdot \sqrt{n \cdot \left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(n \cdot \left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2583885 = 2.0;
double r2583886 = n;
double r2583887 = r2583885 * r2583886;
double r2583888 = U;
double r2583889 = r2583887 * r2583888;
double r2583890 = t;
double r2583891 = l;
double r2583892 = r2583891 * r2583891;
double r2583893 = Om;
double r2583894 = r2583892 / r2583893;
double r2583895 = r2583885 * r2583894;
double r2583896 = r2583890 - r2583895;
double r2583897 = r2583891 / r2583893;
double r2583898 = pow(r2583897, r2583885);
double r2583899 = r2583886 * r2583898;
double r2583900 = U_;
double r2583901 = r2583888 - r2583900;
double r2583902 = r2583899 * r2583901;
double r2583903 = r2583896 - r2583902;
double r2583904 = r2583889 * r2583903;
double r2583905 = sqrt(r2583904);
return r2583905;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2583906 = U;
double r2583907 = -5.2001883542953e-311;
bool r2583908 = r2583906 <= r2583907;
double r2583909 = 2.0;
double r2583910 = r2583909 * r2583906;
double r2583911 = n;
double r2583912 = t;
double r2583913 = l;
double r2583914 = Om;
double r2583915 = r2583913 / r2583914;
double r2583916 = r2583909 * r2583913;
double r2583917 = r2583915 * r2583915;
double r2583918 = r2583911 * r2583917;
double r2583919 = U_;
double r2583920 = r2583906 - r2583919;
double r2583921 = r2583918 * r2583920;
double r2583922 = fma(r2583915, r2583916, r2583921);
double r2583923 = r2583912 - r2583922;
double r2583924 = r2583911 * r2583923;
double r2583925 = r2583910 * r2583924;
double r2583926 = sqrt(r2583925);
double r2583927 = sqrt(r2583910);
double r2583928 = sqrt(r2583924);
double r2583929 = r2583927 * r2583928;
double r2583930 = r2583908 ? r2583926 : r2583929;
return r2583930;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if U < -5.2001883542953e-311Initial program 34.4
Simplified31.7
Taylor expanded around -inf 37.2
Simplified31.7
if -5.2001883542953e-311 < U Initial program 33.0
Simplified30.0
rmApplied sqrt-prod23.6
Final simplification27.6
herbie shell --seed 2019133 +o rules:numerics
(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*))))))