\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 -2.0815983574246957 \cdot 10^{-139}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;n \le -6.0596639631783474 \cdot 10^{-291}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{elif}\;n \le 1.1504183261425661 \cdot 10^{-17} \lor \neg \left(n \le 5.84977345983970428 \cdot 10^{38}\right):\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left({\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{t - \left(\left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)}\right) \cdot n + 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r220170 = 2.0;
double r220171 = n;
double r220172 = r220170 * r220171;
double r220173 = U;
double r220174 = r220172 * r220173;
double r220175 = t;
double r220176 = l;
double r220177 = r220176 * r220176;
double r220178 = Om;
double r220179 = r220177 / r220178;
double r220180 = r220170 * r220179;
double r220181 = r220175 - r220180;
double r220182 = r220176 / r220178;
double r220183 = pow(r220182, r220170);
double r220184 = r220171 * r220183;
double r220185 = U_;
double r220186 = r220173 - r220185;
double r220187 = r220184 * r220186;
double r220188 = r220181 - r220187;
double r220189 = r220174 * r220188;
double r220190 = sqrt(r220189);
return r220190;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r220191 = n;
double r220192 = -2.0815983574246957e-139;
bool r220193 = r220191 <= r220192;
double r220194 = 2.0;
double r220195 = r220194 * r220191;
double r220196 = U;
double r220197 = r220195 * r220196;
double r220198 = t;
double r220199 = l;
double r220200 = Om;
double r220201 = r220200 / r220199;
double r220202 = r220199 / r220201;
double r220203 = r220194 * r220202;
double r220204 = r220198 - r220203;
double r220205 = r220199 / r220200;
double r220206 = 2.0;
double r220207 = r220194 / r220206;
double r220208 = pow(r220205, r220207);
double r220209 = r220191 * r220208;
double r220210 = U_;
double r220211 = r220196 - r220210;
double r220212 = r220208 * r220211;
double r220213 = r220209 * r220212;
double r220214 = r220204 - r220213;
double r220215 = r220197 * r220214;
double r220216 = sqrt(r220215);
double r220217 = -6.0596639631783474e-291;
bool r220218 = r220191 <= r220217;
double r220219 = pow(r220205, r220194);
double r220220 = r220191 * r220219;
double r220221 = r220220 * r220211;
double r220222 = r220204 - r220221;
double r220223 = r220196 * r220222;
double r220224 = r220195 * r220223;
double r220225 = sqrt(r220224);
double r220226 = 1.1504183261425661e-17;
bool r220227 = r220191 <= r220226;
double r220228 = 5.849773459839704e+38;
bool r220229 = r220191 <= r220228;
double r220230 = !r220229;
bool r220231 = r220227 || r220230;
double r220232 = sqrt(r220197);
double r220233 = r220206 * r220207;
double r220234 = pow(r220205, r220233);
double r220235 = r220211 * r220234;
double r220236 = r220235 * r220191;
double r220237 = r220236 + r220203;
double r220238 = r220198 - r220237;
double r220239 = sqrt(r220238);
double r220240 = r220232 * r220239;
double r220241 = r220231 ? r220216 : r220240;
double r220242 = r220218 ? r220225 : r220241;
double r220243 = r220193 ? r220216 : r220242;
return r220243;
}



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 < -2.0815983574246957e-139 or -6.0596639631783474e-291 < n < 1.1504183261425661e-17 or 5.849773459839704e+38 < n Initial program 34.4
rmApplied associate-/l*31.9
rmApplied sqr-pow31.9
Applied associate-*r*31.0
rmApplied associate-*l*30.6
if -2.0815983574246957e-139 < n < -6.0596639631783474e-291Initial program 38.3
rmApplied associate-/l*34.9
rmApplied pow134.9
Applied pow134.9
Applied pow134.9
Applied pow134.9
Applied pow-prod-down34.9
Applied pow-prod-down34.9
Applied pow-prod-down34.9
Simplified32.5
if 1.1504183261425661e-17 < n < 5.849773459839704e+38Initial program 32.5
rmApplied associate-/l*28.0
rmApplied sqr-pow28.0
Applied associate-*r*27.9
rmApplied associate-*l*26.6
rmApplied sqrt-prod37.1
Simplified38.1
Final simplification31.2
herbie shell --seed 2020047
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
:precision binary64
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))