\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 r1561556 = 2.0;
double r1561557 = n;
double r1561558 = r1561556 * r1561557;
double r1561559 = U;
double r1561560 = r1561558 * r1561559;
double r1561561 = t;
double r1561562 = l;
double r1561563 = r1561562 * r1561562;
double r1561564 = Om;
double r1561565 = r1561563 / r1561564;
double r1561566 = r1561556 * r1561565;
double r1561567 = r1561561 - r1561566;
double r1561568 = r1561562 / r1561564;
double r1561569 = pow(r1561568, r1561556);
double r1561570 = r1561557 * r1561569;
double r1561571 = U_;
double r1561572 = r1561559 - r1561571;
double r1561573 = r1561570 * r1561572;
double r1561574 = r1561567 - r1561573;
double r1561575 = r1561560 * r1561574;
double r1561576 = sqrt(r1561575);
return r1561576;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1561577 = U;
double r1561578 = 1.4828608859501e-310;
bool r1561579 = r1561577 <= r1561578;
double r1561580 = t;
double r1561581 = 2.0;
double r1561582 = r1561580 * r1561581;
double r1561583 = n;
double r1561584 = r1561582 * r1561583;
double r1561585 = r1561584 * r1561577;
double r1561586 = l;
double r1561587 = r1561581 * r1561586;
double r1561588 = cbrt(r1561583);
double r1561589 = r1561588 * r1561588;
double r1561590 = Om;
double r1561591 = r1561589 / r1561590;
double r1561592 = U_;
double r1561593 = r1561592 - r1561577;
double r1561594 = r1561591 * r1561593;
double r1561595 = 1.0;
double r1561596 = r1561595 / r1561586;
double r1561597 = r1561588 / r1561596;
double r1561598 = r1561594 * r1561597;
double r1561599 = r1561587 - r1561598;
double r1561600 = -2.0;
double r1561601 = r1561600 * r1561577;
double r1561602 = r1561599 * r1561601;
double r1561603 = r1561590 / r1561586;
double r1561604 = r1561583 / r1561603;
double r1561605 = r1561602 * r1561604;
double r1561606 = r1561585 + r1561605;
double r1561607 = sqrt(r1561606);
double r1561608 = r1561586 / r1561590;
double r1561609 = r1561590 / r1561583;
double r1561610 = r1561586 / r1561609;
double r1561611 = r1561593 * r1561610;
double r1561612 = r1561587 - r1561611;
double r1561613 = r1561608 * r1561612;
double r1561614 = r1561580 - r1561613;
double r1561615 = r1561581 * r1561614;
double r1561616 = r1561615 * r1561583;
double r1561617 = sqrt(r1561616);
double r1561618 = sqrt(r1561577);
double r1561619 = r1561617 * r1561618;
double r1561620 = r1561579 ? r1561607 : r1561619;
return r1561620;
}



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*))))))