\sqrt{\left(\left(2.0 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2.0 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2.0}\right) \cdot \left(U - U*\right)\right)}\begin{array}{l}
\mathbf{if}\;n \le -2.9726791114426635 \cdot 10^{-160}:\\
\;\;\;\;\sqrt{\left(\left(t - 2.0 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)}\right) \cdot \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)}\right)\right) \cdot \left(\left(2.0 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le -4.618776174471877 \cdot 10^{-273}:\\
\;\;\;\;\sqrt{2.0 \cdot \left(\frac{U}{\frac{\frac{Om}{n} \cdot \frac{Om}{n}}{U* \cdot \left(\ell \cdot \ell\right)}} + n \cdot \left(t \cdot U\right)\right) - \frac{U \cdot 4.0}{\frac{\frac{Om}{\ell \cdot \ell}}{n}}}\\
\mathbf{elif}\;n \le 4.9836847106930725 \cdot 10^{-288}:\\
\;\;\;\;\sqrt{\left(t - 2.0 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) \cdot \left(\left(2.0 \cdot n\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 9.66698558162677 \cdot 10^{-75}:\\
\;\;\;\;\sqrt{\left(\left(\left(t - \left(\frac{\ell}{Om} \cdot 2.0\right) \cdot \ell\right) - {\left(\frac{\ell}{Om}\right)}^{2.0} \cdot \left(n \cdot \left(U - U*\right)\right)\right) \cdot U\right) \cdot \left(2.0 \cdot n\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(\left(t - 2.0 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)}\right) \cdot \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2.0}{2}\right)}\right)\right) \cdot \left(\left(2.0 \cdot n\right) \cdot U\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2786261 = 2.0;
double r2786262 = n;
double r2786263 = r2786261 * r2786262;
double r2786264 = U;
double r2786265 = r2786263 * r2786264;
double r2786266 = t;
double r2786267 = l;
double r2786268 = r2786267 * r2786267;
double r2786269 = Om;
double r2786270 = r2786268 / r2786269;
double r2786271 = r2786261 * r2786270;
double r2786272 = r2786266 - r2786271;
double r2786273 = r2786267 / r2786269;
double r2786274 = pow(r2786273, r2786261);
double r2786275 = r2786262 * r2786274;
double r2786276 = U_;
double r2786277 = r2786264 - r2786276;
double r2786278 = r2786275 * r2786277;
double r2786279 = r2786272 - r2786278;
double r2786280 = r2786265 * r2786279;
double r2786281 = sqrt(r2786280);
return r2786281;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2786282 = n;
double r2786283 = -2.9726791114426635e-160;
bool r2786284 = r2786282 <= r2786283;
double r2786285 = t;
double r2786286 = 2.0;
double r2786287 = l;
double r2786288 = Om;
double r2786289 = r2786288 / r2786287;
double r2786290 = r2786287 / r2786289;
double r2786291 = r2786286 * r2786290;
double r2786292 = r2786285 - r2786291;
double r2786293 = r2786287 / r2786288;
double r2786294 = 2.0;
double r2786295 = r2786286 / r2786294;
double r2786296 = pow(r2786293, r2786295);
double r2786297 = r2786282 * r2786296;
double r2786298 = U;
double r2786299 = U_;
double r2786300 = r2786298 - r2786299;
double r2786301 = r2786300 * r2786296;
double r2786302 = r2786297 * r2786301;
double r2786303 = r2786292 - r2786302;
double r2786304 = r2786286 * r2786282;
double r2786305 = r2786304 * r2786298;
double r2786306 = r2786303 * r2786305;
double r2786307 = sqrt(r2786306);
double r2786308 = -4.618776174471877e-273;
bool r2786309 = r2786282 <= r2786308;
double r2786310 = r2786288 / r2786282;
double r2786311 = r2786310 * r2786310;
double r2786312 = r2786287 * r2786287;
double r2786313 = r2786299 * r2786312;
double r2786314 = r2786311 / r2786313;
double r2786315 = r2786298 / r2786314;
double r2786316 = r2786285 * r2786298;
double r2786317 = r2786282 * r2786316;
double r2786318 = r2786315 + r2786317;
double r2786319 = r2786286 * r2786318;
double r2786320 = 4.0;
double r2786321 = r2786298 * r2786320;
double r2786322 = r2786288 / r2786312;
double r2786323 = r2786322 / r2786282;
double r2786324 = r2786321 / r2786323;
double r2786325 = r2786319 - r2786324;
double r2786326 = sqrt(r2786325);
double r2786327 = 4.9836847106930725e-288;
bool r2786328 = r2786282 <= r2786327;
double r2786329 = r2786292 * r2786305;
double r2786330 = sqrt(r2786329);
double r2786331 = 9.66698558162677e-75;
bool r2786332 = r2786282 <= r2786331;
double r2786333 = r2786293 * r2786286;
double r2786334 = r2786333 * r2786287;
double r2786335 = r2786285 - r2786334;
double r2786336 = pow(r2786293, r2786286);
double r2786337 = r2786282 * r2786300;
double r2786338 = r2786336 * r2786337;
double r2786339 = r2786335 - r2786338;
double r2786340 = r2786339 * r2786298;
double r2786341 = r2786340 * r2786304;
double r2786342 = sqrt(r2786341);
double r2786343 = r2786332 ? r2786342 : r2786307;
double r2786344 = r2786328 ? r2786330 : r2786343;
double r2786345 = r2786309 ? r2786326 : r2786344;
double r2786346 = r2786284 ? r2786307 : r2786345;
return r2786346;
}



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.9726791114426635e-160 or 9.66698558162677e-75 < n Initial program 32.5
rmApplied associate-/l*29.9
rmApplied sqr-pow29.9
Applied associate-*r*29.0
rmApplied associate-*l*28.1
if -2.9726791114426635e-160 < n < -4.618776174471877e-273Initial program 38.2
rmApplied associate-/l*35.3
rmApplied sqr-pow35.3
Applied associate-*r*34.3
Taylor expanded around inf 42.1
Simplified37.9
if -4.618776174471877e-273 < n < 4.9836847106930725e-288Initial program 39.6
rmApplied associate-/l*37.9
Taylor expanded around 0 37.5
if 4.9836847106930725e-288 < n < 9.66698558162677e-75Initial program 36.1
rmApplied associate-/l*33.7
rmApplied associate-*l*33.5
Simplified33.5
Final simplification31.0
herbie shell --seed 2019165
(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*))))))