\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}\;U \le 1.4828608859501 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{\left(\left(t \cdot 2\right) \cdot n\right) \cdot U + \left(\left(2 \cdot \ell - \left(\frac{\sqrt[3]{n} \cdot \sqrt[3]{n}}{Om} \cdot \left(U* - U\right)\right) \cdot \frac{\sqrt[3]{n}}{\frac{1}{\ell}}\right) \cdot \left(-2 \cdot U\right)\right) \cdot \frac{n}{\frac{Om}{\ell}}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left(2 \cdot \left(t - \frac{\ell}{Om} \cdot \left(2 \cdot \ell - \left(U* - U\right) \cdot \frac{\ell}{\frac{Om}{n}}\right)\right)\right) \cdot n} \cdot \sqrt{U}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2420569 = 2.0;
double r2420570 = n;
double r2420571 = r2420569 * r2420570;
double r2420572 = U;
double r2420573 = r2420571 * r2420572;
double r2420574 = t;
double r2420575 = l;
double r2420576 = r2420575 * r2420575;
double r2420577 = Om;
double r2420578 = r2420576 / r2420577;
double r2420579 = r2420569 * r2420578;
double r2420580 = r2420574 - r2420579;
double r2420581 = r2420575 / r2420577;
double r2420582 = pow(r2420581, r2420569);
double r2420583 = r2420570 * r2420582;
double r2420584 = U_;
double r2420585 = r2420572 - r2420584;
double r2420586 = r2420583 * r2420585;
double r2420587 = r2420580 - r2420586;
double r2420588 = r2420573 * r2420587;
double r2420589 = sqrt(r2420588);
return r2420589;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2420590 = U;
double r2420591 = 1.4828608859501e-310;
bool r2420592 = r2420590 <= r2420591;
double r2420593 = t;
double r2420594 = 2.0;
double r2420595 = r2420593 * r2420594;
double r2420596 = n;
double r2420597 = r2420595 * r2420596;
double r2420598 = r2420597 * r2420590;
double r2420599 = l;
double r2420600 = r2420594 * r2420599;
double r2420601 = cbrt(r2420596);
double r2420602 = r2420601 * r2420601;
double r2420603 = Om;
double r2420604 = r2420602 / r2420603;
double r2420605 = U_;
double r2420606 = r2420605 - r2420590;
double r2420607 = r2420604 * r2420606;
double r2420608 = 1.0;
double r2420609 = r2420608 / r2420599;
double r2420610 = r2420601 / r2420609;
double r2420611 = r2420607 * r2420610;
double r2420612 = r2420600 - r2420611;
double r2420613 = -2.0;
double r2420614 = r2420613 * r2420590;
double r2420615 = r2420612 * r2420614;
double r2420616 = r2420603 / r2420599;
double r2420617 = r2420596 / r2420616;
double r2420618 = r2420615 * r2420617;
double r2420619 = r2420598 + r2420618;
double r2420620 = sqrt(r2420619);
double r2420621 = r2420599 / r2420603;
double r2420622 = r2420603 / r2420596;
double r2420623 = r2420599 / r2420622;
double r2420624 = r2420606 * r2420623;
double r2420625 = r2420600 - r2420624;
double r2420626 = r2420621 * r2420625;
double r2420627 = r2420593 - r2420626;
double r2420628 = r2420594 * r2420627;
double r2420629 = r2420628 * r2420596;
double r2420630 = sqrt(r2420629);
double r2420631 = sqrt(r2420590);
double r2420632 = r2420630 * r2420631;
double r2420633 = r2420592 ? r2420620 : r2420632;
return r2420633;
}



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 U < 1.4828608859501e-310Initial program 32.8
Simplified29.5
rmApplied associate-*l*29.0
rmApplied sub-neg29.0
Applied distribute-rgt-in29.0
Applied distribute-rgt-in29.0
Applied distribute-lft-in29.0
Simplified26.2
rmApplied associate-*l*25.4
rmApplied div-inv25.4
Applied add-cube-cbrt25.5
Applied times-frac25.8
Applied associate-*r*27.4
if 1.4828608859501e-310 < U Initial program 32.7
Simplified29.9
rmApplied associate-*l*29.0
rmApplied sqrt-prod21.7
Final simplification24.6
herbie shell --seed 2019152
(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*))))))