\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}\;t \le 3.130632929319652416005471644268637375687 \cdot 10^{-271}:\\
\;\;\;\;\sqrt{\left(\sqrt[3]{t - \left(\left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot n + 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right)} \cdot \left(U \cdot \left(\left(2 \cdot n\right) \cdot \sqrt[3]{t - \left(\left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot n + 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right)}\right)\right)\right) \cdot \sqrt[3]{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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)}}\\
\mathbf{elif}\;t \le 5.953905810989119972468590963716396861846 \cdot 10^{-86} \lor \neg \left(t \le 2.817007442329380152502379998300985537163 \cdot 10^{107}\right):\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r170691 = 2.0;
double r170692 = n;
double r170693 = r170691 * r170692;
double r170694 = U;
double r170695 = r170693 * r170694;
double r170696 = t;
double r170697 = l;
double r170698 = r170697 * r170697;
double r170699 = Om;
double r170700 = r170698 / r170699;
double r170701 = r170691 * r170700;
double r170702 = r170696 - r170701;
double r170703 = r170697 / r170699;
double r170704 = pow(r170703, r170691);
double r170705 = r170692 * r170704;
double r170706 = U_;
double r170707 = r170694 - r170706;
double r170708 = r170705 * r170707;
double r170709 = r170702 - r170708;
double r170710 = r170695 * r170709;
double r170711 = sqrt(r170710);
return r170711;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r170712 = t;
double r170713 = 3.1306329293196524e-271;
bool r170714 = r170712 <= r170713;
double r170715 = U;
double r170716 = U_;
double r170717 = r170715 - r170716;
double r170718 = l;
double r170719 = Om;
double r170720 = r170718 / r170719;
double r170721 = 2.0;
double r170722 = 2.0;
double r170723 = r170722 / r170721;
double r170724 = r170721 * r170723;
double r170725 = pow(r170720, r170724);
double r170726 = r170717 * r170725;
double r170727 = n;
double r170728 = r170726 * r170727;
double r170729 = r170719 / r170718;
double r170730 = r170718 / r170729;
double r170731 = r170722 * r170730;
double r170732 = r170728 + r170731;
double r170733 = r170712 - r170732;
double r170734 = cbrt(r170733);
double r170735 = r170722 * r170727;
double r170736 = r170735 * r170734;
double r170737 = r170715 * r170736;
double r170738 = r170734 * r170737;
double r170739 = r170712 - r170731;
double r170740 = pow(r170720, r170723);
double r170741 = r170727 * r170740;
double r170742 = r170740 * r170717;
double r170743 = r170741 * r170742;
double r170744 = r170739 - r170743;
double r170745 = cbrt(r170744);
double r170746 = r170738 * r170745;
double r170747 = sqrt(r170746);
double r170748 = 5.95390581098912e-86;
bool r170749 = r170712 <= r170748;
double r170750 = 2.81700744232938e+107;
bool r170751 = r170712 <= r170750;
double r170752 = !r170751;
bool r170753 = r170749 || r170752;
double r170754 = r170735 * r170715;
double r170755 = sqrt(r170754);
double r170756 = r170727 * r170725;
double r170757 = r170717 * r170756;
double r170758 = r170739 - r170757;
double r170759 = sqrt(r170758);
double r170760 = r170755 * r170759;
double r170761 = r170754 * r170744;
double r170762 = sqrt(r170761);
double r170763 = r170753 ? r170760 : r170762;
double r170764 = r170714 ? r170747 : r170763;
return r170764;
}



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 t < 3.1306329293196524e-271Initial program 35.5
rmApplied associate-/l*32.8
rmApplied sqr-pow32.8
Applied associate-*r*31.8
rmApplied associate-*l*31.9
rmApplied add-cube-cbrt32.2
Applied associate-*r*32.2
Simplified32.7
if 3.1306329293196524e-271 < t < 5.95390581098912e-86 or 2.81700744232938e+107 < t Initial program 36.1
rmApplied associate-/l*33.3
rmApplied sqr-pow33.3
Applied associate-*r*32.2
rmApplied sqrt-prod28.7
Simplified29.4
if 5.95390581098912e-86 < t < 2.81700744232938e+107Initial program 31.3
rmApplied associate-/l*28.4
rmApplied sqr-pow28.4
Applied associate-*r*27.4
rmApplied associate-*l*27.4
Final simplification30.9
herbie shell --seed 2019350
(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*))))))