\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{U \cdot \left(\left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(\left(U* - U\right) \cdot \sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}}\right) \cdot \left(\sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}} \cdot \sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}}\right)\right) - \left(2 \cdot \ell\right) \cdot \frac{\ell}{Om}\right)\right) \cdot \left(2 \cdot n\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 5.527558626767575315212582232479434470364 \cdot 10^{298}:\\
\;\;\;\;\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{U} \cdot \sqrt{\left(2 \cdot n\right) \cdot \left(t + \left(\left(U* - U\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)\right) - \left(2 \cdot \ell\right) \cdot \frac{\ell}{Om}\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r5505120 = 2.0;
double r5505121 = n;
double r5505122 = r5505120 * r5505121;
double r5505123 = U;
double r5505124 = r5505122 * r5505123;
double r5505125 = t;
double r5505126 = l;
double r5505127 = r5505126 * r5505126;
double r5505128 = Om;
double r5505129 = r5505127 / r5505128;
double r5505130 = r5505120 * r5505129;
double r5505131 = r5505125 - r5505130;
double r5505132 = r5505126 / r5505128;
double r5505133 = pow(r5505132, r5505120);
double r5505134 = r5505121 * r5505133;
double r5505135 = U_;
double r5505136 = r5505123 - r5505135;
double r5505137 = r5505134 * r5505136;
double r5505138 = r5505131 - r5505137;
double r5505139 = r5505124 * r5505138;
double r5505140 = sqrt(r5505139);
return r5505140;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r5505141 = 2.0;
double r5505142 = n;
double r5505143 = r5505141 * r5505142;
double r5505144 = U;
double r5505145 = r5505143 * r5505144;
double r5505146 = t;
double r5505147 = l;
double r5505148 = r5505147 * r5505147;
double r5505149 = Om;
double r5505150 = r5505148 / r5505149;
double r5505151 = r5505150 * r5505141;
double r5505152 = r5505146 - r5505151;
double r5505153 = r5505147 / r5505149;
double r5505154 = pow(r5505153, r5505141);
double r5505155 = r5505142 * r5505154;
double r5505156 = U_;
double r5505157 = r5505144 - r5505156;
double r5505158 = r5505155 * r5505157;
double r5505159 = r5505152 - r5505158;
double r5505160 = r5505145 * r5505159;
double r5505161 = 0.0;
bool r5505162 = r5505160 <= r5505161;
double r5505163 = 2.0;
double r5505164 = r5505141 / r5505163;
double r5505165 = pow(r5505153, r5505164);
double r5505166 = r5505142 * r5505165;
double r5505167 = r5505156 - r5505144;
double r5505168 = cbrt(r5505165);
double r5505169 = r5505167 * r5505168;
double r5505170 = r5505168 * r5505168;
double r5505171 = r5505169 * r5505170;
double r5505172 = r5505166 * r5505171;
double r5505173 = r5505141 * r5505147;
double r5505174 = r5505173 * r5505153;
double r5505175 = r5505172 - r5505174;
double r5505176 = r5505146 + r5505175;
double r5505177 = r5505176 * r5505143;
double r5505178 = r5505144 * r5505177;
double r5505179 = sqrt(r5505178);
double r5505180 = 5.527558626767575e+298;
bool r5505181 = r5505160 <= r5505180;
double r5505182 = sqrt(r5505160);
double r5505183 = sqrt(r5505144);
double r5505184 = r5505165 * r5505166;
double r5505185 = r5505167 * r5505184;
double r5505186 = r5505185 - r5505174;
double r5505187 = r5505146 + r5505186;
double r5505188 = r5505143 * r5505187;
double r5505189 = sqrt(r5505188);
double r5505190 = r5505183 * r5505189;
double r5505191 = r5505181 ? r5505182 : r5505190;
double r5505192 = r5505162 ? r5505179 : r5505191;
return r5505192;
}



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.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 0.0Initial program 56.6
Simplified39.7
rmApplied sqr-pow39.7
Applied associate-*r*37.0
rmApplied associate-*l*36.5
rmApplied add-cube-cbrt36.5
Applied associate-*l*36.5
if 0.0 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 5.527558626767575e+298Initial program 1.8
if 5.527558626767575e+298 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) Initial program 63.1
Simplified54.8
rmApplied sqr-pow54.8
Applied associate-*r*53.5
rmApplied sqrt-prod54.3
Final simplification27.6
herbie shell --seed 2019172
(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*))))))