\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 4.739343449525871658159191443467243490565 \cdot 10^{-151}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \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(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;t \le 7.551608221022998949639242476561684793845 \cdot 10^{-93} \lor \neg \left(t \le 9.260196814501473924371525269420592469666 \cdot 10^{119}\right):\\
\;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(U - U*\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(\left(t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left({\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(2 \cdot n\right)\right) \cdot U}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r84881 = 2.0;
double r84882 = n;
double r84883 = r84881 * r84882;
double r84884 = U;
double r84885 = r84883 * r84884;
double r84886 = t;
double r84887 = l;
double r84888 = r84887 * r84887;
double r84889 = Om;
double r84890 = r84888 / r84889;
double r84891 = r84881 * r84890;
double r84892 = r84886 - r84891;
double r84893 = r84887 / r84889;
double r84894 = pow(r84893, r84881);
double r84895 = r84882 * r84894;
double r84896 = U_;
double r84897 = r84884 - r84896;
double r84898 = r84895 * r84897;
double r84899 = r84892 - r84898;
double r84900 = r84885 * r84899;
double r84901 = sqrt(r84900);
return r84901;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r84902 = t;
double r84903 = 4.7393434495258717e-151;
bool r84904 = r84902 <= r84903;
double r84905 = 2.0;
double r84906 = l;
double r84907 = Om;
double r84908 = r84907 / r84906;
double r84909 = r84906 / r84908;
double r84910 = n;
double r84911 = cbrt(r84906);
double r84912 = r84911 * r84911;
double r84913 = 2.0;
double r84914 = r84905 / r84913;
double r84915 = pow(r84912, r84914);
double r84916 = r84910 * r84915;
double r84917 = r84911 / r84907;
double r84918 = pow(r84917, r84914);
double r84919 = r84916 * r84918;
double r84920 = U;
double r84921 = U_;
double r84922 = r84920 - r84921;
double r84923 = r84906 / r84907;
double r84924 = pow(r84923, r84914);
double r84925 = r84922 * r84924;
double r84926 = r84919 * r84925;
double r84927 = fma(r84905, r84909, r84926);
double r84928 = r84902 - r84927;
double r84929 = r84905 * r84910;
double r84930 = r84929 * r84920;
double r84931 = r84928 * r84930;
double r84932 = sqrt(r84931);
double r84933 = 7.551608221022999e-93;
bool r84934 = r84902 <= r84933;
double r84935 = 9.260196814501474e+119;
bool r84936 = r84902 <= r84935;
double r84937 = !r84936;
bool r84938 = r84934 || r84937;
double r84939 = r84913 * r84914;
double r84940 = pow(r84923, r84939);
double r84941 = r84910 * r84940;
double r84942 = r84922 * r84941;
double r84943 = fma(r84905, r84909, r84942);
double r84944 = r84902 - r84943;
double r84945 = sqrt(r84944);
double r84946 = sqrt(r84930);
double r84947 = r84945 * r84946;
double r84948 = r84940 * r84910;
double r84949 = r84948 * r84922;
double r84950 = fma(r84905, r84909, r84949);
double r84951 = r84902 - r84950;
double r84952 = r84951 * r84929;
double r84953 = r84952 * r84920;
double r84954 = sqrt(r84953);
double r84955 = r84938 ? r84947 : r84954;
double r84956 = r84904 ? r84932 : r84955;
return r84956;
}



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 t < 4.7393434495258717e-151Initial program 34.7
Simplified34.7
rmApplied associate-/l*32.0
rmApplied sqr-pow32.0
Applied associate-*r*31.2
rmApplied associate-*l*30.9
Simplified30.9
rmApplied *-un-lft-identity30.9
Applied add-cube-cbrt31.0
Applied times-frac31.0
Applied unpow-prod-down31.0
Applied associate-*r*31.5
Simplified31.5
if 4.7393434495258717e-151 < t < 7.551608221022999e-93 or 9.260196814501474e+119 < t Initial program 34.6
Simplified34.6
rmApplied associate-/l*32.3
rmApplied sqr-pow32.3
Applied associate-*r*32.0
rmApplied sqrt-prod26.1
Simplified26.3
if 7.551608221022999e-93 < t < 9.260196814501474e+119Initial program 31.9
Simplified31.9
rmApplied associate-/l*29.2
rmApplied sqr-pow29.2
Applied associate-*r*28.7
rmApplied associate-*l*28.7
Simplified28.7
rmApplied associate-*r*28.5
Simplified29.0
Final simplification30.0
herbie shell --seed 2019235 +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*))))))