\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{U \cdot \left(\left(t + \frac{\ell}{Om} \cdot \left(\left(-2\right) \cdot \ell\right)\right) \cdot \left(2 \cdot n\right)\right)}\\
\mathbf{elif}\;n \le 31641216734603.953125:\\
\;\;\;\;\sqrt{\left(\left(\left(\left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right) \cdot \left(2 \cdot n\right)\right) \cdot \left(U* - U\right)\right) \cdot \left(\left(n \cdot {\left(\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}\right)}^{2}\right) \cdot {\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{2}\right) + \left(-\left(\left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right) \cdot \left(2 \cdot n\right)\right) \cdot \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell\right) - t\right)\right)\right) \cdot \sqrt[3]{U}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\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)} \cdot \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 r207053 = 2.0;
double r207054 = n;
double r207055 = r207053 * r207054;
double r207056 = U;
double r207057 = r207055 * r207056;
double r207058 = t;
double r207059 = l;
double r207060 = r207059 * r207059;
double r207061 = Om;
double r207062 = r207060 / r207061;
double r207063 = r207053 * r207062;
double r207064 = r207058 - r207063;
double r207065 = r207059 / r207061;
double r207066 = pow(r207065, r207053);
double r207067 = r207054 * r207066;
double r207068 = U_;
double r207069 = r207056 - r207068;
double r207070 = r207067 * r207069;
double r207071 = r207064 - r207070;
double r207072 = r207057 * r207071;
double r207073 = sqrt(r207072);
return r207073;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r207074 = n;
double r207075 = -9.014626965436398e-81;
bool r207076 = r207074 <= r207075;
double r207077 = 2.0;
double r207078 = r207077 * r207074;
double r207079 = l;
double r207080 = Om;
double r207081 = r207079 / r207080;
double r207082 = pow(r207081, r207077);
double r207083 = U_;
double r207084 = U;
double r207085 = r207083 - r207084;
double r207086 = r207085 * r207074;
double r207087 = r207082 * r207086;
double r207088 = r207081 * r207079;
double r207089 = r207088 * r207077;
double r207090 = t;
double r207091 = r207089 - r207090;
double r207092 = r207087 - r207091;
double r207093 = r207092 * r207084;
double r207094 = r207078 * r207093;
double r207095 = sqrt(r207094);
double r207096 = 1.0087251072023538e-199;
bool r207097 = r207074 <= r207096;
double r207098 = -r207077;
double r207099 = r207098 * r207079;
double r207100 = r207081 * r207099;
double r207101 = r207090 + r207100;
double r207102 = r207101 * r207078;
double r207103 = r207084 * r207102;
double r207104 = sqrt(r207103);
double r207105 = 31641216734603.953;
bool r207106 = r207074 <= r207105;
double r207107 = cbrt(r207084);
double r207108 = r207107 * r207107;
double r207109 = r207108 * r207078;
double r207110 = r207109 * r207085;
double r207111 = cbrt(r207079);
double r207112 = cbrt(r207080);
double r207113 = r207111 / r207112;
double r207114 = pow(r207113, r207077);
double r207115 = r207074 * r207114;
double r207116 = r207111 * r207111;
double r207117 = r207112 * r207112;
double r207118 = r207116 / r207117;
double r207119 = pow(r207118, r207077);
double r207120 = r207115 * r207119;
double r207121 = r207110 * r207120;
double r207122 = r207077 * r207079;
double r207123 = r207081 * r207122;
double r207124 = r207123 - r207090;
double r207125 = r207109 * r207124;
double r207126 = -r207125;
double r207127 = r207121 + r207126;
double r207128 = r207127 * r207107;
double r207129 = sqrt(r207128);
double r207130 = r207084 * r207078;
double r207131 = r207082 * r207074;
double r207132 = cbrt(r207085);
double r207133 = 3.0;
double r207134 = pow(r207132, r207133);
double r207135 = r207131 * r207134;
double r207136 = r207077 * r207081;
double r207137 = r207136 * r207079;
double r207138 = r207137 - r207090;
double r207139 = r207135 - r207138;
double r207140 = r207130 * r207139;
double r207141 = sqrt(r207140);
double r207142 = r207141 * r207141;
double r207143 = sqrt(r207142);
double r207144 = r207106 ? r207129 : r207143;
double r207145 = r207097 ? r207104 : r207144;
double r207146 = r207076 ? r207095 : r207145;
return r207146;
}



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
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 add-sqr-sqrt36.8
Simplified38.3
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*))))))