\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}\;\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)} \le 0.0:\\
\;\;\;\;\sqrt{U \cdot \left(n \cdot \left(t \cdot 2\right) + n \cdot \left(-2 \cdot \left(\frac{\ell}{Om} \cdot \left(2 \cdot \ell - \frac{n \cdot \left(U* - U\right)}{\frac{Om}{\ell}}\right)\right)\right)\right)}\\
\mathbf{elif}\;\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)} \le 1.4044174827788283 \cdot 10^{+153}:\\
\;\;\;\;\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{\left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right) \cdot \left(\left(n \cdot \left(2 \cdot \left(t - \frac{\ell}{Om} \cdot \left(2 \cdot \ell - \left(U* - U\right) \cdot \frac{n}{\frac{Om}{\ell}}\right)\right)\right)\right) \cdot \sqrt[3]{U}\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r3078210 = 2.0;
double r3078211 = n;
double r3078212 = r3078210 * r3078211;
double r3078213 = U;
double r3078214 = r3078212 * r3078213;
double r3078215 = t;
double r3078216 = l;
double r3078217 = r3078216 * r3078216;
double r3078218 = Om;
double r3078219 = r3078217 / r3078218;
double r3078220 = r3078210 * r3078219;
double r3078221 = r3078215 - r3078220;
double r3078222 = r3078216 / r3078218;
double r3078223 = pow(r3078222, r3078210);
double r3078224 = r3078211 * r3078223;
double r3078225 = U_;
double r3078226 = r3078213 - r3078225;
double r3078227 = r3078224 * r3078226;
double r3078228 = r3078221 - r3078227;
double r3078229 = r3078214 * r3078228;
double r3078230 = sqrt(r3078229);
return r3078230;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r3078231 = 2.0;
double r3078232 = n;
double r3078233 = r3078231 * r3078232;
double r3078234 = U;
double r3078235 = r3078233 * r3078234;
double r3078236 = t;
double r3078237 = l;
double r3078238 = r3078237 * r3078237;
double r3078239 = Om;
double r3078240 = r3078238 / r3078239;
double r3078241 = r3078240 * r3078231;
double r3078242 = r3078236 - r3078241;
double r3078243 = r3078237 / r3078239;
double r3078244 = pow(r3078243, r3078231);
double r3078245 = r3078232 * r3078244;
double r3078246 = U_;
double r3078247 = r3078234 - r3078246;
double r3078248 = r3078245 * r3078247;
double r3078249 = r3078242 - r3078248;
double r3078250 = r3078235 * r3078249;
double r3078251 = sqrt(r3078250);
double r3078252 = 0.0;
bool r3078253 = r3078251 <= r3078252;
double r3078254 = r3078236 * r3078231;
double r3078255 = r3078232 * r3078254;
double r3078256 = -2.0;
double r3078257 = r3078231 * r3078237;
double r3078258 = r3078246 - r3078234;
double r3078259 = r3078232 * r3078258;
double r3078260 = r3078239 / r3078237;
double r3078261 = r3078259 / r3078260;
double r3078262 = r3078257 - r3078261;
double r3078263 = r3078243 * r3078262;
double r3078264 = r3078256 * r3078263;
double r3078265 = r3078232 * r3078264;
double r3078266 = r3078255 + r3078265;
double r3078267 = r3078234 * r3078266;
double r3078268 = sqrt(r3078267);
double r3078269 = 1.4044174827788283e+153;
bool r3078270 = r3078251 <= r3078269;
double r3078271 = cbrt(r3078234);
double r3078272 = r3078271 * r3078271;
double r3078273 = r3078232 / r3078260;
double r3078274 = r3078258 * r3078273;
double r3078275 = r3078257 - r3078274;
double r3078276 = r3078243 * r3078275;
double r3078277 = r3078236 - r3078276;
double r3078278 = r3078231 * r3078277;
double r3078279 = r3078232 * r3078278;
double r3078280 = r3078279 * r3078271;
double r3078281 = r3078272 * r3078280;
double r3078282 = sqrt(r3078281);
double r3078283 = r3078270 ? r3078251 : r3078282;
double r3078284 = r3078253 ? r3078268 : r3078283;
return r3078284;
}



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 (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) < 0.0Initial program 55.9
Simplified55.4
rmApplied associate-*l*38.0
rmApplied sub-neg38.0
Applied distribute-lft-in38.0
Applied distribute-lft-in38.0
Simplified38.2
if 0.0 < (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) < 1.4044174827788283e+153Initial program 1.8
if 1.4044174827788283e+153 < (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) Initial program 60.6
Simplified51.1
rmApplied associate-*l*48.6
rmApplied add-cube-cbrt48.7
Applied associate-*l*48.7
Final simplification25.5
herbie shell --seed 2019141
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))