\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 -7122680.873158953:\\
\;\;\;\;{\left(\left(t - \left(\ell \cdot 2 + \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right) \cdot n\right) \cdot \frac{\ell}{Om}\right) \cdot \left(U \cdot \left(2 \cdot n\right)\right)\right)}^{\frac{1}{2}}\\
\mathbf{elif}\;U \le -1.8663328166415404 \cdot 10^{-262}:\\
\;\;\;\;{\left(\left(U \cdot \left(t - \mathsf{fma}\left(\left(\ell \cdot 2\right), \left(\frac{\ell}{Om}\right), \left(\left(U - U*\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot \frac{\ell}{Om}\right)\right)\right)\right)\right)\right) \cdot \left(2 \cdot n\right)\right)}^{\frac{1}{2}}\\
\mathbf{elif}\;U \le 2.2093515262227777 \cdot 10^{-301}:\\
\;\;\;\;{\left(\left(t - \left(\ell \cdot 2 + \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right) \cdot n\right) \cdot \frac{\ell}{Om}\right) \cdot \left(U \cdot \left(2 \cdot n\right)\right)\right)}^{\frac{1}{2}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U} \cdot {\left(\left(2 \cdot n\right) \cdot \left(t - \mathsf{fma}\left(\left(\ell \cdot 2\right), \left(\frac{\ell}{Om}\right), \left(\left(U - U*\right) \cdot \left(\frac{\ell}{Om} \cdot \left(n \cdot \frac{\ell}{Om}\right)\right)\right)\right)\right)\right)}^{\frac{1}{2}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r15011034 = 2.0;
double r15011035 = n;
double r15011036 = r15011034 * r15011035;
double r15011037 = U;
double r15011038 = r15011036 * r15011037;
double r15011039 = t;
double r15011040 = l;
double r15011041 = r15011040 * r15011040;
double r15011042 = Om;
double r15011043 = r15011041 / r15011042;
double r15011044 = r15011034 * r15011043;
double r15011045 = r15011039 - r15011044;
double r15011046 = r15011040 / r15011042;
double r15011047 = pow(r15011046, r15011034);
double r15011048 = r15011035 * r15011047;
double r15011049 = U_;
double r15011050 = r15011037 - r15011049;
double r15011051 = r15011048 * r15011050;
double r15011052 = r15011045 - r15011051;
double r15011053 = r15011038 * r15011052;
double r15011054 = sqrt(r15011053);
return r15011054;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r15011055 = U;
double r15011056 = -7122680.873158953;
bool r15011057 = r15011055 <= r15011056;
double r15011058 = t;
double r15011059 = l;
double r15011060 = 2.0;
double r15011061 = r15011059 * r15011060;
double r15011062 = Om;
double r15011063 = r15011059 / r15011062;
double r15011064 = U_;
double r15011065 = r15011055 - r15011064;
double r15011066 = r15011063 * r15011065;
double r15011067 = n;
double r15011068 = r15011066 * r15011067;
double r15011069 = r15011061 + r15011068;
double r15011070 = r15011069 * r15011063;
double r15011071 = r15011058 - r15011070;
double r15011072 = r15011060 * r15011067;
double r15011073 = r15011055 * r15011072;
double r15011074 = r15011071 * r15011073;
double r15011075 = 0.5;
double r15011076 = pow(r15011074, r15011075);
double r15011077 = -1.8663328166415404e-262;
bool r15011078 = r15011055 <= r15011077;
double r15011079 = r15011067 * r15011063;
double r15011080 = r15011063 * r15011079;
double r15011081 = r15011065 * r15011080;
double r15011082 = fma(r15011061, r15011063, r15011081);
double r15011083 = r15011058 - r15011082;
double r15011084 = r15011055 * r15011083;
double r15011085 = r15011084 * r15011072;
double r15011086 = pow(r15011085, r15011075);
double r15011087 = 2.2093515262227777e-301;
bool r15011088 = r15011055 <= r15011087;
double r15011089 = sqrt(r15011055);
double r15011090 = r15011072 * r15011083;
double r15011091 = pow(r15011090, r15011075);
double r15011092 = r15011089 * r15011091;
double r15011093 = r15011088 ? r15011076 : r15011092;
double r15011094 = r15011078 ? r15011086 : r15011093;
double r15011095 = r15011057 ? r15011076 : r15011094;
return r15011095;
}



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 < -7122680.873158953 or -1.8663328166415404e-262 < U < 2.2093515262227777e-301Initial program 32.3
rmApplied *-un-lft-identity32.3
Applied times-frac29.3
Simplified29.3
rmApplied pow129.3
Applied pow129.3
Applied pow129.3
Applied pow-prod-down29.3
Applied pow-prod-down29.3
Applied sqrt-pow129.3
Simplified30.1
rmApplied pow130.1
Applied pow-pow30.1
Simplified29.2
if -7122680.873158953 < U < -1.8663328166415404e-262Initial program 34.7
rmApplied *-un-lft-identity34.7
Applied times-frac31.8
Simplified31.8
rmApplied pow131.8
Applied pow131.8
Applied pow131.8
Applied pow-prod-down31.8
Applied pow-prod-down31.8
Applied sqrt-pow131.8
Simplified30.4
rmApplied associate-*r*27.1
if 2.2093515262227777e-301 < U Initial program 32.8
rmApplied *-un-lft-identity32.8
Applied times-frac30.1
Simplified30.1
rmApplied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Applied sqrt-pow130.1
Simplified29.1
rmApplied unpow-prod-down22.4
Simplified22.4
Final simplification25.3
herbie shell --seed 2019107 +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*))))))