\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 r218216 = 2.0;
double r218217 = n;
double r218218 = r218216 * r218217;
double r218219 = U;
double r218220 = r218218 * r218219;
double r218221 = t;
double r218222 = l;
double r218223 = r218222 * r218222;
double r218224 = Om;
double r218225 = r218223 / r218224;
double r218226 = r218216 * r218225;
double r218227 = r218221 - r218226;
double r218228 = r218222 / r218224;
double r218229 = pow(r218228, r218216);
double r218230 = r218217 * r218229;
double r218231 = U_;
double r218232 = r218219 - r218231;
double r218233 = r218230 * r218232;
double r218234 = r218227 - r218233;
double r218235 = r218220 * r218234;
double r218236 = sqrt(r218235);
return r218236;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r218237 = t;
double r218238 = -1.9761349830952812e+186;
bool r218239 = r218237 <= r218238;
double r218240 = 2.0;
double r218241 = n;
double r218242 = r218240 * r218241;
double r218243 = U;
double r218244 = l;
double r218245 = Om;
double r218246 = r218245 / r218244;
double r218247 = r218244 / r218246;
double r218248 = r218240 * r218247;
double r218249 = r218237 - r218248;
double r218250 = cbrt(r218244);
double r218251 = r218250 * r218250;
double r218252 = 1.0;
double r218253 = r218251 / r218252;
double r218254 = 2.0;
double r218255 = r218240 / r218254;
double r218256 = pow(r218253, r218255);
double r218257 = r218241 * r218256;
double r218258 = r218250 / r218245;
double r218259 = pow(r218258, r218255);
double r218260 = r218257 * r218259;
double r218261 = r218244 / r218245;
double r218262 = pow(r218261, r218255);
double r218263 = r218260 * r218262;
double r218264 = U_;
double r218265 = r218243 - r218264;
double r218266 = r218263 * r218265;
double r218267 = r218249 - r218266;
double r218268 = r218243 * r218267;
double r218269 = r218242 * r218268;
double r218270 = sqrt(r218269);
double r218271 = -1.3487365281994786e-70;
bool r218272 = r218237 <= r218271;
double r218273 = r218254 * r218255;
double r218274 = pow(r218261, r218273);
double r218275 = r218241 * r218274;
double r218276 = -r218275;
double r218277 = r218276 * r218265;
double r218278 = r218248 - r218277;
double r218279 = r218237 - r218278;
double r218280 = r218242 * r218279;
double r218281 = r218280 * r218243;
double r218282 = pow(r218281, r218252);
double r218283 = sqrt(r218282);
double r218284 = 2.5897331506828896e+20;
bool r218285 = r218237 <= r218284;
double r218286 = r218242 * r218243;
double r218287 = sqrt(r218286);
double r218288 = r218241 * r218262;
double r218289 = r218288 * r218262;
double r218290 = r218289 * r218265;
double r218291 = r218249 - r218290;
double r218292 = sqrt(r218291);
double r218293 = r218287 * r218292;
double r218294 = r218285 ? r218270 : r218293;
double r218295 = r218272 ? r218283 : r218294;
double r218296 = r218239 ? r218270 : r218295;
return r218296;
}



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*))))))