\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}\;\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \le 0.0:\\
\;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \frac{n \cdot -2}{\frac{\frac{Om}{\ell}}{\ell}} + \left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \frac{\frac{n}{\frac{Om}{\ell}} \cdot \left(U - U*\right)}{\frac{Om}{\ell}}\right)\right)}\\
\mathbf{elif}\;\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right) \le 8.046145761530675 \cdot 10^{+302}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(\left(t - \frac{\frac{1}{\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}}}{Om} \cdot \left(\frac{\frac{n}{\frac{Om}{\sqrt[3]{\ell}}}}{\frac{1}{\ell}} \cdot \left(U - U*\right)\right)\right) \cdot n\right) \cdot \left(U \cdot 2\right) + \left(\left(\frac{\sqrt[3]{n}}{\frac{\frac{\sqrt[3]{Om}}{\ell}}{\sqrt[3]{\sqrt[3]{\ell}}}} \cdot \left(U \cdot 2\right)\right) \cdot \frac{\sqrt[3]{n} \cdot \sqrt[3]{n}}{\frac{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}{\sqrt[3]{\sqrt[3]{\ell}} \cdot \sqrt[3]{\sqrt[3]{\ell}}}}\right) \cdot \frac{-2}{\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r4236907 = 2.0;
double r4236908 = n;
double r4236909 = r4236907 * r4236908;
double r4236910 = U;
double r4236911 = r4236909 * r4236910;
double r4236912 = t;
double r4236913 = l;
double r4236914 = r4236913 * r4236913;
double r4236915 = Om;
double r4236916 = r4236914 / r4236915;
double r4236917 = r4236907 * r4236916;
double r4236918 = r4236912 - r4236917;
double r4236919 = r4236913 / r4236915;
double r4236920 = pow(r4236919, r4236907);
double r4236921 = r4236908 * r4236920;
double r4236922 = U_;
double r4236923 = r4236910 - r4236922;
double r4236924 = r4236921 * r4236923;
double r4236925 = r4236918 - r4236924;
double r4236926 = r4236911 * r4236925;
double r4236927 = sqrt(r4236926);
return r4236927;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r4236928 = 2.0;
double r4236929 = n;
double r4236930 = r4236928 * r4236929;
double r4236931 = U;
double r4236932 = r4236930 * r4236931;
double r4236933 = t;
double r4236934 = l;
double r4236935 = r4236934 * r4236934;
double r4236936 = Om;
double r4236937 = r4236935 / r4236936;
double r4236938 = r4236937 * r4236928;
double r4236939 = r4236933 - r4236938;
double r4236940 = r4236934 / r4236936;
double r4236941 = pow(r4236940, r4236928);
double r4236942 = r4236929 * r4236941;
double r4236943 = U_;
double r4236944 = r4236931 - r4236943;
double r4236945 = r4236942 * r4236944;
double r4236946 = r4236939 - r4236945;
double r4236947 = r4236932 * r4236946;
double r4236948 = 0.0;
bool r4236949 = r4236947 <= r4236948;
double r4236950 = r4236931 * r4236928;
double r4236951 = -2.0;
double r4236952 = r4236929 * r4236951;
double r4236953 = r4236936 / r4236934;
double r4236954 = r4236953 / r4236934;
double r4236955 = r4236952 / r4236954;
double r4236956 = r4236950 * r4236955;
double r4236957 = r4236929 / r4236953;
double r4236958 = r4236957 * r4236944;
double r4236959 = r4236958 / r4236953;
double r4236960 = r4236933 - r4236959;
double r4236961 = r4236929 * r4236960;
double r4236962 = r4236950 * r4236961;
double r4236963 = r4236956 + r4236962;
double r4236964 = sqrt(r4236963);
double r4236965 = 8.046145761530675e+302;
bool r4236966 = r4236947 <= r4236965;
double r4236967 = sqrt(r4236947);
double r4236968 = 1.0;
double r4236969 = cbrt(r4236934);
double r4236970 = r4236969 * r4236969;
double r4236971 = r4236968 / r4236970;
double r4236972 = r4236968 / r4236971;
double r4236973 = r4236972 / r4236936;
double r4236974 = r4236936 / r4236969;
double r4236975 = r4236929 / r4236974;
double r4236976 = r4236968 / r4236934;
double r4236977 = r4236975 / r4236976;
double r4236978 = r4236977 * r4236944;
double r4236979 = r4236973 * r4236978;
double r4236980 = r4236933 - r4236979;
double r4236981 = r4236980 * r4236929;
double r4236982 = r4236981 * r4236950;
double r4236983 = cbrt(r4236929);
double r4236984 = cbrt(r4236936);
double r4236985 = r4236984 / r4236934;
double r4236986 = cbrt(r4236969);
double r4236987 = r4236985 / r4236986;
double r4236988 = r4236983 / r4236987;
double r4236989 = r4236988 * r4236950;
double r4236990 = r4236983 * r4236983;
double r4236991 = r4236984 * r4236984;
double r4236992 = r4236986 * r4236986;
double r4236993 = r4236991 / r4236992;
double r4236994 = r4236990 / r4236993;
double r4236995 = r4236989 * r4236994;
double r4236996 = r4236951 / r4236971;
double r4236997 = r4236995 * r4236996;
double r4236998 = r4236982 + r4236997;
double r4236999 = sqrt(r4236998);
double r4237000 = r4236966 ? r4236967 : r4236999;
double r4237001 = r4236949 ? r4236964 : r4237000;
return r4237001;
}



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 (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 0.0Initial program 56.7
Simplified38.2
rmApplied distribute-rgt-in38.2
Applied distribute-rgt-in38.2
Applied distribute-rgt-in38.2
Simplified37.1
Simplified37.1
rmApplied associate-*l/35.7
if 0.0 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 8.046145761530675e+302Initial program 2.0
if 8.046145761530675e+302 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) Initial program 60.2
Simplified57.8
rmApplied distribute-rgt-in57.8
Applied distribute-rgt-in57.8
Applied distribute-rgt-in57.8
Simplified50.5
Simplified50.5
rmApplied div-inv50.5
Applied add-cube-cbrt50.5
Applied *-un-lft-identity50.5
Applied times-frac50.5
Applied *-un-lft-identity50.5
Applied times-frac50.5
Applied times-frac50.5
Applied associate-*l*50.0
rmApplied add-cube-cbrt50.1
Applied *-un-lft-identity50.1
Applied times-frac50.1
Applied times-frac46.5
Applied associate-*l*45.9
rmApplied add-cube-cbrt45.9
Applied *-un-lft-identity45.9
Applied add-cube-cbrt45.9
Applied times-frac45.9
Applied times-frac45.9
Applied add-cube-cbrt46.0
Applied times-frac45.5
Applied associate-*l*46.0
Final simplification24.4
herbie shell --seed 2019135
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))