\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}\;t \le -2.214046473047511182262273069897395979677 \cdot 10^{201} \lor t \le -6.212072691974284363372137380706930578219 \cdot 10^{-200}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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)}\\
\mathbf{elif}\;t \le 5.824775899044275048393983934519217716302 \cdot 10^{-226} \lor t \le 436193475525558403072:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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)}\\
\mathbf{elif}\;t \le 1.976343330438959153714939343152765464593 \cdot 10^{262}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell}{\frac{Om}{\ell}} - \left(-\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot \frac{2}{2}}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot \frac{2}{2}}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r233994 = 2.0;
double r233995 = n;
double r233996 = r233994 * r233995;
double r233997 = U;
double r233998 = r233996 * r233997;
double r233999 = t;
double r234000 = l;
double r234001 = r234000 * r234000;
double r234002 = Om;
double r234003 = r234001 / r234002;
double r234004 = r233994 * r234003;
double r234005 = r233999 - r234004;
double r234006 = r234000 / r234002;
double r234007 = pow(r234006, r233994);
double r234008 = r233995 * r234007;
double r234009 = U_;
double r234010 = r233997 - r234009;
double r234011 = r234008 * r234010;
double r234012 = r234005 - r234011;
double r234013 = r233998 * r234012;
double r234014 = sqrt(r234013);
return r234014;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r234015 = t;
double r234016 = -2.2140464730475112e+201;
bool r234017 = r234015 <= r234016;
double r234018 = -6.212072691974284e-200;
bool r234019 = r234015 <= r234018;
bool r234020 = r234017 || r234019;
double r234021 = 2.0;
double r234022 = n;
double r234023 = r234021 * r234022;
double r234024 = U;
double r234025 = r234023 * r234024;
double r234026 = l;
double r234027 = Om;
double r234028 = r234027 / r234026;
double r234029 = r234026 / r234028;
double r234030 = r234021 * r234029;
double r234031 = r234015 - r234030;
double r234032 = r234026 / r234027;
double r234033 = 2.0;
double r234034 = r234021 / r234033;
double r234035 = pow(r234032, r234034);
double r234036 = r234022 * r234035;
double r234037 = U_;
double r234038 = r234024 - r234037;
double r234039 = r234035 * r234038;
double r234040 = r234036 * r234039;
double r234041 = r234031 - r234040;
double r234042 = r234025 * r234041;
double r234043 = sqrt(r234042);
double r234044 = 5.824775899044275e-226;
bool r234045 = r234015 <= r234044;
double r234046 = 4.361934755255584e+20;
bool r234047 = r234015 <= r234046;
bool r234048 = r234045 || r234047;
double r234049 = 1.976343330438959e+262;
bool r234050 = r234015 <= r234049;
double r234051 = r234033 * r234034;
double r234052 = r234051 / r234033;
double r234053 = pow(r234032, r234052);
double r234054 = r234022 * r234053;
double r234055 = r234054 * r234053;
double r234056 = -r234055;
double r234057 = r234056 * r234038;
double r234058 = r234030 - r234057;
double r234059 = r234015 - r234058;
double r234060 = r234023 * r234059;
double r234061 = r234060 * r234024;
double r234062 = 1.0;
double r234063 = pow(r234061, r234062);
double r234064 = sqrt(r234063);
double r234065 = sqrt(r234025);
double r234066 = r234036 * r234035;
double r234067 = r234066 * r234038;
double r234068 = r234031 - r234067;
double r234069 = sqrt(r234068);
double r234070 = r234065 * r234069;
double r234071 = r234050 ? r234064 : r234070;
double r234072 = r234048 ? r234043 : r234071;
double r234073 = r234020 ? r234043 : r234072;
return r234073;
}



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 t < -2.2140464730475112e+201 or -6.212072691974284e-200 < t < 5.824775899044275e-226 or 4.361934755255584e+20 < t < 1.976343330438959e+262Initial program 36.1
rmApplied associate-/l*33.4
rmApplied sqr-pow33.4
Applied associate-*r*32.8
rmApplied pow132.8
Applied pow132.8
Applied pow132.8
Applied pow132.8
Applied pow-prod-down32.8
Applied pow-prod-down32.8
Applied pow-prod-down32.8
Simplified33.1
rmApplied sqr-pow33.1
Applied associate-*r*32.0
if -2.2140464730475112e+201 < t < -6.212072691974284e-200 or 5.824775899044275e-226 < t < 4.361934755255584e+20Initial program 33.0
rmApplied associate-/l*30.5
rmApplied sqr-pow30.5
Applied associate-*r*29.6
rmApplied associate-*l*29.3
if 1.976343330438959e+262 < t Initial program 42.1
rmApplied associate-/l*40.3
rmApplied sqr-pow40.3
Applied associate-*r*40.1
rmApplied sqrt-prod22.0
Final simplification30.2
herbie shell --seed 2019294
(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*))))))