\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}\;\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(\left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(\left(U* - U\right) \cdot \sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}}\right) \cdot \left(\sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}} \cdot \sqrt[3]{{\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}}\right)\right) - \left(2 \cdot \ell\right) \cdot \frac{\ell}{Om}\right)\right) \cdot \left(2 \cdot n\right)\right)}\\
\mathbf{elif}\;\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 5.527558626767575315212582232479434470364 \cdot 10^{298}:\\
\;\;\;\;\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{U} \cdot \sqrt{\left(2 \cdot n\right) \cdot \left(t + \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(U* - U\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) - \left(2 \cdot \ell\right) \cdot \frac{\ell}{Om}\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r4654434 = 2.0;
double r4654435 = n;
double r4654436 = r4654434 * r4654435;
double r4654437 = U;
double r4654438 = r4654436 * r4654437;
double r4654439 = t;
double r4654440 = l;
double r4654441 = r4654440 * r4654440;
double r4654442 = Om;
double r4654443 = r4654441 / r4654442;
double r4654444 = r4654434 * r4654443;
double r4654445 = r4654439 - r4654444;
double r4654446 = r4654440 / r4654442;
double r4654447 = pow(r4654446, r4654434);
double r4654448 = r4654435 * r4654447;
double r4654449 = U_;
double r4654450 = r4654437 - r4654449;
double r4654451 = r4654448 * r4654450;
double r4654452 = r4654445 - r4654451;
double r4654453 = r4654438 * r4654452;
double r4654454 = sqrt(r4654453);
return r4654454;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r4654455 = 2.0;
double r4654456 = n;
double r4654457 = r4654455 * r4654456;
double r4654458 = U;
double r4654459 = r4654457 * r4654458;
double r4654460 = t;
double r4654461 = l;
double r4654462 = r4654461 * r4654461;
double r4654463 = Om;
double r4654464 = r4654462 / r4654463;
double r4654465 = r4654464 * r4654455;
double r4654466 = r4654460 - r4654465;
double r4654467 = r4654461 / r4654463;
double r4654468 = pow(r4654467, r4654455);
double r4654469 = r4654456 * r4654468;
double r4654470 = U_;
double r4654471 = r4654458 - r4654470;
double r4654472 = r4654469 * r4654471;
double r4654473 = r4654466 - r4654472;
double r4654474 = r4654459 * r4654473;
double r4654475 = 0.0;
bool r4654476 = r4654474 <= r4654475;
double r4654477 = 2.0;
double r4654478 = r4654455 / r4654477;
double r4654479 = pow(r4654467, r4654478);
double r4654480 = r4654456 * r4654479;
double r4654481 = r4654470 - r4654458;
double r4654482 = cbrt(r4654479);
double r4654483 = r4654481 * r4654482;
double r4654484 = r4654482 * r4654482;
double r4654485 = r4654483 * r4654484;
double r4654486 = r4654480 * r4654485;
double r4654487 = r4654455 * r4654461;
double r4654488 = r4654487 * r4654467;
double r4654489 = r4654486 - r4654488;
double r4654490 = r4654460 + r4654489;
double r4654491 = r4654490 * r4654457;
double r4654492 = r4654458 * r4654491;
double r4654493 = sqrt(r4654492);
double r4654494 = 5.527558626767575e+298;
bool r4654495 = r4654474 <= r4654494;
double r4654496 = sqrt(r4654474);
double r4654497 = sqrt(r4654458);
double r4654498 = r4654481 * r4654479;
double r4654499 = r4654480 * r4654498;
double r4654500 = r4654499 - r4654488;
double r4654501 = r4654460 + r4654500;
double r4654502 = r4654457 * r4654501;
double r4654503 = sqrt(r4654502);
double r4654504 = r4654497 * r4654503;
double r4654505 = r4654495 ? r4654496 : r4654504;
double r4654506 = r4654476 ? r4654493 : r4654505;
return r4654506;
}



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 (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 0.0Initial program 56.6
Simplified39.7
rmApplied sqr-pow39.7
Applied associate-*r*37.0
rmApplied associate-*l*36.5
rmApplied add-cube-cbrt36.5
Applied associate-*l*36.5
if 0.0 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) < 5.527558626767575e+298Initial program 1.8
if 5.527558626767575e+298 < (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*)))) Initial program 63.1
Simplified54.8
rmApplied sqr-pow54.8
Applied associate-*r*53.5
rmApplied associate-*l*53.5
rmApplied sqrt-prod54.3
Final simplification27.6
herbie shell --seed 2019172
(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*))))))