\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 -1.976134983095281222500639438484837269871 \cdot 10^{186}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;t \le -1.348736528199478592142088546342992390382 \cdot 10^{-70}:\\
\;\;\;\;\sqrt{{\left(\left(\left(2 \cdot n\right) \cdot \left(t - \left(2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(-\left(U - U*\right)\right) \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right)\right)\right)\right) \cdot U\right)}^{1}}\\
\mathbf{elif}\;t \le 258973315068288958464:\\
\;\;\;\;\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{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{1}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\sqrt[3]{\ell}}{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(n \cdot {\left(\frac{\ell}{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 r177871 = 2.0;
double r177872 = n;
double r177873 = r177871 * r177872;
double r177874 = U;
double r177875 = r177873 * r177874;
double r177876 = t;
double r177877 = l;
double r177878 = r177877 * r177877;
double r177879 = Om;
double r177880 = r177878 / r177879;
double r177881 = r177871 * r177880;
double r177882 = r177876 - r177881;
double r177883 = r177877 / r177879;
double r177884 = pow(r177883, r177871);
double r177885 = r177872 * r177884;
double r177886 = U_;
double r177887 = r177874 - r177886;
double r177888 = r177885 * r177887;
double r177889 = r177882 - r177888;
double r177890 = r177875 * r177889;
double r177891 = sqrt(r177890);
return r177891;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r177892 = t;
double r177893 = -1.9761349830952812e+186;
bool r177894 = r177892 <= r177893;
double r177895 = 2.0;
double r177896 = n;
double r177897 = r177895 * r177896;
double r177898 = U;
double r177899 = l;
double r177900 = Om;
double r177901 = r177899 / r177900;
double r177902 = r177899 * r177901;
double r177903 = r177895 * r177902;
double r177904 = r177892 - r177903;
double r177905 = pow(r177901, r177895);
double r177906 = r177896 * r177905;
double r177907 = U_;
double r177908 = r177898 - r177907;
double r177909 = r177906 * r177908;
double r177910 = r177904 - r177909;
double r177911 = r177898 * r177910;
double r177912 = r177897 * r177911;
double r177913 = sqrt(r177912);
double r177914 = -1.3487365281994786e-70;
bool r177915 = r177892 <= r177914;
double r177916 = -r177908;
double r177917 = 2.0;
double r177918 = r177895 / r177917;
double r177919 = r177917 * r177918;
double r177920 = pow(r177901, r177919);
double r177921 = r177896 * r177920;
double r177922 = r177916 * r177921;
double r177923 = r177903 - r177922;
double r177924 = r177892 - r177923;
double r177925 = r177897 * r177924;
double r177926 = r177925 * r177898;
double r177927 = 1.0;
double r177928 = pow(r177926, r177927);
double r177929 = sqrt(r177928);
double r177930 = 2.5897331506828896e+20;
bool r177931 = r177892 <= r177930;
double r177932 = cbrt(r177899);
double r177933 = r177932 * r177932;
double r177934 = r177933 / r177927;
double r177935 = pow(r177934, r177918);
double r177936 = r177896 * r177935;
double r177937 = r177932 / r177900;
double r177938 = pow(r177937, r177918);
double r177939 = r177936 * r177938;
double r177940 = pow(r177901, r177918);
double r177941 = r177939 * r177940;
double r177942 = r177941 * r177908;
double r177943 = r177904 - r177942;
double r177944 = r177898 * r177943;
double r177945 = r177897 * r177944;
double r177946 = sqrt(r177945);
double r177947 = r177897 * r177898;
double r177948 = sqrt(r177947);
double r177949 = r177896 * r177940;
double r177950 = r177949 * r177940;
double r177951 = r177950 * r177908;
double r177952 = r177904 - r177951;
double r177953 = sqrt(r177952);
double r177954 = r177948 * r177953;
double r177955 = r177931 ? r177946 : r177954;
double r177956 = r177915 ? r177929 : r177955;
double r177957 = r177894 ? r177913 : r177956;
return r177957;
}



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 < -1.9761349830952812e+186Initial program 40.7
rmApplied *-un-lft-identity40.7
Applied times-frac38.8
Simplified38.8
rmApplied associate-*l*36.4
if -1.9761349830952812e+186 < t < -1.3487365281994786e-70Initial program 30.1
rmApplied *-un-lft-identity30.1
Applied times-frac28.0
Simplified28.0
rmApplied sqr-pow28.0
Applied associate-*r*27.3
rmApplied pow127.3
Applied pow127.3
Applied pow127.3
Applied pow127.3
Applied pow-prod-down27.3
Applied pow-prod-down27.3
Applied pow-prod-down27.3
Simplified26.8
if -1.3487365281994786e-70 < t < 2.5897331506828896e+20Initial program 34.7
rmApplied *-un-lft-identity34.7
Applied times-frac32.1
Simplified32.1
rmApplied sqr-pow32.1
Applied associate-*r*30.9
rmApplied *-un-lft-identity30.9
Applied add-cube-cbrt31.0
Applied times-frac31.0
Applied unpow-prod-down31.0
Applied associate-*r*31.6
rmApplied associate-*l*31.5
if 2.5897331506828896e+20 < t Initial program 34.6
rmApplied *-un-lft-identity34.6
Applied times-frac32.2
Simplified32.2
rmApplied sqr-pow32.2
Applied associate-*r*31.7
rmApplied sqrt-prod25.7
Final simplification29.5
herbie shell --seed 2020001 +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*))))))