\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 -9.014626965436397950093167243230168496464 \cdot 10^{-81}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(\left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(\left(U* - U\right) \cdot n\right) - \left(\left(\frac{\ell}{Om} \cdot \ell\right) \cdot 2 - t\right)\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 1.008725107202353820896882228886919841361 \cdot 10^{-199}:\\
\;\;\;\;\sqrt{\left(\left(\left(\sqrt[3]{U* - U} \cdot \left(\sqrt[3]{U* - U} \cdot \left(\sqrt[3]{U* - U} \cdot 0\right)\right) - \left(2 \cdot \ell\right) \cdot \frac{\ell}{Om}\right) + t\right) \cdot \left(2 \cdot n\right)\right) \cdot U}\\
\mathbf{elif}\;n \le 31641216734603.953125:\\
\;\;\;\;\sqrt{\left(\left(\left(2 \cdot \ell\right) \cdot \frac{\ell}{Om} - t\right) \cdot \left(\left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right) \cdot \left(-2 \cdot n\right)\right) + \left(\left({\left(\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}\right)}^{2} \cdot n\right) \cdot {\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{2}\right) \cdot \left(\left(U* - U\right) \cdot \left(\left(2 \cdot n\right) \cdot \left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right)\right)\right)\right) \cdot \sqrt[3]{U}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(U \cdot \left(2 \cdot n\right)\right) \cdot \left(\left({\left(\frac{\ell}{Om}\right)}^{2} \cdot n\right) \cdot {\left(\sqrt[3]{U* - U}\right)}^{3} - \left(\left(2 \cdot \frac{\ell}{Om}\right) \cdot \ell - t\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r194864 = 2.0;
double r194865 = n;
double r194866 = r194864 * r194865;
double r194867 = U;
double r194868 = r194866 * r194867;
double r194869 = t;
double r194870 = l;
double r194871 = r194870 * r194870;
double r194872 = Om;
double r194873 = r194871 / r194872;
double r194874 = r194864 * r194873;
double r194875 = r194869 - r194874;
double r194876 = r194870 / r194872;
double r194877 = pow(r194876, r194864);
double r194878 = r194865 * r194877;
double r194879 = U_;
double r194880 = r194867 - r194879;
double r194881 = r194878 * r194880;
double r194882 = r194875 - r194881;
double r194883 = r194868 * r194882;
double r194884 = sqrt(r194883);
return r194884;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r194885 = n;
double r194886 = -9.014626965436398e-81;
bool r194887 = r194885 <= r194886;
double r194888 = 2.0;
double r194889 = r194888 * r194885;
double r194890 = l;
double r194891 = Om;
double r194892 = r194890 / r194891;
double r194893 = pow(r194892, r194888);
double r194894 = U_;
double r194895 = U;
double r194896 = r194894 - r194895;
double r194897 = r194896 * r194885;
double r194898 = r194893 * r194897;
double r194899 = r194892 * r194890;
double r194900 = r194899 * r194888;
double r194901 = t;
double r194902 = r194900 - r194901;
double r194903 = r194898 - r194902;
double r194904 = r194903 * r194895;
double r194905 = r194889 * r194904;
double r194906 = sqrt(r194905);
double r194907 = 1.0087251072023538e-199;
bool r194908 = r194885 <= r194907;
double r194909 = cbrt(r194896);
double r194910 = 0.0;
double r194911 = r194909 * r194910;
double r194912 = r194909 * r194911;
double r194913 = r194909 * r194912;
double r194914 = r194888 * r194890;
double r194915 = r194914 * r194892;
double r194916 = r194913 - r194915;
double r194917 = r194916 + r194901;
double r194918 = r194917 * r194889;
double r194919 = r194918 * r194895;
double r194920 = sqrt(r194919);
double r194921 = 31641216734603.953;
bool r194922 = r194885 <= r194921;
double r194923 = r194915 - r194901;
double r194924 = cbrt(r194895);
double r194925 = r194924 * r194924;
double r194926 = -r194889;
double r194927 = r194925 * r194926;
double r194928 = r194923 * r194927;
double r194929 = cbrt(r194890);
double r194930 = cbrt(r194891);
double r194931 = r194929 / r194930;
double r194932 = pow(r194931, r194888);
double r194933 = r194932 * r194885;
double r194934 = r194929 * r194929;
double r194935 = r194930 * r194930;
double r194936 = r194934 / r194935;
double r194937 = pow(r194936, r194888);
double r194938 = r194933 * r194937;
double r194939 = r194889 * r194925;
double r194940 = r194896 * r194939;
double r194941 = r194938 * r194940;
double r194942 = r194928 + r194941;
double r194943 = r194942 * r194924;
double r194944 = sqrt(r194943);
double r194945 = r194895 * r194889;
double r194946 = r194893 * r194885;
double r194947 = 3.0;
double r194948 = pow(r194909, r194947);
double r194949 = r194946 * r194948;
double r194950 = r194888 * r194892;
double r194951 = r194950 * r194890;
double r194952 = r194951 - r194901;
double r194953 = r194949 - r194952;
double r194954 = r194945 * r194953;
double r194955 = sqrt(r194954);
double r194956 = r194922 ? r194944 : r194955;
double r194957 = r194908 ? r194920 : r194956;
double r194958 = r194887 ? r194906 : r194957;
return r194958;
}



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 n < -9.014626965436398e-81Initial program 33.2
Simplified34.0
rmApplied associate-*l*31.1
Simplified35.2
if -9.014626965436398e-81 < n < 1.0087251072023538e-199Initial program 37.1
Simplified30.3
rmApplied add-cube-cbrt30.3
Applied associate-*r*30.3
Simplified30.3
Taylor expanded around 0 30.9
if 1.0087251072023538e-199 < n < 31641216734603.953Initial program 31.7
Simplified26.0
rmApplied add-cube-cbrt26.0
Applied associate-*r*26.0
Simplified26.0
rmApplied add-cube-cbrt26.4
Applied associate-*r*26.4
Simplified26.5
rmApplied sub-neg26.5
Applied distribute-lft-in26.5
Simplified27.6
Simplified27.6
rmApplied add-cube-cbrt27.7
Applied add-cube-cbrt27.7
Applied times-frac27.7
Applied unpow-prod-down27.7
Applied associate-*l*26.7
Simplified26.7
if 31641216734603.953 < n Initial program 33.8
Simplified36.8
rmApplied add-cube-cbrt36.8
Applied associate-*r*36.8
Simplified36.8
rmApplied pow136.8
Applied pow136.8
Applied pow136.8
Applied pow136.8
Applied pow-prod-down36.8
Applied pow-prod-down36.8
Applied pow-prod-down36.8
Simplified31.0
Final simplification31.2
herbie shell --seed 2019194
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))