\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 r178261 = 2.0;
double r178262 = n;
double r178263 = r178261 * r178262;
double r178264 = U;
double r178265 = r178263 * r178264;
double r178266 = t;
double r178267 = l;
double r178268 = r178267 * r178267;
double r178269 = Om;
double r178270 = r178268 / r178269;
double r178271 = r178261 * r178270;
double r178272 = r178266 - r178271;
double r178273 = r178267 / r178269;
double r178274 = pow(r178273, r178261);
double r178275 = r178262 * r178274;
double r178276 = U_;
double r178277 = r178264 - r178276;
double r178278 = r178275 * r178277;
double r178279 = r178272 - r178278;
double r178280 = r178265 * r178279;
double r178281 = sqrt(r178280);
return r178281;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r178282 = t;
double r178283 = -1.9761349830952812e+186;
bool r178284 = r178282 <= r178283;
double r178285 = 2.0;
double r178286 = n;
double r178287 = r178285 * r178286;
double r178288 = U;
double r178289 = l;
double r178290 = Om;
double r178291 = r178290 / r178289;
double r178292 = r178289 / r178291;
double r178293 = r178285 * r178292;
double r178294 = r178282 - r178293;
double r178295 = cbrt(r178289);
double r178296 = r178295 * r178295;
double r178297 = 1.0;
double r178298 = r178296 / r178297;
double r178299 = 2.0;
double r178300 = r178285 / r178299;
double r178301 = pow(r178298, r178300);
double r178302 = r178286 * r178301;
double r178303 = r178295 / r178290;
double r178304 = pow(r178303, r178300);
double r178305 = r178302 * r178304;
double r178306 = r178289 / r178290;
double r178307 = pow(r178306, r178300);
double r178308 = r178305 * r178307;
double r178309 = U_;
double r178310 = r178288 - r178309;
double r178311 = r178308 * r178310;
double r178312 = r178294 - r178311;
double r178313 = r178288 * r178312;
double r178314 = r178287 * r178313;
double r178315 = sqrt(r178314);
double r178316 = -1.3487365281994786e-70;
bool r178317 = r178282 <= r178316;
double r178318 = -r178310;
double r178319 = r178299 * r178300;
double r178320 = pow(r178306, r178319);
double r178321 = r178286 * r178320;
double r178322 = r178318 * r178321;
double r178323 = r178293 - r178322;
double r178324 = r178282 - r178323;
double r178325 = r178287 * r178324;
double r178326 = r178325 * r178288;
double r178327 = pow(r178326, r178297);
double r178328 = sqrt(r178327);
double r178329 = 2.5897331506828896e+20;
bool r178330 = r178282 <= r178329;
double r178331 = r178287 * r178288;
double r178332 = sqrt(r178331);
double r178333 = r178286 * r178307;
double r178334 = r178333 * r178307;
double r178335 = r178334 * r178310;
double r178336 = r178294 - r178335;
double r178337 = sqrt(r178336);
double r178338 = r178332 * r178337;
double r178339 = r178330 ? r178315 : r178338;
double r178340 = r178317 ? r178328 : r178339;
double r178341 = r178284 ? r178315 : r178340;
return r178341;
}



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