\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 3.611795465534092865879445603817847820396 \cdot 10^{-116}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;t \le 1.148252882788697722623666745827787001253 \cdot 10^{101}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(2 \cdot n\right) \cdot \left(\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot U\right)} \cdot \sqrt[3]{\left(2 \cdot n\right) \cdot \left(\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot U\right)}\right) \cdot \sqrt[3]{\left(2 \cdot n\right) \cdot \left(\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot U\right)}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r104305 = 2.0;
double r104306 = n;
double r104307 = r104305 * r104306;
double r104308 = U;
double r104309 = r104307 * r104308;
double r104310 = t;
double r104311 = l;
double r104312 = r104311 * r104311;
double r104313 = Om;
double r104314 = r104312 / r104313;
double r104315 = r104305 * r104314;
double r104316 = r104310 - r104315;
double r104317 = r104311 / r104313;
double r104318 = pow(r104317, r104305);
double r104319 = r104306 * r104318;
double r104320 = U_;
double r104321 = r104308 - r104320;
double r104322 = r104319 * r104321;
double r104323 = r104316 - r104322;
double r104324 = r104309 * r104323;
double r104325 = sqrt(r104324);
return r104325;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r104326 = t;
double r104327 = 3.611795465534093e-116;
bool r104328 = r104326 <= r104327;
double r104329 = 2.0;
double r104330 = l;
double r104331 = Om;
double r104332 = r104331 / r104330;
double r104333 = r104330 / r104332;
double r104334 = n;
double r104335 = r104330 / r104331;
double r104336 = 2.0;
double r104337 = r104329 / r104336;
double r104338 = pow(r104335, r104337);
double r104339 = r104334 * r104338;
double r104340 = U;
double r104341 = U_;
double r104342 = r104340 - r104341;
double r104343 = r104342 * r104338;
double r104344 = r104339 * r104343;
double r104345 = fma(r104329, r104333, r104344);
double r104346 = r104326 - r104345;
double r104347 = r104329 * r104334;
double r104348 = r104347 * r104340;
double r104349 = r104346 * r104348;
double r104350 = sqrt(r104349);
double r104351 = 1.1482528827886977e+101;
bool r104352 = r104326 <= r104351;
double r104353 = r104336 * r104337;
double r104354 = pow(r104335, r104353);
double r104355 = r104354 * r104334;
double r104356 = r104355 * r104342;
double r104357 = fma(r104329, r104333, r104356);
double r104358 = r104326 - r104357;
double r104359 = r104358 * r104340;
double r104360 = r104347 * r104359;
double r104361 = cbrt(r104360);
double r104362 = r104361 * r104361;
double r104363 = r104362 * r104361;
double r104364 = sqrt(r104363);
double r104365 = sqrt(r104358);
double r104366 = sqrt(r104348);
double r104367 = r104365 * r104366;
double r104368 = r104352 ? r104364 : r104367;
double r104369 = r104328 ? r104350 : r104368;
return r104369;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if t < 3.611795465534093e-116Initial program 34.0
Simplified34.0
rmApplied associate-/l*31.3
rmApplied sqr-pow31.3
Applied associate-*r*30.4
rmApplied associate-*l*30.2
Simplified30.2
if 3.611795465534093e-116 < t < 1.1482528827886977e+101Initial program 30.3
Simplified30.3
rmApplied associate-/l*27.2
rmApplied sqr-pow27.2
Applied associate-*r*26.5
rmApplied associate-*l*26.4
Simplified26.4
rmApplied add-cube-cbrt26.8
Simplified28.9
Simplified27.1
if 1.1482528827886977e+101 < t Initial program 35.5
Simplified35.5
rmApplied associate-/l*33.2
rmApplied sqr-pow33.2
Applied associate-*r*32.9
rmApplied associate-*l*33.0
Simplified33.0
rmApplied sqrt-prod22.8
Simplified22.9
Final simplification28.3
herbie shell --seed 2019208 +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*))))))