\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 8.24235475462790745 \cdot 10^{-304}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)} \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)}\right) \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)}}\\
\mathbf{elif}\;U \le 7.0020822487454102 \cdot 10^{119}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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{else}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell \cdot \ell}{Om} - \left(-n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r217005 = 2.0;
double r217006 = n;
double r217007 = r217005 * r217006;
double r217008 = U;
double r217009 = r217007 * r217008;
double r217010 = t;
double r217011 = l;
double r217012 = r217011 * r217011;
double r217013 = Om;
double r217014 = r217012 / r217013;
double r217015 = r217005 * r217014;
double r217016 = r217010 - r217015;
double r217017 = r217011 / r217013;
double r217018 = pow(r217017, r217005);
double r217019 = r217006 * r217018;
double r217020 = U_;
double r217021 = r217008 - r217020;
double r217022 = r217019 * r217021;
double r217023 = r217016 - r217022;
double r217024 = r217009 * r217023;
double r217025 = sqrt(r217024);
return r217025;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r217026 = U;
double r217027 = 8.242354754627907e-304;
bool r217028 = r217026 <= r217027;
double r217029 = 2.0;
double r217030 = n;
double r217031 = r217029 * r217030;
double r217032 = r217031 * r217026;
double r217033 = t;
double r217034 = l;
double r217035 = r217034 * r217034;
double r217036 = Om;
double r217037 = r217035 / r217036;
double r217038 = r217029 * r217037;
double r217039 = r217033 - r217038;
double r217040 = r217034 / r217036;
double r217041 = 2.0;
double r217042 = r217029 / r217041;
double r217043 = pow(r217040, r217042);
double r217044 = r217030 * r217043;
double r217045 = r217044 * r217043;
double r217046 = U_;
double r217047 = r217026 - r217046;
double r217048 = r217045 * r217047;
double r217049 = r217039 - r217048;
double r217050 = r217032 * r217049;
double r217051 = cbrt(r217050);
double r217052 = r217051 * r217051;
double r217053 = r217052 * r217051;
double r217054 = sqrt(r217053);
double r217055 = 7.00208224874541e+119;
bool r217056 = r217026 <= r217055;
double r217057 = r217043 * r217047;
double r217058 = r217044 * r217057;
double r217059 = r217039 - r217058;
double r217060 = r217026 * r217059;
double r217061 = r217031 * r217060;
double r217062 = sqrt(r217061);
double r217063 = r217041 * r217042;
double r217064 = pow(r217040, r217063);
double r217065 = r217030 * r217064;
double r217066 = -r217065;
double r217067 = r217066 * r217047;
double r217068 = r217038 - r217067;
double r217069 = r217033 - r217068;
double r217070 = r217031 * r217069;
double r217071 = r217070 * r217026;
double r217072 = 1.0;
double r217073 = pow(r217071, r217072);
double r217074 = sqrt(r217073);
double r217075 = r217056 ? r217062 : r217074;
double r217076 = r217028 ? r217054 : r217075;
return r217076;
}



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 < 8.242354754627907e-304Initial program 34.8
rmApplied sqr-pow34.8
Applied associate-*r*34.1
rmApplied add-cube-cbrt34.4
if 8.242354754627907e-304 < U < 7.00208224874541e+119Initial program 36.0
rmApplied sqr-pow36.0
Applied associate-*r*35.0
rmApplied associate-*l*34.8
rmApplied associate-*l*32.5
if 7.00208224874541e+119 < U Initial program 30.2
rmApplied sqr-pow30.2
Applied associate-*r*30.1
rmApplied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Simplified33.5
Final simplification33.6
herbie shell --seed 2020062
(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*))))))