\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{\left(2 \cdot n\right) \cdot \left(U \cdot \left(t + \left(-\mathsf{fma}\left(\ell, \frac{\ell}{Om} \cdot 2, \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right)\right)}\\
\mathbf{elif}\;n \le -3.37883772685991123 \cdot 10^{-162}:\\
\;\;\;\;\sqrt{\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(\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)}^{1}\right)}\\
\mathbf{elif}\;n \le 1.8079991333180533 \cdot 10^{-150}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \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{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(t + \left(-\mathsf{fma}\left(\ell, \frac{\ell}{Om} \cdot 2, \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r204600 = 2.0;
double r204601 = n;
double r204602 = r204600 * r204601;
double r204603 = U;
double r204604 = r204602 * r204603;
double r204605 = t;
double r204606 = l;
double r204607 = r204606 * r204606;
double r204608 = Om;
double r204609 = r204607 / r204608;
double r204610 = r204600 * r204609;
double r204611 = r204605 - r204610;
double r204612 = r204606 / r204608;
double r204613 = pow(r204612, r204600);
double r204614 = r204601 * r204613;
double r204615 = U_;
double r204616 = r204603 - r204615;
double r204617 = r204614 * r204616;
double r204618 = r204611 - r204617;
double r204619 = r204604 * r204618;
double r204620 = sqrt(r204619);
return r204620;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r204621 = n;
double r204622 = -4.5798465738782547e+170;
bool r204623 = r204621 <= r204622;
double r204624 = 2.0;
double r204625 = r204624 * r204621;
double r204626 = U;
double r204627 = r204625 * r204626;
double r204628 = sqrt(r204627);
double r204629 = t;
double r204630 = l;
double r204631 = Om;
double r204632 = r204630 / r204631;
double r204633 = r204630 * r204632;
double r204634 = r204624 * r204633;
double r204635 = r204629 - r204634;
double r204636 = 2.0;
double r204637 = r204624 / r204636;
double r204638 = pow(r204632, r204637);
double r204639 = r204621 * r204638;
double r204640 = r204639 * r204638;
double r204641 = U_;
double r204642 = r204626 - r204641;
double r204643 = r204640 * r204642;
double r204644 = r204635 - r204643;
double r204645 = sqrt(r204644);
double r204646 = r204628 * r204645;
double r204647 = -9.173018010933093e-133;
bool r204648 = r204621 <= r204647;
double r204649 = r204632 * r204624;
double r204650 = r204636 * r204637;
double r204651 = pow(r204632, r204650);
double r204652 = r204621 * r204651;
double r204653 = r204642 * r204652;
double r204654 = fma(r204630, r204649, r204653);
double r204655 = -r204654;
double r204656 = r204629 + r204655;
double r204657 = r204626 * r204656;
double r204658 = r204625 * r204657;
double r204659 = sqrt(r204658);
double r204660 = -3.378837726859911e-162;
bool r204661 = r204621 <= r204660;
double r204662 = 1.0;
double r204663 = pow(r204643, r204662);
double r204664 = r204635 - r204663;
double r204665 = r204627 * r204664;
double r204666 = sqrt(r204665);
double r204667 = 1.8079991333180533e-150;
bool r204668 = r204621 <= r204667;
double r204669 = -r204642;
double r204670 = r204669 * r204652;
double r204671 = r204634 - r204670;
double r204672 = r204629 - r204671;
double r204673 = r204625 * r204672;
double r204674 = r204673 * r204626;
double r204675 = pow(r204674, r204662);
double r204676 = sqrt(r204675);
double r204677 = r204668 ? r204676 : r204659;
double r204678 = r204661 ? r204666 : r204677;
double r204679 = r204648 ? r204659 : r204678;
double r204680 = r204623 ? r204646 : r204679;
return r204680;
}



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 < -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 pow127.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 pow129.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 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 +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*))))))