\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 -2.500080883402384 \cdot 10^{-158}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{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.2760462906237903 \cdot 10^{-247}:\\
\;\;\;\;\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{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{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}\;n \le 2.1783139283433974 \cdot 10^{-130} \lor \neg \left(n \le 5.912036692986568 \cdot 10^{-67}\right):\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{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{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(\left(\left(n \cdot {\left(\frac{1}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{\sqrt[3]{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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r265692 = 2.0;
double r265693 = n;
double r265694 = r265692 * r265693;
double r265695 = U;
double r265696 = r265694 * r265695;
double r265697 = t;
double r265698 = l;
double r265699 = r265698 * r265698;
double r265700 = Om;
double r265701 = r265699 / r265700;
double r265702 = r265692 * r265701;
double r265703 = r265697 - r265702;
double r265704 = r265698 / r265700;
double r265705 = pow(r265704, r265692);
double r265706 = r265693 * r265705;
double r265707 = U_;
double r265708 = r265695 - r265707;
double r265709 = r265706 * r265708;
double r265710 = r265703 - r265709;
double r265711 = r265696 * r265710;
double r265712 = sqrt(r265711);
return r265712;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r265713 = n;
double r265714 = -2.5000808834023845e-158;
bool r265715 = r265713 <= r265714;
double r265716 = 2.0;
double r265717 = r265716 * r265713;
double r265718 = U;
double r265719 = t;
double r265720 = l;
double r265721 = Om;
double r265722 = r265720 / r265721;
double r265723 = r265720 * r265722;
double r265724 = r265716 * r265723;
double r265725 = r265719 - r265724;
double r265726 = 1.0;
double r265727 = cbrt(r265721);
double r265728 = r265727 * r265727;
double r265729 = r265726 / r265728;
double r265730 = 2.0;
double r265731 = r265716 / r265730;
double r265732 = pow(r265729, r265731);
double r265733 = r265713 * r265732;
double r265734 = r265720 / r265727;
double r265735 = pow(r265734, r265731);
double r265736 = r265733 * r265735;
double r265737 = pow(r265722, r265731);
double r265738 = r265736 * r265737;
double r265739 = U_;
double r265740 = r265718 - r265739;
double r265741 = r265738 * r265740;
double r265742 = r265725 - r265741;
double r265743 = r265718 * r265742;
double r265744 = r265717 * r265743;
double r265745 = sqrt(r265744);
double r265746 = 1.2760462906237903e-247;
bool r265747 = r265713 <= r265746;
double r265748 = r265717 * r265718;
double r265749 = r265748 * r265742;
double r265750 = sqrt(r265749);
double r265751 = 2.1783139283433974e-130;
bool r265752 = r265713 <= r265751;
double r265753 = 5.912036692986568e-67;
bool r265754 = r265713 <= r265753;
double r265755 = !r265754;
bool r265756 = r265752 || r265755;
double r265757 = sqrt(r265748);
double r265758 = sqrt(r265742);
double r265759 = r265757 * r265758;
double r265760 = r265756 ? r265745 : r265759;
double r265761 = r265747 ? r265750 : r265760;
double r265762 = r265715 ? r265745 : r265761;
return r265762;
}



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 < -2.5000808834023845e-158 or 1.2760462906237903e-247 < n < 2.1783139283433974e-130 or 5.912036692986568e-67 < n Initial program 33.0
rmApplied *-un-lft-identity33.0
Applied times-frac30.4
Simplified30.4
rmApplied sqr-pow30.4
Applied associate-*r*29.4
rmApplied add-cube-cbrt29.5
Applied *-un-lft-identity29.5
Applied times-frac29.5
Applied unpow-prod-down29.5
Applied associate-*r*30.0
rmApplied associate-*l*30.5
if -2.5000808834023845e-158 < n < 1.2760462906237903e-247Initial program 39.2
rmApplied *-un-lft-identity39.2
Applied times-frac36.6
Simplified36.6
rmApplied sqr-pow36.6
Applied associate-*r*35.8
rmApplied add-cube-cbrt35.9
Applied *-un-lft-identity35.9
Applied times-frac35.9
Applied unpow-prod-down35.9
Applied associate-*r*35.9
if 2.1783139283433974e-130 < n < 5.912036692986568e-67Initial program 31.8
rmApplied *-un-lft-identity31.8
Applied times-frac29.3
Simplified29.3
rmApplied sqr-pow29.3
Applied associate-*r*29.0
rmApplied add-cube-cbrt29.0
Applied *-un-lft-identity29.0
Applied times-frac29.0
Applied unpow-prod-down29.0
Applied associate-*r*29.0
rmApplied sqrt-prod41.6
Final simplification32.3
herbie shell --seed 2020045
(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*))))))