\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}\;n \le 3.267507094638271513092036819515301596094 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(U - U*\right) \cdot \left(\left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot n\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot \frac{2}{2}}{2}\right)}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r200061 = 2.0;
double r200062 = n;
double r200063 = r200061 * r200062;
double r200064 = U;
double r200065 = r200063 * r200064;
double r200066 = t;
double r200067 = l;
double r200068 = r200067 * r200067;
double r200069 = Om;
double r200070 = r200068 / r200069;
double r200071 = r200061 * r200070;
double r200072 = r200066 - r200071;
double r200073 = r200067 / r200069;
double r200074 = pow(r200073, r200061);
double r200075 = r200062 * r200074;
double r200076 = U_;
double r200077 = r200064 - r200076;
double r200078 = r200075 * r200077;
double r200079 = r200072 - r200078;
double r200080 = r200065 * r200079;
double r200081 = sqrt(r200080);
return r200081;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r200082 = n;
double r200083 = 3.2675070946382715e-308;
bool r200084 = r200082 <= r200083;
double r200085 = 2.0;
double r200086 = r200085 * r200082;
double r200087 = U;
double r200088 = t;
double r200089 = l;
double r200090 = Om;
double r200091 = r200090 / r200089;
double r200092 = r200089 / r200091;
double r200093 = r200085 * r200092;
double r200094 = r200088 - r200093;
double r200095 = U_;
double r200096 = r200087 - r200095;
double r200097 = r200089 / r200090;
double r200098 = 2.0;
double r200099 = r200085 / r200098;
double r200100 = pow(r200097, r200099);
double r200101 = r200100 * r200082;
double r200102 = r200098 * r200099;
double r200103 = r200102 / r200098;
double r200104 = pow(r200097, r200103);
double r200105 = r200101 * r200104;
double r200106 = r200096 * r200105;
double r200107 = r200094 - r200106;
double r200108 = r200087 * r200107;
double r200109 = r200086 * r200108;
double r200110 = sqrt(r200109);
double r200111 = sqrt(r200086);
double r200112 = pow(r200097, r200102);
double r200113 = r200082 * r200112;
double r200114 = r200096 * r200113;
double r200115 = r200094 - r200114;
double r200116 = r200087 * r200115;
double r200117 = sqrt(r200116);
double r200118 = r200111 * r200117;
double r200119 = r200084 ? r200110 : r200118;
return r200119;
}



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 n < 3.2675070946382715e-308Initial program 35.0
rmApplied associate-/l*32.2
rmApplied sqr-pow32.2
Applied associate-*r*31.5
rmApplied associate-*l*30.9
Simplified31.8
rmApplied sqr-pow31.8
Applied associate-*r*30.9
Simplified30.9
if 3.2675070946382715e-308 < n Initial program 34.8
rmApplied associate-/l*31.8
rmApplied sqr-pow31.8
Applied associate-*r*31.0
rmApplied associate-*l*31.1
Simplified32.1
rmApplied sqrt-prod24.7
Final simplification27.8
herbie shell --seed 2019323
(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*))))))