\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 -9.422947167583051961821239451488524021954 \cdot 10^{-260}:\\
\;\;\;\;{\left(\sqrt[3]{\mathsf{fma}\left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}, n \cdot \left(U* - U\right), \mathsf{fma}\left(\left(-2\right) \cdot \ell, \frac{\ell}{Om}, t\right)\right)} \cdot \sqrt[3]{U \cdot \left(2 \cdot n\right)}\right)}^{\frac{3}{2}}\\
\mathbf{elif}\;n \le 2.598149486260100212883263141948192542387 \cdot 10^{-273}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(t \cdot U, 2 \cdot n, \frac{\left(-\ell \cdot \ell\right) \cdot n}{\frac{Om}{U}} \cdot 4\right)}\\
\mathbf{elif}\;n \le 3.33490110259219064400249536435033242418 \cdot 10^{-187}:\\
\;\;\;\;{\left(\sqrt[3]{\mathsf{fma}\left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}, n \cdot \left(U* - U\right), \mathsf{fma}\left(\left(-2\right) \cdot \ell, \frac{\ell}{Om}, t\right)\right)} \cdot \sqrt[3]{U \cdot \left(2 \cdot n\right)}\right)}^{\frac{3}{2}}\\
\mathbf{elif}\;n \le 1.407519843109883897735864030283250356428 \cdot 10^{-104}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(t \cdot U, 2 \cdot n, \frac{\left(-\ell \cdot \ell\right) \cdot n}{\frac{Om}{U}} \cdot 4\right)}\\
\mathbf{elif}\;n \le 7.962768658598781395526822537989097838818 \cdot 10^{-7}:\\
\;\;\;\;{\left(\sqrt[3]{\mathsf{fma}\left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}, n \cdot \left(U* - U\right), \mathsf{fma}\left(\left(-2\right) \cdot \ell, \frac{\ell}{Om}, t\right)\right)} \cdot \sqrt[3]{U \cdot \left(2 \cdot n\right)}\right)}^{\frac{3}{2}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(U \cdot \left(2 \cdot n\right)\right) \cdot \mathsf{fma}\left(U* - U, \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)}, \mathsf{fma}\left(\ell \cdot \frac{\ell}{Om}, -2, t\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r161374 = 2.0;
double r161375 = n;
double r161376 = r161374 * r161375;
double r161377 = U;
double r161378 = r161376 * r161377;
double r161379 = t;
double r161380 = l;
double r161381 = r161380 * r161380;
double r161382 = Om;
double r161383 = r161381 / r161382;
double r161384 = r161374 * r161383;
double r161385 = r161379 - r161384;
double r161386 = r161380 / r161382;
double r161387 = pow(r161386, r161374);
double r161388 = r161375 * r161387;
double r161389 = U_;
double r161390 = r161377 - r161389;
double r161391 = r161388 * r161390;
double r161392 = r161385 - r161391;
double r161393 = r161378 * r161392;
double r161394 = sqrt(r161393);
return r161394;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r161395 = n;
double r161396 = -9.422947167583052e-260;
bool r161397 = r161395 <= r161396;
double r161398 = l;
double r161399 = Om;
double r161400 = r161398 / r161399;
double r161401 = 2.0;
double r161402 = 2.0;
double r161403 = r161402 / r161401;
double r161404 = r161401 * r161403;
double r161405 = pow(r161400, r161404);
double r161406 = U_;
double r161407 = U;
double r161408 = r161406 - r161407;
double r161409 = r161395 * r161408;
double r161410 = -r161402;
double r161411 = r161410 * r161398;
double r161412 = t;
double r161413 = fma(r161411, r161400, r161412);
double r161414 = fma(r161405, r161409, r161413);
double r161415 = cbrt(r161414);
double r161416 = r161402 * r161395;
double r161417 = r161407 * r161416;
double r161418 = cbrt(r161417);
double r161419 = r161415 * r161418;
double r161420 = 1.5;
double r161421 = pow(r161419, r161420);
double r161422 = 2.5981494862601002e-273;
bool r161423 = r161395 <= r161422;
double r161424 = r161412 * r161407;
double r161425 = r161398 * r161398;
double r161426 = -r161425;
double r161427 = r161426 * r161395;
double r161428 = r161399 / r161407;
double r161429 = r161427 / r161428;
double r161430 = 4.0;
double r161431 = r161429 * r161430;
double r161432 = fma(r161424, r161416, r161431);
double r161433 = sqrt(r161432);
double r161434 = 3.3349011025921906e-187;
bool r161435 = r161395 <= r161434;
double r161436 = 1.407519843109884e-104;
bool r161437 = r161395 <= r161436;
double r161438 = 7.962768658598781e-07;
bool r161439 = r161395 <= r161438;
double r161440 = pow(r161400, r161403);
double r161441 = r161395 * r161440;
double r161442 = r161441 * r161440;
double r161443 = r161398 * r161400;
double r161444 = fma(r161443, r161410, r161412);
double r161445 = fma(r161408, r161442, r161444);
double r161446 = r161417 * r161445;
double r161447 = sqrt(r161446);
double r161448 = r161439 ? r161421 : r161447;
double r161449 = r161437 ? r161433 : r161448;
double r161450 = r161435 ? r161421 : r161449;
double r161451 = r161423 ? r161433 : r161450;
double r161452 = r161397 ? r161421 : r161451;
return r161452;
}



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 n < -9.422947167583052e-260 or 2.5981494862601002e-273 < n < 3.3349011025921906e-187 or 1.407519843109884e-104 < n < 7.962768658598781e-07Initial program 33.8
Simplified31.1
rmApplied sqr-pow31.1
Applied associate-*r*30.2
rmApplied add-cube-cbrt30.5
Simplified31.4
Simplified31.4
rmApplied pow131.4
Applied pow131.4
Applied pow131.4
Applied pow-prod-up31.4
Applied pow-prod-up31.4
Applied sqrt-pow131.4
Simplified31.4
rmApplied cbrt-prod24.1
Simplified24.1
Simplified26.1
if -9.422947167583052e-260 < n < 2.5981494862601002e-273 or 3.3349011025921906e-187 < n < 1.407519843109884e-104Initial program 38.8
Simplified35.7
rmApplied sqr-pow35.7
Applied associate-*r*35.0
Taylor expanded around inf 37.4
Simplified36.6
if 7.962768658598781e-07 < n Initial program 33.4
Simplified31.2
rmApplied sqr-pow31.2
Applied associate-*r*30.2
Final simplification28.7
herbie shell --seed 2019195 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))