\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}\;U \le 8.24235475462790745 \cdot 10^{-304}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)} \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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) \cdot \sqrt[3]{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\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)}}\\
\mathbf{elif}\;U \le 7.0020822487454102 \cdot 10^{119}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \frac{\ell \cdot \ell}{Om} - \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}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r217566 = 2.0;
double r217567 = n;
double r217568 = r217566 * r217567;
double r217569 = U;
double r217570 = r217568 * r217569;
double r217571 = t;
double r217572 = l;
double r217573 = r217572 * r217572;
double r217574 = Om;
double r217575 = r217573 / r217574;
double r217576 = r217566 * r217575;
double r217577 = r217571 - r217576;
double r217578 = r217572 / r217574;
double r217579 = pow(r217578, r217566);
double r217580 = r217567 * r217579;
double r217581 = U_;
double r217582 = r217569 - r217581;
double r217583 = r217580 * r217582;
double r217584 = r217577 - r217583;
double r217585 = r217570 * r217584;
double r217586 = sqrt(r217585);
return r217586;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r217587 = U;
double r217588 = 8.242354754627907e-304;
bool r217589 = r217587 <= r217588;
double r217590 = 2.0;
double r217591 = n;
double r217592 = r217590 * r217591;
double r217593 = r217592 * r217587;
double r217594 = t;
double r217595 = l;
double r217596 = r217595 * r217595;
double r217597 = Om;
double r217598 = r217596 / r217597;
double r217599 = r217590 * r217598;
double r217600 = r217594 - r217599;
double r217601 = r217595 / r217597;
double r217602 = 2.0;
double r217603 = r217590 / r217602;
double r217604 = pow(r217601, r217603);
double r217605 = r217591 * r217604;
double r217606 = r217605 * r217604;
double r217607 = U_;
double r217608 = r217587 - r217607;
double r217609 = r217606 * r217608;
double r217610 = r217600 - r217609;
double r217611 = r217593 * r217610;
double r217612 = cbrt(r217611);
double r217613 = r217612 * r217612;
double r217614 = r217613 * r217612;
double r217615 = sqrt(r217614);
double r217616 = 7.00208224874541e+119;
bool r217617 = r217587 <= r217616;
double r217618 = r217604 * r217608;
double r217619 = r217605 * r217618;
double r217620 = r217600 - r217619;
double r217621 = r217587 * r217620;
double r217622 = r217592 * r217621;
double r217623 = sqrt(r217622);
double r217624 = r217602 * r217603;
double r217625 = pow(r217601, r217624);
double r217626 = r217591 * r217625;
double r217627 = -r217626;
double r217628 = r217627 * r217608;
double r217629 = r217599 - r217628;
double r217630 = r217594 - r217629;
double r217631 = r217592 * r217630;
double r217632 = r217631 * r217587;
double r217633 = 1.0;
double r217634 = pow(r217632, r217633);
double r217635 = sqrt(r217634);
double r217636 = r217617 ? r217623 : r217635;
double r217637 = r217589 ? r217615 : r217636;
return r217637;
}



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 U < 8.242354754627907e-304Initial program 34.8
rmApplied sqr-pow34.8
Applied associate-*r*34.1
rmApplied add-cube-cbrt34.4
if 8.242354754627907e-304 < U < 7.00208224874541e+119Initial program 36.0
rmApplied sqr-pow36.0
Applied associate-*r*35.0
rmApplied associate-*l*34.8
rmApplied associate-*l*32.5
if 7.00208224874541e+119 < U Initial program 30.2
rmApplied sqr-pow30.2
Applied associate-*r*30.1
rmApplied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow130.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Applied pow-prod-down30.1
Simplified33.5
Final simplification33.6
herbie shell --seed 2020062
(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*))))))