\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 -8.419437228522636679217683308706909883767 \cdot 10^{-4} \lor n \le -3.88758576516516698363399032912355760136 \cdot 10^{-308}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - n \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(U - U*\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(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(\sqrt[3]{U - U*} \cdot \sqrt[3]{U - U*}\right)\right) \cdot \sqrt[3]{U - U*}\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r222749 = 2.0;
double r222750 = n;
double r222751 = r222749 * r222750;
double r222752 = U;
double r222753 = r222751 * r222752;
double r222754 = t;
double r222755 = l;
double r222756 = r222755 * r222755;
double r222757 = Om;
double r222758 = r222756 / r222757;
double r222759 = r222749 * r222758;
double r222760 = r222754 - r222759;
double r222761 = r222755 / r222757;
double r222762 = pow(r222761, r222749);
double r222763 = r222750 * r222762;
double r222764 = U_;
double r222765 = r222752 - r222764;
double r222766 = r222763 * r222765;
double r222767 = r222760 - r222766;
double r222768 = r222753 * r222767;
double r222769 = sqrt(r222768);
return r222769;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r222770 = n;
double r222771 = -0.0008419437228522637;
bool r222772 = r222770 <= r222771;
double r222773 = -3.887585765165167e-308;
bool r222774 = r222770 <= r222773;
bool r222775 = r222772 || r222774;
double r222776 = 2.0;
double r222777 = r222776 * r222770;
double r222778 = U;
double r222779 = t;
double r222780 = l;
double r222781 = Om;
double r222782 = r222781 / r222780;
double r222783 = r222780 / r222782;
double r222784 = r222776 * r222783;
double r222785 = r222779 - r222784;
double r222786 = r222780 / r222781;
double r222787 = pow(r222786, r222776);
double r222788 = U_;
double r222789 = r222778 - r222788;
double r222790 = r222787 * r222789;
double r222791 = r222770 * r222790;
double r222792 = r222785 - r222791;
double r222793 = r222778 * r222792;
double r222794 = r222777 * r222793;
double r222795 = sqrt(r222794);
double r222796 = sqrt(r222777);
double r222797 = r222770 * r222787;
double r222798 = cbrt(r222789);
double r222799 = r222798 * r222798;
double r222800 = r222797 * r222799;
double r222801 = r222800 * r222798;
double r222802 = r222785 - r222801;
double r222803 = r222778 * r222802;
double r222804 = sqrt(r222803);
double r222805 = r222796 * r222804;
double r222806 = r222775 ? r222795 : r222805;
return r222806;
}



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 < -0.0008419437228522637Initial program 32.5
rmApplied associate-/l*30.5
rmApplied associate-*l*31.6
rmApplied associate-*l*30.9
if -0.0008419437228522637 < n < -3.887585765165167e-308Initial program 35.6
rmApplied associate-/l*32.5
rmApplied associate-*l*32.5
rmApplied add-cube-cbrt32.5
Applied associate-*r*32.5
rmApplied pow132.5
Applied pow132.5
Applied pow-prod-down32.5
Applied pow132.5
Applied pow132.5
Applied pow-prod-down32.5
Applied pow-prod-down32.5
Simplified29.6
if -3.887585765165167e-308 < n Initial program 34.7
rmApplied associate-/l*31.8
rmApplied associate-*l*32.5
rmApplied add-cube-cbrt32.5
Applied associate-*r*32.5
rmApplied sqrt-prod24.8
Final simplification28.7
herbie shell --seed 2019308
(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*))))))