\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 -4.579846573878255 \cdot 10^{170}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\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)}\\
\mathbf{elif}\;n \le -9.1730180109330935 \cdot 10^{-133}:\\
\;\;\;\;\sqrt{1 \cdot \left(\left(2 \cdot n\right) \cdot \left(U \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)}\\
\mathbf{elif}\;n \le -3.37883772685991123 \cdot 10^{-162}:\\
\;\;\;\;\sqrt{1 \cdot \left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\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)\right)\right)}\\
\mathbf{elif}\;n \le 1.8079991333180533 \cdot 10^{-150}:\\
\;\;\;\;\sqrt{1 \cdot {\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{1 \cdot \left(\left(2 \cdot n\right) \cdot \left(U \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r208491 = 2.0;
double r208492 = n;
double r208493 = r208491 * r208492;
double r208494 = U;
double r208495 = r208493 * r208494;
double r208496 = t;
double r208497 = l;
double r208498 = r208497 * r208497;
double r208499 = Om;
double r208500 = r208498 / r208499;
double r208501 = r208491 * r208500;
double r208502 = r208496 - r208501;
double r208503 = r208497 / r208499;
double r208504 = pow(r208503, r208491);
double r208505 = r208492 * r208504;
double r208506 = U_;
double r208507 = r208494 - r208506;
double r208508 = r208505 * r208507;
double r208509 = r208502 - r208508;
double r208510 = r208495 * r208509;
double r208511 = sqrt(r208510);
return r208511;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r208512 = n;
double r208513 = -4.5798465738782547e+170;
bool r208514 = r208512 <= r208513;
double r208515 = 2.0;
double r208516 = r208515 * r208512;
double r208517 = U;
double r208518 = r208516 * r208517;
double r208519 = sqrt(r208518);
double r208520 = t;
double r208521 = l;
double r208522 = Om;
double r208523 = r208521 / r208522;
double r208524 = r208521 * r208523;
double r208525 = r208515 * r208524;
double r208526 = r208520 - r208525;
double r208527 = 2.0;
double r208528 = r208515 / r208527;
double r208529 = pow(r208523, r208528);
double r208530 = r208512 * r208529;
double r208531 = r208530 * r208529;
double r208532 = U_;
double r208533 = r208517 - r208532;
double r208534 = r208531 * r208533;
double r208535 = r208526 - r208534;
double r208536 = sqrt(r208535);
double r208537 = r208519 * r208536;
double r208538 = -9.173018010933093e-133;
bool r208539 = r208512 <= r208538;
double r208540 = 1.0;
double r208541 = r208527 * r208528;
double r208542 = pow(r208523, r208541);
double r208543 = r208512 * r208542;
double r208544 = -r208543;
double r208545 = r208544 * r208533;
double r208546 = r208525 - r208545;
double r208547 = r208520 - r208546;
double r208548 = r208517 * r208547;
double r208549 = r208516 * r208548;
double r208550 = r208540 * r208549;
double r208551 = sqrt(r208550);
double r208552 = -3.378837726859911e-162;
bool r208553 = r208512 <= r208552;
double r208554 = r208518 * r208535;
double r208555 = r208540 * r208554;
double r208556 = sqrt(r208555);
double r208557 = 1.8079991333180533e-150;
bool r208558 = r208512 <= r208557;
double r208559 = r208516 * r208547;
double r208560 = r208559 * r208517;
double r208561 = pow(r208560, r208540);
double r208562 = r208540 * r208561;
double r208563 = sqrt(r208562);
double r208564 = r208558 ? r208563 : r208551;
double r208565 = r208553 ? r208556 : r208564;
double r208566 = r208539 ? r208551 : r208565;
double r208567 = r208514 ? r208537 : r208566;
return r208567;
}



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 < -4.5798465738782547e+170Initial program 39.0
rmApplied *-un-lft-identity39.0
Applied times-frac38.0
Simplified38.0
rmApplied sqr-pow38.0
Applied associate-*r*35.8
rmApplied sqrt-prod46.0
if -4.5798465738782547e+170 < n < -9.173018010933093e-133 or 1.8079991333180533e-150 < n Initial program 31.2
rmApplied *-un-lft-identity31.2
Applied times-frac28.3
Simplified28.3
rmApplied sqr-pow28.3
Applied associate-*r*27.4
rmApplied *-un-lft-identity27.4
rmApplied associate-*l*27.7
Simplified28.7
if -9.173018010933093e-133 < n < -3.378837726859911e-162Initial program 33.4
rmApplied *-un-lft-identity33.4
Applied times-frac30.0
Simplified30.0
rmApplied sqr-pow30.0
Applied associate-*r*29.9
rmApplied *-un-lft-identity29.9
if -3.378837726859911e-162 < n < 1.8079991333180533e-150Initial program 39.7
rmApplied *-un-lft-identity39.7
Applied times-frac37.1
Simplified37.1
rmApplied sqr-pow37.1
Applied associate-*r*36.4
rmApplied *-un-lft-identity36.4
rmApplied pow136.4
Applied pow136.4
Applied pow136.4
Applied pow136.4
Applied pow-prod-down36.4
Applied pow-prod-down36.4
Applied pow-prod-down36.4
Simplified31.2
Final simplification30.7
herbie shell --seed 2020056
(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*))))))