\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}\;t \le 5.921596680002772760806493524139888367658 \cdot 10^{-305} \lor \neg \left(t \le 1.070028174441901986804731946878056420476 \cdot 10^{-172} \lor \neg \left(t \le 2.724465956200713647886827411142398031389 \cdot 10^{192}\right)\right):\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\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)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r161216 = 2.0;
double r161217 = n;
double r161218 = r161216 * r161217;
double r161219 = U;
double r161220 = r161218 * r161219;
double r161221 = t;
double r161222 = l;
double r161223 = r161222 * r161222;
double r161224 = Om;
double r161225 = r161223 / r161224;
double r161226 = r161216 * r161225;
double r161227 = r161221 - r161226;
double r161228 = r161222 / r161224;
double r161229 = pow(r161228, r161216);
double r161230 = r161217 * r161229;
double r161231 = U_;
double r161232 = r161219 - r161231;
double r161233 = r161230 * r161232;
double r161234 = r161227 - r161233;
double r161235 = r161220 * r161234;
double r161236 = sqrt(r161235);
return r161236;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r161237 = t;
double r161238 = 5.921596680002773e-305;
bool r161239 = r161237 <= r161238;
double r161240 = 1.070028174441902e-172;
bool r161241 = r161237 <= r161240;
double r161242 = 2.7244659562007136e+192;
bool r161243 = r161237 <= r161242;
double r161244 = !r161243;
bool r161245 = r161241 || r161244;
double r161246 = !r161245;
bool r161247 = r161239 || r161246;
double r161248 = 2.0;
double r161249 = n;
double r161250 = r161248 * r161249;
double r161251 = U;
double r161252 = l;
double r161253 = Om;
double r161254 = r161252 / r161253;
double r161255 = r161252 * r161254;
double r161256 = r161248 * r161255;
double r161257 = r161237 - r161256;
double r161258 = pow(r161254, r161248);
double r161259 = r161249 * r161258;
double r161260 = U_;
double r161261 = r161251 - r161260;
double r161262 = r161259 * r161261;
double r161263 = r161257 - r161262;
double r161264 = r161251 * r161263;
double r161265 = r161250 * r161264;
double r161266 = sqrt(r161265);
double r161267 = r161250 * r161251;
double r161268 = sqrt(r161267);
double r161269 = r161253 / r161252;
double r161270 = r161252 / r161269;
double r161271 = r161248 * r161270;
double r161272 = r161237 - r161271;
double r161273 = r161272 - r161262;
double r161274 = sqrt(r161273);
double r161275 = r161268 * r161274;
double r161276 = r161247 ? r161266 : r161275;
return r161276;
}



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 t < 5.921596680002773e-305 or 1.070028174441902e-172 < t < 2.7244659562007136e+192Initial program 33.9
rmApplied *-un-lft-identity33.9
Applied times-frac31.2
Simplified31.2
rmApplied associate-*l*31.1
if 5.921596680002773e-305 < t < 1.070028174441902e-172 or 2.7244659562007136e+192 < t Initial program 37.9
rmApplied associate-/l*34.5
rmApplied sqrt-prod28.0
Final simplification30.5
herbie shell --seed 2019353 +o rules:numerics
(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*))))))