\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 -1.976134983095281222500639438484837269871 \cdot 10^{186}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(\left(n \cdot {\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{1}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{\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)}\\
\mathbf{elif}\;t \le -1.348736528199478592142088546342992390382 \cdot 10^{-70}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell}{\frac{Om}{\ell}} - \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}}\\
\mathbf{elif}\;t \le 258973315068288958464:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(\left(n \cdot {\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{1}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{\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)}\\
\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 r218068 = 2.0;
double r218069 = n;
double r218070 = r218068 * r218069;
double r218071 = U;
double r218072 = r218070 * r218071;
double r218073 = t;
double r218074 = l;
double r218075 = r218074 * r218074;
double r218076 = Om;
double r218077 = r218075 / r218076;
double r218078 = r218068 * r218077;
double r218079 = r218073 - r218078;
double r218080 = r218074 / r218076;
double r218081 = pow(r218080, r218068);
double r218082 = r218069 * r218081;
double r218083 = U_;
double r218084 = r218071 - r218083;
double r218085 = r218082 * r218084;
double r218086 = r218079 - r218085;
double r218087 = r218072 * r218086;
double r218088 = sqrt(r218087);
return r218088;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r218089 = t;
double r218090 = -1.9761349830952812e+186;
bool r218091 = r218089 <= r218090;
double r218092 = 2.0;
double r218093 = n;
double r218094 = r218092 * r218093;
double r218095 = U;
double r218096 = l;
double r218097 = Om;
double r218098 = r218097 / r218096;
double r218099 = r218096 / r218098;
double r218100 = r218092 * r218099;
double r218101 = r218089 - r218100;
double r218102 = cbrt(r218096);
double r218103 = r218102 * r218102;
double r218104 = 1.0;
double r218105 = r218103 / r218104;
double r218106 = 2.0;
double r218107 = r218092 / r218106;
double r218108 = pow(r218105, r218107);
double r218109 = r218093 * r218108;
double r218110 = r218102 / r218097;
double r218111 = pow(r218110, r218107);
double r218112 = r218109 * r218111;
double r218113 = r218096 / r218097;
double r218114 = pow(r218113, r218107);
double r218115 = r218112 * r218114;
double r218116 = U_;
double r218117 = r218095 - r218116;
double r218118 = r218115 * r218117;
double r218119 = r218101 - r218118;
double r218120 = r218095 * r218119;
double r218121 = r218094 * r218120;
double r218122 = sqrt(r218121);
double r218123 = -1.3487365281994786e-70;
bool r218124 = r218089 <= r218123;
double r218125 = r218106 * r218107;
double r218126 = pow(r218113, r218125);
double r218127 = r218093 * r218126;
double r218128 = -r218127;
double r218129 = r218128 * r218117;
double r218130 = r218100 - r218129;
double r218131 = r218089 - r218130;
double r218132 = r218094 * r218131;
double r218133 = r218132 * r218095;
double r218134 = pow(r218133, r218104);
double r218135 = sqrt(r218134);
double r218136 = 2.5897331506828896e+20;
bool r218137 = r218089 <= r218136;
double r218138 = r218094 * r218095;
double r218139 = sqrt(r218138);
double r218140 = r218093 * r218114;
double r218141 = r218140 * r218114;
double r218142 = r218141 * r218117;
double r218143 = r218101 - r218142;
double r218144 = sqrt(r218143);
double r218145 = r218139 * r218144;
double r218146 = r218137 ? r218122 : r218145;
double r218147 = r218124 ? r218135 : r218146;
double r218148 = r218091 ? r218122 : r218147;
return r218148;
}



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 < -1.9761349830952812e+186 or -1.3487365281994786e-70 < t < 2.5897331506828896e+20Initial program 35.7
rmApplied associate-/l*33.3
rmApplied sqr-pow33.3
Applied associate-*r*32.2
rmApplied *-un-lft-identity32.2
Applied add-cube-cbrt32.3
Applied times-frac32.3
Applied unpow-prod-down32.3
Applied associate-*r*32.8
rmApplied associate-*l*32.3
if -1.9761349830952812e+186 < t < -1.3487365281994786e-70Initial program 30.1
rmApplied associate-/l*28.0
rmApplied sqr-pow28.0
Applied associate-*r*27.3
rmApplied pow127.3
Applied pow127.3
Applied pow127.3
Applied pow127.3
Applied pow-prod-down27.3
Applied pow-prod-down27.3
Applied pow-prod-down27.3
Simplified26.8
if 2.5897331506828896e+20 < t Initial program 34.6
rmApplied associate-/l*32.2
rmApplied sqr-pow32.2
Applied associate-*r*31.7
rmApplied sqrt-prod25.7
Final simplification29.5
herbie shell --seed 2020001
(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*))))))