\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{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\frac{\ell}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}}\right) - \left(\left(\sqrt[3]{U - U*} \cdot \sqrt[3]{U - U*}\right) \cdot \frac{n}{\frac{Om}{\ell} \cdot \frac{Om}{\ell}}\right) \cdot \sqrt[3]{U - U*}\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U} \cdot \sqrt{\left(2 \cdot n\right) \cdot \mathsf{fma}\left(-2, \frac{\frac{\ell}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}}, \left(\frac{\frac{\ell}{\sqrt[3]{Om}} \cdot \frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}} \cdot 0 - \frac{\frac{U - U*}{\frac{Om}{\ell}}}{\frac{\frac{Om}{\ell}}{n}}\right) + t\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2990972 = 2.0;
double r2990973 = n;
double r2990974 = r2990972 * r2990973;
double r2990975 = U;
double r2990976 = r2990974 * r2990975;
double r2990977 = t;
double r2990978 = l;
double r2990979 = r2990978 * r2990978;
double r2990980 = Om;
double r2990981 = r2990979 / r2990980;
double r2990982 = r2990972 * r2990981;
double r2990983 = r2990977 - r2990982;
double r2990984 = r2990978 / r2990980;
double r2990985 = pow(r2990984, r2990972);
double r2990986 = r2990973 * r2990985;
double r2990987 = U_;
double r2990988 = r2990975 - r2990987;
double r2990989 = r2990986 * r2990988;
double r2990990 = r2990983 - r2990989;
double r2990991 = r2990976 * r2990990;
double r2990992 = sqrt(r2990991);
return r2990992;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2990993 = U;
double r2990994 = -5.889660218949e-311;
bool r2990995 = r2990993 <= r2990994;
double r2990996 = 2.0;
double r2990997 = n;
double r2990998 = r2990996 * r2990997;
double r2990999 = r2990998 * r2990993;
double r2991000 = t;
double r2991001 = l;
double r2991002 = Om;
double r2991003 = cbrt(r2991002);
double r2991004 = r2991001 / r2991003;
double r2991005 = r2991004 * r2991004;
double r2991006 = r2991005 / r2991003;
double r2991007 = r2990996 * r2991006;
double r2991008 = r2991000 - r2991007;
double r2991009 = U_;
double r2991010 = r2990993 - r2991009;
double r2991011 = cbrt(r2991010);
double r2991012 = r2991011 * r2991011;
double r2991013 = r2991002 / r2991001;
double r2991014 = r2991013 * r2991013;
double r2991015 = r2990997 / r2991014;
double r2991016 = r2991012 * r2991015;
double r2991017 = r2991016 * r2991011;
double r2991018 = r2991008 - r2991017;
double r2991019 = r2990999 * r2991018;
double r2991020 = sqrt(r2991019);
double r2991021 = sqrt(r2990993);
double r2991022 = -2.0;
double r2991023 = 0.0;
double r2991024 = r2991006 * r2991023;
double r2991025 = r2991010 / r2991013;
double r2991026 = r2991013 / r2990997;
double r2991027 = r2991025 / r2991026;
double r2991028 = r2991024 - r2991027;
double r2991029 = r2991028 + r2991000;
double r2991030 = fma(r2991022, r2991006, r2991029);
double r2991031 = r2990998 * r2991030;
double r2991032 = sqrt(r2991031);
double r2991033 = r2991021 * r2991032;
double r2991034 = r2990995 ? r2991020 : r2991033;
return r2991034;
}



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.889660218949e-311Initial program 33.4
rmApplied add-cube-cbrt33.5
Applied associate-/r*33.5
Simplified31.5
Taylor expanded around 0 37.2
Simplified31.5
rmApplied add-cube-cbrt31.5
Applied associate-*r*31.5
if -5.889660218949e-311 < U Initial program 32.7
rmApplied add-cube-cbrt32.8
Applied associate-/r*32.8
Simplified30.6
Taylor expanded around 0 36.1
Simplified30.5
rmApplied add-sqr-sqrt46.2
Applied prod-diff46.2
Applied associate--l+46.2
Applied distribute-lft-in46.2
Simplified31.3
Simplified30.4
rmApplied distribute-lft-out30.4
Applied sqrt-prod23.5
Simplified23.5
Final simplification27.5
herbie shell --seed 2019168 +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*))))))