\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.037058507986194199807262357510988881335 \cdot 10^{-134}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left(\left(n \cdot {\left(\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{\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) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 8.420291904348501272367972443482728416614 \cdot 10^{-153}:\\
\;\;\;\;\sqrt{\left(\left(t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(\sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)} \cdot \sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)}\right) \cdot \sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)}\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r144770 = 2.0;
double r144771 = n;
double r144772 = r144770 * r144771;
double r144773 = U;
double r144774 = r144772 * r144773;
double r144775 = t;
double r144776 = l;
double r144777 = r144776 * r144776;
double r144778 = Om;
double r144779 = r144777 / r144778;
double r144780 = r144770 * r144779;
double r144781 = r144775 - r144780;
double r144782 = r144776 / r144778;
double r144783 = pow(r144782, r144770);
double r144784 = r144771 * r144783;
double r144785 = U_;
double r144786 = r144773 - r144785;
double r144787 = r144784 * r144786;
double r144788 = r144781 - r144787;
double r144789 = r144774 * r144788;
double r144790 = sqrt(r144789);
return r144790;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r144791 = n;
double r144792 = -2.0370585079861942e-134;
bool r144793 = r144791 <= r144792;
double r144794 = t;
double r144795 = 2.0;
double r144796 = l;
double r144797 = Om;
double r144798 = r144796 / r144797;
double r144799 = r144796 * r144798;
double r144800 = cbrt(r144796);
double r144801 = r144800 * r144800;
double r144802 = 2.0;
double r144803 = r144795 / r144802;
double r144804 = pow(r144801, r144803);
double r144805 = r144791 * r144804;
double r144806 = r144800 / r144797;
double r144807 = pow(r144806, r144803);
double r144808 = r144805 * r144807;
double r144809 = pow(r144798, r144803);
double r144810 = U;
double r144811 = U_;
double r144812 = r144810 - r144811;
double r144813 = r144809 * r144812;
double r144814 = r144808 * r144813;
double r144815 = fma(r144795, r144799, r144814);
double r144816 = r144794 - r144815;
double r144817 = r144795 * r144791;
double r144818 = r144817 * r144810;
double r144819 = r144816 * r144818;
double r144820 = sqrt(r144819);
double r144821 = 8.420291904348501e-153;
bool r144822 = r144791 <= r144821;
double r144823 = r144802 * r144803;
double r144824 = pow(r144798, r144823);
double r144825 = r144791 * r144824;
double r144826 = r144812 * r144825;
double r144827 = fma(r144795, r144799, r144826);
double r144828 = r144794 - r144827;
double r144829 = r144828 * r144817;
double r144830 = r144829 * r144810;
double r144831 = sqrt(r144830);
double r144832 = r144791 * r144809;
double r144833 = cbrt(r144813);
double r144834 = r144833 * r144833;
double r144835 = r144834 * r144833;
double r144836 = r144832 * r144835;
double r144837 = fma(r144795, r144799, r144836);
double r144838 = r144794 - r144837;
double r144839 = r144838 * r144818;
double r144840 = sqrt(r144839);
double r144841 = r144822 ? r144831 : r144840;
double r144842 = r144793 ? r144820 : r144841;
return r144842;
}



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 < -2.0370585079861942e-134Initial program 33.2
Simplified33.2
rmApplied *-un-lft-identity33.2
Applied times-frac30.8
Simplified30.8
rmApplied sqr-pow30.8
Applied associate-*r*29.9
rmApplied associate-*l*29.0
rmApplied *-un-lft-identity29.0
Applied add-cube-cbrt29.0
Applied times-frac29.0
Applied unpow-prod-down29.0
Applied associate-*r*29.6
Simplified29.6
if -2.0370585079861942e-134 < n < 8.420291904348501e-153Initial program 38.6
Simplified38.6
rmApplied *-un-lft-identity38.6
Applied times-frac35.7
Simplified35.7
rmApplied sqr-pow35.7
Applied associate-*r*34.8
rmApplied associate-*l*36.2
rmApplied associate-*r*31.2
Simplified31.4
if 8.420291904348501e-153 < n Initial program 32.7
Simplified32.7
rmApplied *-un-lft-identity32.7
Applied times-frac30.2
Simplified30.2
rmApplied sqr-pow30.2
Applied associate-*r*29.5
rmApplied associate-*l*28.8
rmApplied add-cube-cbrt28.8
Final simplification30.0
herbie shell --seed 2019351 +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*))))))