\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 r194832 = 2.0;
double r194833 = n;
double r194834 = r194832 * r194833;
double r194835 = U;
double r194836 = r194834 * r194835;
double r194837 = t;
double r194838 = l;
double r194839 = r194838 * r194838;
double r194840 = Om;
double r194841 = r194839 / r194840;
double r194842 = r194832 * r194841;
double r194843 = r194837 - r194842;
double r194844 = r194838 / r194840;
double r194845 = pow(r194844, r194832);
double r194846 = r194833 * r194845;
double r194847 = U_;
double r194848 = r194835 - r194847;
double r194849 = r194846 * r194848;
double r194850 = r194843 - r194849;
double r194851 = r194836 * r194850;
double r194852 = sqrt(r194851);
return r194852;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r194853 = n;
double r194854 = -9.014626965436398e-81;
bool r194855 = r194853 <= r194854;
double r194856 = 2.0;
double r194857 = r194856 * r194853;
double r194858 = l;
double r194859 = Om;
double r194860 = r194858 / r194859;
double r194861 = pow(r194860, r194856);
double r194862 = U_;
double r194863 = U;
double r194864 = r194862 - r194863;
double r194865 = r194864 * r194853;
double r194866 = r194861 * r194865;
double r194867 = r194860 * r194858;
double r194868 = r194867 * r194856;
double r194869 = t;
double r194870 = r194868 - r194869;
double r194871 = r194866 - r194870;
double r194872 = r194871 * r194863;
double r194873 = r194857 * r194872;
double r194874 = sqrt(r194873);
double r194875 = 1.0087251072023538e-199;
bool r194876 = r194853 <= r194875;
double r194877 = cbrt(r194864);
double r194878 = 0.0;
double r194879 = r194877 * r194878;
double r194880 = r194877 * r194879;
double r194881 = r194877 * r194880;
double r194882 = r194856 * r194858;
double r194883 = r194882 * r194860;
double r194884 = r194881 - r194883;
double r194885 = r194884 + r194869;
double r194886 = r194885 * r194857;
double r194887 = r194886 * r194863;
double r194888 = sqrt(r194887);
double r194889 = 31641216734603.953;
bool r194890 = r194853 <= r194889;
double r194891 = r194883 - r194869;
double r194892 = cbrt(r194863);
double r194893 = r194892 * r194892;
double r194894 = -r194857;
double r194895 = r194893 * r194894;
double r194896 = r194891 * r194895;
double r194897 = cbrt(r194858);
double r194898 = cbrt(r194859);
double r194899 = r194897 / r194898;
double r194900 = pow(r194899, r194856);
double r194901 = r194900 * r194853;
double r194902 = r194897 * r194897;
double r194903 = r194898 * r194898;
double r194904 = r194902 / r194903;
double r194905 = pow(r194904, r194856);
double r194906 = r194901 * r194905;
double r194907 = r194857 * r194893;
double r194908 = r194864 * r194907;
double r194909 = r194906 * r194908;
double r194910 = r194896 + r194909;
double r194911 = r194910 * r194892;
double r194912 = sqrt(r194911);
double r194913 = r194863 * r194857;
double r194914 = r194861 * r194853;
double r194915 = 3.0;
double r194916 = pow(r194877, r194915);
double r194917 = r194914 * r194916;
double r194918 = r194856 * r194860;
double r194919 = r194918 * r194858;
double r194920 = r194919 - r194869;
double r194921 = r194917 - r194920;
double r194922 = r194913 * r194921;
double r194923 = sqrt(r194922);
double r194924 = r194890 ? r194912 : r194923;
double r194925 = r194876 ? r194888 : r194924;
double r194926 = r194855 ? r194874 : r194925;
return r194926;
}



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*))))))