\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(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\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 r178276 = 2.0;
double r178277 = n;
double r178278 = r178276 * r178277;
double r178279 = U;
double r178280 = r178278 * r178279;
double r178281 = t;
double r178282 = l;
double r178283 = r178282 * r178282;
double r178284 = Om;
double r178285 = r178283 / r178284;
double r178286 = r178276 * r178285;
double r178287 = r178281 - r178286;
double r178288 = r178282 / r178284;
double r178289 = pow(r178288, r178276);
double r178290 = r178277 * r178289;
double r178291 = U_;
double r178292 = r178279 - r178291;
double r178293 = r178290 * r178292;
double r178294 = r178287 - r178293;
double r178295 = r178280 * r178294;
double r178296 = sqrt(r178295);
return r178296;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r178297 = t;
double r178298 = -1.9761349830952812e+186;
bool r178299 = r178297 <= r178298;
double r178300 = 2.0;
double r178301 = n;
double r178302 = r178300 * r178301;
double r178303 = U;
double r178304 = l;
double r178305 = Om;
double r178306 = r178305 / r178304;
double r178307 = r178304 / r178306;
double r178308 = r178300 * r178307;
double r178309 = r178297 - r178308;
double r178310 = cbrt(r178304);
double r178311 = r178310 * r178310;
double r178312 = 1.0;
double r178313 = r178311 / r178312;
double r178314 = 2.0;
double r178315 = r178300 / r178314;
double r178316 = pow(r178313, r178315);
double r178317 = r178301 * r178316;
double r178318 = r178310 / r178305;
double r178319 = pow(r178318, r178315);
double r178320 = r178317 * r178319;
double r178321 = r178304 / r178305;
double r178322 = pow(r178321, r178315);
double r178323 = r178320 * r178322;
double r178324 = U_;
double r178325 = r178303 - r178324;
double r178326 = r178323 * r178325;
double r178327 = r178309 - r178326;
double r178328 = r178303 * r178327;
double r178329 = r178302 * r178328;
double r178330 = sqrt(r178329);
double r178331 = -1.3487365281994786e-70;
bool r178332 = r178297 <= r178331;
double r178333 = -r178325;
double r178334 = r178314 * r178315;
double r178335 = pow(r178321, r178334);
double r178336 = r178301 * r178335;
double r178337 = r178333 * r178336;
double r178338 = r178308 - r178337;
double r178339 = r178297 - r178338;
double r178340 = r178302 * r178339;
double r178341 = r178340 * r178303;
double r178342 = pow(r178341, r178312);
double r178343 = sqrt(r178342);
double r178344 = 2.5897331506828896e+20;
bool r178345 = r178297 <= r178344;
double r178346 = r178302 * r178303;
double r178347 = sqrt(r178346);
double r178348 = r178301 * r178322;
double r178349 = r178348 * r178322;
double r178350 = r178349 * r178325;
double r178351 = r178309 - r178350;
double r178352 = sqrt(r178351);
double r178353 = r178347 * r178352;
double r178354 = r178345 ? r178330 : r178353;
double r178355 = r178332 ? r178343 : r178354;
double r178356 = r178299 ? r178330 : r178355;
return r178356;
}



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 +o rules:numerics
(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*))))))