\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}\;U \le -4.797165734624695899226646467454361223135 \cdot 10^{-88}:\\
\;\;\;\;\sqrt{\sqrt{\left(\left(n \cdot 2\right) \cdot U\right) \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right)} \cdot \sqrt{\left(\left(n \cdot 2\right) \cdot U\right) \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right)}}\\
\mathbf{elif}\;U \le -7.292518127255309422901006800230409602213 \cdot 10^{-277}:\\
\;\;\;\;\sqrt{\left(n \cdot 2\right) \cdot \left(U \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right)\right)}\\
\mathbf{elif}\;U \le -2.544301569058814338086007489613547011313 \cdot 10^{-310} \lor \neg \left(U \le 4.913407422060663127687960956485861242372 \cdot 10^{-171}\right) \land U \le 8.219354400775285904861674568102655539055 \cdot 10^{94}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(t + \left(\left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot n\right)\right) \cdot \left(U* - U\right) - \frac{\ell}{Om} \cdot \left(2 \cdot \ell\right)\right)\right) \cdot \left(n \cdot 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{U} \cdot \sqrt{\left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2 \cdot 2}{2}\right)}\right) \cdot \left(U* - U\right) - \left(\ell \cdot \frac{\ell}{Om}\right) \cdot 2\right)\right) \cdot \left(n \cdot 2\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r247146 = 2.0;
double r247147 = n;
double r247148 = r247146 * r247147;
double r247149 = U;
double r247150 = r247148 * r247149;
double r247151 = t;
double r247152 = l;
double r247153 = r247152 * r247152;
double r247154 = Om;
double r247155 = r247153 / r247154;
double r247156 = r247146 * r247155;
double r247157 = r247151 - r247156;
double r247158 = r247152 / r247154;
double r247159 = pow(r247158, r247146);
double r247160 = r247147 * r247159;
double r247161 = U_;
double r247162 = r247149 - r247161;
double r247163 = r247160 * r247162;
double r247164 = r247157 - r247163;
double r247165 = r247150 * r247164;
double r247166 = sqrt(r247165);
return r247166;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r247167 = U;
double r247168 = -4.797165734624696e-88;
bool r247169 = r247167 <= r247168;
double r247170 = n;
double r247171 = 2.0;
double r247172 = r247170 * r247171;
double r247173 = r247172 * r247167;
double r247174 = t;
double r247175 = l;
double r247176 = Om;
double r247177 = r247175 / r247176;
double r247178 = 2.0;
double r247179 = r247178 * r247171;
double r247180 = r247179 / r247178;
double r247181 = pow(r247177, r247180);
double r247182 = r247170 * r247181;
double r247183 = U_;
double r247184 = r247183 - r247167;
double r247185 = r247182 * r247184;
double r247186 = r247175 * r247177;
double r247187 = r247186 * r247171;
double r247188 = r247185 - r247187;
double r247189 = r247174 + r247188;
double r247190 = r247173 * r247189;
double r247191 = sqrt(r247190);
double r247192 = r247191 * r247191;
double r247193 = sqrt(r247192);
double r247194 = -7.292518127255309e-277;
bool r247195 = r247167 <= r247194;
double r247196 = r247167 * r247189;
double r247197 = r247172 * r247196;
double r247198 = sqrt(r247197);
double r247199 = -2.5443015690588e-310;
bool r247200 = r247167 <= r247199;
double r247201 = 4.913407422060663e-171;
bool r247202 = r247167 <= r247201;
double r247203 = !r247202;
double r247204 = 8.219354400775286e+94;
bool r247205 = r247167 <= r247204;
bool r247206 = r247203 && r247205;
bool r247207 = r247200 || r247206;
double r247208 = r247171 / r247178;
double r247209 = pow(r247177, r247208);
double r247210 = r247209 * r247170;
double r247211 = r247209 * r247210;
double r247212 = r247211 * r247184;
double r247213 = r247171 * r247175;
double r247214 = r247177 * r247213;
double r247215 = r247212 - r247214;
double r247216 = r247174 + r247215;
double r247217 = r247216 * r247172;
double r247218 = r247167 * r247217;
double r247219 = sqrt(r247218);
double r247220 = sqrt(r247167);
double r247221 = r247189 * r247172;
double r247222 = sqrt(r247221);
double r247223 = r247220 * r247222;
double r247224 = r247207 ? r247219 : r247223;
double r247225 = r247195 ? r247198 : r247224;
double r247226 = r247169 ? r247193 : r247225;
return r247226;
}



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 U < -4.797165734624696e-88Initial program 30.0
Simplified28.3
rmApplied sqr-pow28.3
Applied associate-*r*27.5
Simplified27.5
rmApplied add-sqr-sqrt27.5
Simplified29.7
Simplified26.7
if -4.797165734624696e-88 < U < -7.292518127255309e-277Initial program 38.6
Simplified35.1
rmApplied sqr-pow35.1
Applied associate-*r*33.7
Simplified33.7
rmApplied associate-*l*29.8
Simplified31.2
if -7.292518127255309e-277 < U < -2.5443015690588e-310 or 4.913407422060663e-171 < U < 8.219354400775286e+94Initial program 33.6
Simplified31.0
rmApplied sqr-pow31.0
Applied associate-*r*29.6
Simplified29.6
if -2.5443015690588e-310 < U < 4.913407422060663e-171 or 8.219354400775286e+94 < U Initial program 37.4
Simplified35.5
rmApplied sqr-pow35.5
Applied associate-*r*34.7
Simplified34.7
rmApplied sqrt-prod24.0
Simplified25.0
Final simplification27.9
herbie shell --seed 2019174
(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*))))))