\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}\;n \le 3.267507094638271513092036819515301596094 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(U - U*\right) \cdot \left(\left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot n\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot \frac{2}{2}}{2}\right)}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r177302 = 2.0;
double r177303 = n;
double r177304 = r177302 * r177303;
double r177305 = U;
double r177306 = r177304 * r177305;
double r177307 = t;
double r177308 = l;
double r177309 = r177308 * r177308;
double r177310 = Om;
double r177311 = r177309 / r177310;
double r177312 = r177302 * r177311;
double r177313 = r177307 - r177312;
double r177314 = r177308 / r177310;
double r177315 = pow(r177314, r177302);
double r177316 = r177303 * r177315;
double r177317 = U_;
double r177318 = r177305 - r177317;
double r177319 = r177316 * r177318;
double r177320 = r177313 - r177319;
double r177321 = r177306 * r177320;
double r177322 = sqrt(r177321);
return r177322;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r177323 = n;
double r177324 = 3.2675070946382715e-308;
bool r177325 = r177323 <= r177324;
double r177326 = 2.0;
double r177327 = r177326 * r177323;
double r177328 = U;
double r177329 = t;
double r177330 = l;
double r177331 = Om;
double r177332 = r177331 / r177330;
double r177333 = r177330 / r177332;
double r177334 = r177326 * r177333;
double r177335 = r177329 - r177334;
double r177336 = U_;
double r177337 = r177328 - r177336;
double r177338 = r177330 / r177331;
double r177339 = 2.0;
double r177340 = r177326 / r177339;
double r177341 = pow(r177338, r177340);
double r177342 = r177341 * r177323;
double r177343 = r177339 * r177340;
double r177344 = r177343 / r177339;
double r177345 = pow(r177338, r177344);
double r177346 = r177342 * r177345;
double r177347 = r177337 * r177346;
double r177348 = r177335 - r177347;
double r177349 = r177328 * r177348;
double r177350 = r177327 * r177349;
double r177351 = sqrt(r177350);
double r177352 = sqrt(r177327);
double r177353 = pow(r177338, r177343);
double r177354 = r177323 * r177353;
double r177355 = r177337 * r177354;
double r177356 = r177335 - r177355;
double r177357 = r177328 * r177356;
double r177358 = sqrt(r177357);
double r177359 = r177352 * r177358;
double r177360 = r177325 ? r177351 : r177359;
return r177360;
}



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 n < 3.2675070946382715e-308Initial program 35.0
rmApplied associate-/l*32.2
rmApplied sqr-pow32.2
Applied associate-*r*31.5
rmApplied associate-*l*30.9
Simplified31.8
rmApplied sqr-pow31.8
Applied associate-*r*30.9
Simplified30.9
if 3.2675070946382715e-308 < n Initial program 34.8
rmApplied associate-/l*31.8
rmApplied sqr-pow31.8
Applied associate-*r*31.0
rmApplied associate-*l*31.1
Simplified32.1
rmApplied sqrt-prod24.7
Final simplification27.8
herbie shell --seed 2019323
(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*))))))