\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}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 0.0:\\
\;\;\;\;\sqrt{U \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{2 \cdot n}\\
\mathbf{elif}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 6.135153741442139648885952268970329687829 \cdot 10^{146}:\\
\;\;\;\;\sqrt{\left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(U - U*\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot n\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) \cdot U\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2774005 = 2.0;
double r2774006 = n;
double r2774007 = r2774005 * r2774006;
double r2774008 = U;
double r2774009 = r2774007 * r2774008;
double r2774010 = t;
double r2774011 = l;
double r2774012 = r2774011 * r2774011;
double r2774013 = Om;
double r2774014 = r2774012 / r2774013;
double r2774015 = r2774005 * r2774014;
double r2774016 = r2774010 - r2774015;
double r2774017 = r2774011 / r2774013;
double r2774018 = pow(r2774017, r2774005);
double r2774019 = r2774006 * r2774018;
double r2774020 = U_;
double r2774021 = r2774008 - r2774020;
double r2774022 = r2774019 * r2774021;
double r2774023 = r2774016 - r2774022;
double r2774024 = r2774009 * r2774023;
double r2774025 = sqrt(r2774024);
return r2774025;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2774026 = 2.0;
double r2774027 = n;
double r2774028 = r2774026 * r2774027;
double r2774029 = U;
double r2774030 = r2774028 * r2774029;
double r2774031 = t;
double r2774032 = l;
double r2774033 = r2774032 * r2774032;
double r2774034 = Om;
double r2774035 = r2774033 / r2774034;
double r2774036 = r2774035 * r2774026;
double r2774037 = r2774031 - r2774036;
double r2774038 = r2774032 / r2774034;
double r2774039 = pow(r2774038, r2774026);
double r2774040 = r2774027 * r2774039;
double r2774041 = U_;
double r2774042 = r2774029 - r2774041;
double r2774043 = r2774040 * r2774042;
double r2774044 = r2774037 - r2774043;
double r2774045 = r2774030 * r2774044;
double r2774046 = sqrt(r2774045);
double r2774047 = 0.0;
bool r2774048 = r2774046 <= r2774047;
double r2774049 = r2774029 * r2774044;
double r2774050 = sqrt(r2774049);
double r2774051 = sqrt(r2774028);
double r2774052 = r2774050 * r2774051;
double r2774053 = 6.13515374144214e+146;
bool r2774054 = r2774046 <= r2774053;
double r2774055 = 2.0;
double r2774056 = r2774026 / r2774055;
double r2774057 = pow(r2774038, r2774056);
double r2774058 = r2774057 * r2774027;
double r2774059 = r2774057 * r2774058;
double r2774060 = r2774042 * r2774059;
double r2774061 = r2774037 - r2774060;
double r2774062 = r2774061 * r2774030;
double r2774063 = sqrt(r2774062);
double r2774064 = r2774034 / r2774032;
double r2774065 = r2774032 / r2774064;
double r2774066 = r2774026 * r2774065;
double r2774067 = r2774031 - r2774066;
double r2774068 = r2774067 * r2774029;
double r2774069 = r2774028 * r2774068;
double r2774070 = sqrt(r2774069);
double r2774071 = r2774054 ? r2774063 : r2774070;
double r2774072 = r2774048 ? r2774052 : r2774071;
return r2774072;
}



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 (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))) < 0.0Initial program 56.9
rmApplied associate-*l*38.3
rmApplied sqrt-prod37.6
if 0.0 < (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))) < 6.13515374144214e+146Initial program 1.6
rmApplied sqr-pow1.6
Applied associate-*r*1.1
if 6.13515374144214e+146 < (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))) Initial program 62.9
rmApplied associate-*l*61.7
rmApplied associate-/l*54.9
Taylor expanded around 0 53.3
Final simplification27.6
herbie shell --seed 2019169
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))